Wil*_*ken 18 ruby rubygems ruby-on-rails bundler gemfile
我在运行命令
bundle install
Run Code Online (Sandbox Code Playgroud)
在项目文件夹中.在某些项目文件夹中,它将产生错误,在其他项目文件夹中,它不会产生错误.错误是:
您的用户帐户不允许安装到系统RubyGems
我知道这可以通过遵循建议的建议来解决:
Run Code Online (Sandbox Code Playgroud)bundle install --path vendor/bundle
我的问题是为什么行为不一致?
Ant*_*dei 17
就我而言,我解决了错误消息的建议:
Your user account isn't allowed to install to the system RubyGems.
You can cancel this installation and run:
bundle install --path vendor/bundle
to install the gems into ./vendor/bundle/
所以,而不是:
bundle install
Run Code Online (Sandbox Code Playgroud)
我跑了:
bundle install --path vendor/bundle
Run Code Online (Sandbox Code Playgroud)
那是这个人的解决方案.
该解决方案的缺点是它vendor在当前文件夹中创建了一个文件夹,.gitignore如果要通过Git分发应用程序,可以添加该文件夹.
我有过类似的经历。我会简单地运行下面的代码来临时修复它
bundle install --path vendor/bundle
Run Code Online (Sandbox Code Playgroud)
这样做的缺点是它不能永久解决问题,因为当您开始使用其他 Ruby on Rails 应用程序时,问题会再次出现。
我试过这个解决方案,但它对我不起作用:
显示 bundler gem 的所有本地 gem 列表
gem list bundler
Run Code Online (Sandbox Code Playgroud)
N/B:上面的命令是针对 rbenv 版本管理器的,针对 rvm 的可能会有所不同
这将显示本地安装的 bundler gem 的版本
bundler (2.0.2, default: 1.17.3, 1.10.6)
Run Code Online (Sandbox Code Playgroud)
然后运行下面的代码来卸载版本 1.10.6
gem uninstall bundler
Run Code Online (Sandbox Code Playgroud)
之后我运行下面的代码来重新哈希rbenv
rbenv rehash
Run Code Online (Sandbox Code Playgroud)
然而,这并没有解决问题。
这是我解决它的方法;
问题是我错误地运行了bundle install具有管理权限的操作,即:
sudo bundle install
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我运行了下面的代码来更改文件和目录的所有权。
对于rbenv用户:
sudo chown -R $USER ~/.rbenv
Run Code Online (Sandbox Code Playgroud)
对于RVM用户
sudo chown -R $USER ~/.rvm
Run Code Online (Sandbox Code Playgroud)
就是这样。
我希望这有帮助
通常如果您使用RVM,rbenv或chruby来安装Ruby,所有的gem都将安装在您的home文件夹下 ~/.rbenv/ruby-version/...
如果你正在使用你的系统Ruby(默认情况下安装的那个),那么gems就会安装在你没有访问权限的位置sudo.
我的猜测是你的版本管理器默认使用系统Ruby,但是你的一些项目中有一个.ruby-version文件,告诉它使用你可以访问的不同版本的Ruby.
至少对我而言,问题在于我的 rbenv ruby 版本中没有安装捆绑程序本身。 即使 bundler 存在并且似乎可用......除了权限错误。
给我提供线索的一件事是,在实际的命令行本身,我可以正常安装 gems 而不会收到错误消息。我这样做了一段时间作为解决方法,直到我决定永久解决问题,如下所示:
为了解决它,我做了:
rbenv local 2.5.0 # Make sure I'm using a local version that exists
gem list | grep bundler # Note no output! Need to fix that!
gem install bundler
rbenv rehash
bundle (within my project that has a Gem file)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16657 次 |
| 最近记录: |