Назад | Перейти на главную страницу

Можно ли установить марионетку без рубина 1.8?

Мне нужно установить puppet 3.2.0 или выше вместе с ruby ​​2.0.0-p247 на сервере ubuntu 12.04.

Нет возможности установить марионетку без рубин 1.8?


По большей части мой опыт получен из CentOS, поэтому мне может не хватать чего-то простого с apt.

Моя установка:

Убедитесь, что рубина нет

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>

Установите марионетку из официального 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  

Последняя версия марионетки указана в 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

При установке puppet 3.3.0 автоматически появляется Ruby 1.8.

 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]?

марионеточная версия

root@gitlab:/tmp/ruby-2.0.0-p247# puppet --version
3.3.0

рубиновая версия

root@gitlab:/tmp/ruby-2.0.0-p247# ruby --version
ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]

(обратите внимание, что ruby ​​автоматически устанавливается с помощью альтернативных обновлений)

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

Затем я устанавливаю ruby ​​2.0 в его собственный каталог из источника

./configure --prefix=/usr/bin/ruby2.0

Затем зарегистрируйте ruby ​​2.0 с помощью альтернативных обновлений

update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby2.0/bin/ruby 10 

Переключитесь на Ruby 2.0 через 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]

Я делал это несколько раз, пока which ruby указывает на любую версию ruby, кроме 1.8, марионетка возвращает следующую ошибку:

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>'

Как я могу установить марионетку с Ruby 2.0?


Puppet 3.3 совместим с Ruby 2.0, потому что он указан на сайт марионетки

Дополнительные ресурсы

http://projects.puppetlabs.com/issues/18494

RVM кажется намного сложнее, чем мне нужно. Кроме того, в часто задаваемых вопросах говорится, что нельзя использовать его с sudo или запускать от имени пользователя root, что я должен сделать. https://rvm.io/
http://rvm.io/support/faq

https://stackoverflow.com/questions/1892877/how-do-i-make-ruby-1-9-the-default-ruby-on-ubuntu

Мне удалось установить ruby ​​2.0 и puppet 3.3.0 с помощью rvm

  1. Установить марионетку

    apt-get install марионетка

  2. Установить rvm

    \ curl -L https://get.rvm.io | трепать

  3. Выйти и снова войти в систему

  4. Установите Ruby 2.0

    rvm установить рубин 2.0.0-p247

  5. Перейти на Ruby 2.0

    rvm использовать 2.0.0-p247

Проверьте вывод $ apt-cache depends puppet; вы могли бы использовать ruby-1.9, но по крайней мере на 17 сентября 2013 г. ruby 2.0 не был упакован в Ubuntu.

Пакетная версия требует Ruby 1.8 или 1.9. Вы можете использовать один из не рекомендуемых методов для его установки (gem, tarball), например, sudo gem install puppet.