捆绑安装问题 - gemspecs安装只读root - 然后捆绑器无法读取?

时间:2014-04-14 13:09:00

标签: ruby-on-rails permissions bundler gemspecs

我试图运行"捆绑安装"为我的rails项目安装所需的gem。以前这不是一个问题 - 这是我现在正在研究的新机器......我刚刚安装了红宝石(1.9.3 545)导轨等,现在已经到了捆绑安装。

下面是一些示例输出(一些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这些文件......然后再试一次以获得下一步 - 但这不可能是对的吗?

任何人都想提出为什么文件由bundler安装600?

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

谢谢!

2 个答案:

答案 0 :(得分:1)

你需要注意这一行

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

首先安装此gem,运行此命令

gem install minitest -v '5.3.2'

答案 1 :(得分:0)

找到问题!

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

当我指出这引起的问题时,政策被还原(至少对我的机器来说!) - 捆绑安装就像众所周知的魅力一样!

因此,虽然这个答案看起来可能与我的情况有关 - 为了使它更友好,并在将来帮助其他任何人 - 如果你得到如上所述的类似的权限问题 - 请查看环境中的umask设置。 :)