我在运行命令
bundle install
在项目文件夹中。在某些项目文件夹中,它将产生错误,而在其他项目文件夹中,它不会产生错误。错误是:
您的用户帐户不允许安装到系统RubyGems
我知道这可以通过遵循建议的建议来解决:
bundle install --path vendor/bundle
我的问题是为什么行为不一致?
我在运行命令
bundle install
在项目文件夹中。在某些项目文件夹中,它将产生错误,而在其他项目文件夹中,它不会产生错误。错误是:
您的用户帐户不允许安装到系统RubyGems
我知道这可以通过遵循建议的建议来解决:
bundle install --path vendor/bundle
我的问题是为什么行为不一致?
就我而言,我解决了错误消息建议的问题:
您的用户帐户不允许安装到系统RubyGems。 您可以取消此安装并运行: bundle install --path vendor / bundle 将宝石安装到./vendor/bundle/
所以,而不是:
bundle install
我跑了:
bundle install --path vendor/bundle
这是解决方案 这家伙。
该解决方案的缺点是它创造了一个 vendor
当前文件夹中的文件夹,可以添加到 .gitignore
如果是通过Git分发应用程序。
通常如果您使用RVM,rbenv或chruby来安装Ruby,所有的gem都将安装在您的home文件夹下 ~/.rbenv/ruby-version/...
如果您正在使用您的系统Ruby(默认情况下安装的那个),那么宝石就会安装在您无法访问的位置 sudo
。
我的猜测是你的版本管理器默认使用系统Ruby,但是你的一些项目中有一个.ruby-version文件,告诉它使用你可以访问的不同版本的Ruby。
在我的情况下,我有一个存在 $BUNDLE_PATH
没有足够的权限来捆绑用户写入。
Your user account isn't allowed to install to the system RubyGems
bundle install --path vendor/bundle
使用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
目录
至少对我来说,问题是我的rbenv ruby版本中没有安装bundler本身。 即使捆绑包存在并且似乎可用......除了权限错误。
删除
sudo mv ~/.bundle /tmp
尝试重新安装
bundle install