Ошибка GEM LOAD при запуске утилиты ruby ​​на Mac - PullRequest
3 голосов
/ 29 ноября 2011

Я использую Mac OS X 10.7.2 (Lion).Он пришел с ruby ​​1.8.7.Я установил 1.9.2 и установил его по умолчанию (используя rvm).

Фактически я получаю ту же самую версию ruby ​​для следующих команд:

>ruby --version
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.2.0]

>sudo ruby --version
Password:
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.2.0]

Однако, если япопробуйте запустить утилиту на основе ruby ​​с помощью команды sudo, она выдает «ошибку загрузки gem»:

~/chef-repo>sudo chef-client
Password:
~/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find chef (>= 0) amongst [minitest-1.6.0, rake-0.8.7, rdoc-2.5.8] (Gem::LoadError)
    from ~/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
    from ~/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems.rb:1210:in `gem'
    from ~/.rvm/gems/ruby-1.9.2-p290/bin/chef-client:18:in `<main>'

Если я запускаю ту же самую утилиту напрямую, она запускается без каких-либо проблем, но происходит позже (не из-запроблемы с загрузкой драгоценных камней, но из-за прав доступа к другим папкам, доступным только для root).

~/chef-repo>chef-client
[Tue, 29 Nov 2011 11:11:55 -0500] INFO: *** Chef 0.10.4 ***
[Tue, 29 Nov 2011 11:12:00 -0500] INFO: Client key /etc/chef/client.pem is not present - registering
[Tue, 29 Nov 2011 11:12:00 -0500] INFO: HTTP Request Returned 409 Conflict: Client already exists.
~/.rvm/gems/ruby-1.9.2-p290/gems/chef-0.10.4/lib/chef/mixin/create_path.rb:49:in `mkdir': Permission denied - /var/chef (Errno::EACCES)

Кто-нибудь еще сталкивался с этой проблемой?Кто-нибудь знает решение?Мне нужно запустить это с sudo, чтобы избежать других ошибок в будущем.

Ответы [ 2 ]

2 голосов
/ 29 ноября 2011

Попробуйте

rvmsudo chef-client

Должно работать нормально.

0 голосов
/ 24 апреля 2013

Попробуйте

sudo gem install chef

Это позволит вам запустить шеф-повар без sudo или rvmsudo.У меня это работает.

...