2013-07-30 58 views
11

我已经安装了捆绑宝石我的新的服务器上,当我尝试执行bundle install,它与此错误失败:`束install`失败,由于许可被拒绝

Unfortunately, a fatal error has occurred. Please see the Bundler troubleshooting documentation at http://bit.ly/bundler-issues. Thanks! 
/usr/lib/ruby/1.9.1/fileutils.rb:247:in `mkdir': Permission denied - /var/lib/gems (Errno::EACCES) 

我的服务器是一个Debian喘息( 7.1),默认安装ruby 1.9.3包。我已经配置/etc/gemrc像这样:gem: --user-install允许用户在本地安装gems。

捆绑软件gem安装在我的用户的宝石目录里面,就像我想要的这个命令:gem install bundler(no sudo)。但捆绑安装想宝石到/var/lib/gems而不是我的宝石目录:(

我不明白这有什么错捆绑...为什么不尝试安装宝石,我想(在我的宝石本地目录)?

PS:在我的笔记本电脑,用的archlinux和默认红宝石2.0.0安装包,我有打捆没有问题,安装用户的宝石

+0

您使用的是Ruby版本管理器吗? –

+0

不......我用rbenv试过,结果相同,我删除它。 – JoJoS

回答

18

我找到了!

我已经更新了我的rubygem,像这样gem update --system。但由于我的/etc/.gemrc中的gem: --user-install限制,只有我的本地宝石更新。当bundler工作时,它使用全局rubygem而不是我的。

为了解决这个问题,我更新了全球rubygems:sudo gem update --system --no-user-install

而且一切正常!

+0

谢谢!这真的有帮助! – Yuanhang

6

bundle install在最近的更新不使用gemrc设置(虽然possibly that has changed。 ,但更新似乎只加载〜/ .gemrc,而不是/ etc/gemrc)

你可以做什么你想要bundle install --path ~/.gem

但是,我强烈建议让rbenv或RVM工作。你说你和rbenv有“同样的结果”。如果你安装了rbenv的时候你的gem试图安装到/var/lib/gems,那么它不是安装rbenv的Ruby,它正在运行该命令。 rbenv仍然使用系统Ruby(直到你选择rbenv安装Ruby成为默认设置),或者你没有正确运行rbenv。

+1

你说得对! Bundler可以很好地配置好rbenv。我的问题因我的'〜/ .profile'在我登录时加载非常糟糕。我必须用'source〜/ .profile'明确加载它。我将把rbenv移动到'.bashrc'中。谢谢 !!! ;) – JoJoS

5

根据bundler documentation,可以设置一个$BUNDLE_PATH$GEM_HOME env变量,使其成为默认的可写入位置。

export BUNDLE_PATH=~/.gems 

bundle install 

如果您{不需要/不想使用}根访问权限,这是非常方便的。

+0

你在捆绑器文档中找到了这个地方? – Bernhard

相关问题