问题 您的用户帐户不允许安装到系统RubyGems


我在运行命令

bundle install

在项目文件夹中。在某些项目文件夹中,它将产生错误,而在其他项目文件夹中,它不会产生错误。错误是:

您的用户帐户不允许安装到系统RubyGems

我知道这可以通过遵循建议的建议来解决:

bundle install --path vendor/bundle

我的问题是为什么行为不一致?


3798
2018-03-16 20:14


起源

另外我注意到Travis CI正好运行命令 bundle install --jobs=3 --retry=3 但它实际上是隐式安装的 vendor/bundle 按照 docs.travis-ci.com/user/languages/ruby/#Default-Test-Script - William Entriken


答案:


就我而言,我解决了错误消息建议的问题:

您的用户帐户不允许安装到系统RubyGems。
  您可以取消此安装并运行:

      bundle install --path vendor / bundle

  将宝石安装到./vendor/bundle/

所以,而不是:

bundle install

我跑了:

bundle install --path vendor/bundle

这是解决方案 这家伙

该解决方案的缺点是它创造了一个 vendor 当前文件夹中的文件夹,可以添加到 .gitignore 如果是通过Git分发应用程序。


5
2018-04-08 15:48



在一个案例中 杰奇 静态网站,也加 vendor 到了 exclude 设置 _config.yml。有关更多信息,请参阅: jekyllrb.com/docs/troubleshooting/#configuration-problems - Antonio Vinicius Menezes Medei


通常如果您使用RVM,rbenv或chruby来安装Ruby,所有的gem都将安装在您的home文件夹下 ~/.rbenv/ruby-version/...

如果您正在使用您的系统Ruby(默认情况下安装的那个),那么宝石就会安装在您无法访问的位置 sudo

我的猜测是你的版本管理器默认使用系统Ruby,但是你的一些项目中有一个.ruby-version文件,告诉它使用你可以访问的不同版本的Ruby。


4
2018-03-16 20:39





在我的情况下,我有一个存在 $BUNDLE_PATH 没有足够的权限来捆绑用户写入。

Your user account isn't allowed to install to the system RubyGems
bundle install --path vendor/bundle

1
2018-01-03 22:41





使用RVM:

你必须安装 rvm 为您的单个用户(标准用户/非root用户), 在你的 $HOME 目录(如果你没有,它就没有安装 /home/youruser/.rvm 目录。

安装 rvm, 跑:

cd
command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
\curl -sSL https://get.rvm.io | bash -s stable

现在 rvm 应该安装。如进一步提示,刷新 rvm (提供您的用户名):

source /home/---YOURUSERNAME---/.rvm/scripts/rvm

要阻止安装sudo-need软件包的提示,请运行:

rvm autolibs disable

您可以仅为您的用户安装Ruby,版本为2.5(或其他任何一个,在 rvm list known

rvm install 2.5

如指定的那样 在rvm网站上

说明:

您可能尝试使用安装rvm sudo 也许还有 这个包为ubuntu 但是你没有sudo权限。

此提示告诉您无法为整个系统全局捆绑宝石, 这可能对您的私人家庭机器有利,但对您的公司用户(机器)不利,而这通常由其他人管理。

如果rvm将安装在你的 $HOME 宝石将像往常一样捆绑在那里。

行为可能不一致,因为其他用户都有 rvm 安装在他们的 $HOME 目录


1
2017-07-19 09:04



在Windows 10商店的Ubuntu 18.04上,您可能需要 sudo apt update & sudo apt upgrade & sudo apt install gnupg2 在所有其他命令之前 - ToTenMilan


好的rbenv修复

  • 避免sudo
  • 避免安装到供应商/捆绑包

至少对我来说,问题是我的rbenv ruby​​版本中没有安装bundler本身。 即使捆绑包存在并且似乎可用......除了权限错误。


1
2017-07-29 15:29





删除

sudo mv ~/.bundle /tmp

尝试重新安装

bundle install

-3
2018-01-23 16:59



这不能解决问题。要对作者进行批评或要求澄清,请在帖子下方留言。 - 来自评论 - ADreNaLiNe-DJ