当我在 Mac 上运行 ruby​​ 实用程序时出现 GEM LOAD 错误

发布于 2024-12-18 09:37:01 字数 1527 浏览 5 评论 0原文

我正在运行 Mac OS X 10.7.2 (Lion)。它随 ruby​​ 1.8.7 一起提供。我已经安装了 1.9.2 并将其设置为默认值(通过 rvm use)。

事实上,我为以下命令获得相同的 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​​ 的实用程序,它会给我一个“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>'

如果我直接运行相同的实用程序,它会在没有任何命令的情况下运行出现问题,但稍后会失败(不是由于 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 运行它以避免出现其他错误。

I am running Mac OS X 10.7.2 (Lion). It came with ruby 1.8.7. I have installed 1.9.2 and set it as the default (via rvm use).

In fact I get the same ruby version for the following commands:

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

However, if I try to run a ruby based utility with the sudo command, it gives me a "gem load error":

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

If I run the same utility directly it runs without any problems but fails later (not due to gem load issues but due to access rights on other folders that are root-only).

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

Has anyone else run into this problem? Does anyone know the solution? I do need to run this with sudo to avoid other errors down the line.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

作业与我同在 2024-12-25 09:37:01

尝试

rvmsudo chef-client

一下应该可以正常工作。

Try

rvmsudo chef-client

It should work fine.

谢绝鈎搭 2024-12-25 09:37:01

Try

sudo gem install chef

It 将允许您在没有 sudo 或 rvmsudo 的情况下运行 Chef。这对我有用。

Try

sudo gem install chef

It will allow you to run chef without sudo or rvmsudo. It works for me.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文