0

我正在尝试运行“捆绑安装”来为我的 rails 项目安装所需的 gem。以前这不是问题 - 这是我现在正在研究的一台新机器......我刚刚安装了 ruby​​ (1.9.3 545) rails 等,现在正在安装包。

下面是一些示例输出(一些 gemspecs 被剪掉以保持这个引用简短!):

[shall@mars2-stream14 QA_Web]$ bundle install
/usr/local/lib/ruby/1.9.1/yaml.rb:84:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
Fetching gem metadata from https://rubygems.org/.........
Fetching additional metadata from https://rubygems.org/..
Using rake 10.2.2
Using i18n 0.6.9
Installing json 1.8.1

Errno::EACCES: Permission denied - /usr/local/lib/ruby/gems/1.9.1/specifications/json-1.8.1.gemspec
An error occurred while installing minitest (5.3.2), and Bundler cannot continue.
Make sure that `gem install minitest -v '5.3.2'` succeeds before bundling.
[shall@mars2-stream14 QA_Web]$ ls -l /usr/local/lib/ruby/gems/1.9.1/specifications/
total 44
-rw-r--r-- 1 root root  154 Apr 14 11:05 bigdecimal-1.1.0.gemspec
-rw-r--r-- 1 root root  142 Apr 14 11:05 json-1.5.5.gemspec
-rw------- 1 root root 1355 Apr 14 12:55 json-1.8.1.gemspec
-rw-r--r-- 1 root root  150 Apr 14 11:05 minitest-2.5.1.gemspec
-rw-r--r-- 1 root root  154 Apr 14 11:05 rdoc-3.9.5.gemspec

显然(或至少,据我了解)bundler 正在创建 gemspec 文件 - 但使用 600 权限创建它们 - 然后尝试读取这些文件以进行后续安装 - 并且失败。我可以 sudo chmod 644 文件...然后再试一次以进行下一步-但这不可能吗?

有人愿意建议为什么捆绑程序会安装 600 文件吗?

我在 SO 上看到过类似的问题 - 但它们似乎都与文件夹权限有关,并且无法创建文件。我可以创建它们 - 之后我无法阅读它们!

谢谢!

4

2 回答 2

1

你需要注意这一行

Make sure that `gem install minitest -v '5.3.2'` succeeds before bundling

所以先安装这个gem,运行这个命令

gem install minitest -v '5.3.2'
于 2014-04-14T13:10:04.013 回答
0

发现问题!

当 SysAdmin 构建新盒子时,我没有被告知,新的 umask 策略已经实施,有效地“锁定”了大多数文件 - 包括 gemspecs!

当我指出这导致的问题时,该策略被恢复(至少对我的机器而言!) - 并且 bundle install 就像众所周知的魅力一样运行!

因此,虽然这个答案可能看起来特定于我的场景 - 为了使其更加友好,并在未来帮助其他任何人 - 如果您遇到与我类似的权限问题,如上所述 - 请查看您环境中的 umask 设置。:)

于 2014-04-14T13:39:19.347 回答