簡體   English   中英

在Mac上運行ruby實用程序時出現GEM LOAD錯誤

[英]Getting GEM LOAD error when I run a ruby utility on Mac

我正在運行Mac OS X 10.7.2(Lion)。 它帶有紅寶石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]

但是,如果我嘗試使用sudo命令運行基於ruby的實用程序,它會給我一個“寶石加載錯誤”:

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

如果我直接運行相同的實用程序,它運行沒有任何問題但稍后失敗(不是由於gem加載問題,而是由於其他僅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運行它以避免其他錯誤。

嘗試

rvmsudo chef-client

它應該工作正常。

嘗試

sudo gem install chef

它將允許您在沒有sudo或rvmsudo的情況下運行廚師。 這個對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM