Tenho alguns servidores RHEL3 (i386) para gerenciar, e como estou usando Puppet em meu ambiente, seria interessante que esses servidores também fossem gerenciados por essa ferramenta. Porém, Puppet necessita do ruby >= 1.8.1, e o RHEL3 vem com o ruby 1.6.8.
Ao invés de compilar o ruby no servidor (quick & dirty), eu fiz o rebuild do RPM baseado nos specs do Fedora 11. A única mudança que tive que fazer foi na lista de dependências do build. Aqui vai o comentário que adicionei na seção %changelog do specfile:
* Tue Oct 27 2009 Pedro Padron <ppadron@w3p.com.br> - 1.8.6.369-2 - build-deps: XFree86-devel instead of libX11-devel to build in RHEL3
Aqui vai o source RPM :
Para fazer o rebuild:
$ rpmbuild --rebuild --define 'dist .el3' ruby-1.8.6.369-2.src.rpm
Aqui vai a lista de pacotes que serão gerados:
ruby-1.8.6.369-2.el3.i386.rpm ruby-devel-1.8.6.369-2.el3.i386.rpm ruby-docs-1.8.6.369-2.el3.i386.rpm ruby-irb-1.8.6.369-2.el3.i386.rpm ruby-libs-1.8.6.369-2.el3.i386.rpm ruby-mode-1.8.6.369-2.el3.i386.rpm ruby-rdoc-1.8.6.369-2.el3.i386.rpm ruby-ri-1.8.6.369-2.el3.i386.rpm ruby-tcltk-1.8.6.369-2.el3.i386.rpm
Se você está interessado em instalar o puppet também, você irá precisar do augeas e de suas bibliotecas para o ruby:
augeas-0.5.0-2.src.rpm
ruby-augeas-0.3.0-1.src.rpm
E novamente:
$ rpmbuild --rebuild --define 'dist .el3' augeas-0.5.0-2.src.rpm
$ rpmbuild --rebuild --define 'dist .el3' ruby-augeas-0.3.0-1.src.rpm
You don’t really _need_ augeas for puppet if you don’t want it. The Fedora/EPEL packages (which are essentially what’s included in conf/redhat/puppet.spec in the puppet tarballs) have this right at the top:
# Augeas and SELinux requirements may be disabled at build time by passing
# –without augeas and/or –without selinux to rpmbuild or mock
Whether –without works with the version of rpm on RHEL3 I couldn’t tell you. Thankfully, I don’t have any RHEL3 boxes to maintain.
Oh, thanks so much for this!
I’ve been banging my head against puppets ruby requirements on ES4 for half a day. This fixed me up right away!