Thanks Hans, great answer.
I'll definitely get into customized packaging, demystify their magics.

Regards,
Magic.

On Friday, January 4, 2013 3:35:20 PM UTC+2, Hans van der Made wrote:
>
>
>
> On Friday, January 4, 2013 10:39:53 AM UTC+1, magi...@gmail.com wrote:
>>
>> I understand exactly what source packages do, if it makes it easier for 
>> you I'll call them tar.gz files.
>> Also, I don't find your comparison valid, as the result of package 
>> installation be it yum or ./configure && make && make install is the same: 
>> software being installed.
>>
>> My meaning is that compiling from source will always be with us, and it's 
>> the prominent way of releasing new software.
>>
>
> When all the required features of a source build & install environment are 
> met, like uninstalling, upgrading, listing, you end up with a new type of 
> package provider. As you don't want a split between OS-provided software 
> (libraries your source file depends on), it's easier to use the provider 
> your OS comes with.
>
> The requirements for building source are often many. You'll need a 
> compiler and a toolchain, at least. Many don't want all of these tools 
> installed on their (virtual) production servers, because they consume 
> space, require updates, and because they facilitate exploits. Less software 
> means less work and less risk. 
>
> Building software on a separate system and deploying the resulting 
> binaries and documentation to production systems is one step up from 
> compiling on your production systems.
>
> Many of us used to compile from source earlier in our careers, so don't 
> asume we don't know about anything but ready made packages ;-)
>
> Now for a quick hack to address your problem:
>
> Why don't you try to do a ./configure --prefix=/usr/local --specialopts && 
> make && make install on a clean system and create a tar file of /usr/local/ 
> afterwards?  Missing dependencies can be met by installing OS packages on 
> your test system. The installation on your target system can be a hack like 
> this:
>
> # dependencies
> package { [ "dep1", "dep2", "dep3", ]: ensure => installed, }
>
> file { "/var/tmp/curl-custom-version.tar.gz":
>   ensure => file,
>   source => "puppet:///module/curl-custom-version.tar.gz",
>   notify => Exec["unpackcurl"],
> }
>
> exec { "unpackcurl": 
>   command => "tar -C /usr/local -xzf /var/tmp/curl-custom-version.tar.gz",
>   creates => "/usr/local/bin/curl",
>   path => "/usr/sbin:/usr/bin:/sbin:/bin",
>   logoutput => true,
>   refreshonly => false,
> }
>
> If possible, use packages, but if you can't meet your deadline this way, 
> try the above (and discover the wonderful world of packaging anyway at a 
> later time).
>
> Best,
>
> Hans
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/ZD0p1hwTWdEJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to