Eu preciso instalar o fantoche 3.2.0 ou superior junto com o ruby 2.0.0-p247 em um servidor do Ubuntu 12.04.
Não há como instalar o fantoche sem ruby 1.8?
A maior parte da minha experiência vem do CentOS, então posso estar perdendo algo simples com o apt.
Minha configuração:
Verifique se não há rubi presente
root@gitlab:~# which ruby
root@gitlab:~# ruby --version
The program 'ruby' can be found in the following packages:
* ruby1.8
* ruby1.9.1
Try: apt-get install <selected package>
Instale o boneco do oficial ppa
root@gitlab:~# cat /etc/apt/sources.list.d/puppetlabs.list
deb http://apt.puppetlabs.com precise main
deb-src http://apt.puppetlabs.com precise main
deb http://apt.puppetlabs.com precise dependencies
deb-src http://apt.puppetlabs.com precise dependencies
A última versão do fantoche está listada no apt
root@gitlab:~# apt-cache policy puppet|head
puppet:
Installed: (none)
Candidate: 3.3.0-1puppetlabs1
Version table:
3.3.0-1puppetlabs1 0
500 http://apt.puppetlabs.com/ precise/main amd64 Packages
3.2.4-1puppetlabs1 0
500 http://apt.puppetlabs.com/ precise/main amd64 Packages
3.2.3-1puppetlabs1 0
500 http://apt.puppetlabs.com/ precise/main amd64 Packages
A instalação do fantoche 3.3.0 traz o ruby 1.8 junto automaticamente.
root@gitlab:~# apt-get install puppet-common
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
augeas-lenses debconf-utils facter hiera libaugeas-ruby libaugeas-ruby1.8 libaugeas0 libjson-ruby libruby libruby1.8
libshadow-ruby1.8 ruby ruby-json ruby-rgen ruby1.8 virt-what
Suggested packages:
augeas-doc augeas-tools ruby-selinux libselinux-ruby1.8 librrd-ruby1.9.1 librrd-ruby1.8 ri ruby-dev ruby1.8-examples ri1.8
The following NEW packages will be installed:
augeas-lenses debconf-utils facter hiera libaugeas-ruby libaugeas-ruby1.8 libaugeas0 libjson-ruby libruby libruby1.8
libshadow-ruby1.8 puppet-common ruby ruby-json ruby-rgen ruby1.8 virt-what
0 upgraded, 17 newly installed, 0 to remove and 92 not upgraded.
Need to get 3,664 kB of archives.
After this operation, 14.1 MB of additional disk space will be used.
Do you want to continue [Y/n]?
versão de fantoches
root@gitlab:/tmp/ruby-2.0.0-p247# puppet --version
3.3.0
versão em ruby
root@gitlab:/tmp/ruby-2.0.0-p247# ruby --version
ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
(observe que o ruby é instalado automaticamente por meio de alternativas de atualização)
root@gitlab:/tmp/ruby-2.0.0-p247# ll 'which ruby'
lrwxrwxrwx 1 root root 22 Sep 18 02:57 /usr/bin/ruby -> /etc/alternatives/ruby*
root@gitlab:/tmp/ruby-2.0.0-p247# update-alternatives --list ruby
/usr/bin/ruby1.8
Eu então instalo o ruby 2.0 em seu próprio diretório, a partir da fonte
./configure --prefix=/usr/bin/ruby2.0
Em seguida, registre o ruby 2.0 com update-alternatives
update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby2.0/bin/ruby 10
Mude para ruby 2.0 via update-alternatives
root@gitlab:/tmp/ruby-2.0.0-p247# update-alternatives --set ruby /usr/bin/ruby2.0/bin/ruby
update-alternatives: using /usr/bin/ruby2.0/bin/ruby to provide /usr/bin/ruby (ruby) in manual mode.
root@gitlab:/tmp/ruby-2.0.0-p247# ruby --version
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
Já fiz isso várias vezes, contanto que which ruby
aponte para qualquer versão de ruby diferente de 1.8, o fantoche retorna o seguinte erro:
root@gitlab:/tmp/ruby-2.0.0-p247# puppet --version
/usr/bin/ruby2.0/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in 'require': cannot load such file -- puppet/util/command_line (LoadError)
from /usr/bin/ruby2.0/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in 'require'
from /usr/bin/puppet:3:in '<main>'
Como posso instalar o fantoche com o ruby 2.0?
O Puppet 3.3 é compatível com o ruby 2.0 porque está listado no site de fantoches
Recursos adicionais
link
O RVM parece ser muito mais complexo do que eu preciso. Além disso, os faqs dizem para não usá-lo com o sudo, ou executá-lo como root, o que devo fazer.
link
link
link