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.