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/-/dprmfK80yh8J. 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.