我正在尝试运行"捆绑更新",但我不断收到错误消息:
An error occurred while installing rack (2.0.1), and Bundler cannot continue.
Make sure that `gem install rack -v '2.0.1'` succeeds before bundling.
然后我安装机架2.0.1:
sudo gem install rack -v 2.0.1
Successfully installed rack-2.0.1
Parsing documentation for rack-2.0.1
Done installing documentation for rack after 2 seconds
1 gem installed
然后我甚至跑了" rbenv rehash",然后我跑了#34;捆绑更新"再次出现相同的错误消息。如何让Bundler识别出新的宝石?
答案 0 :(得分:3)
确保首先安装rbenv安装的ruby版本中的“bundler”。然后,检查该目录中的ruby版本。它应该是您从rbenv或rvm安装的那个。在这些之后,如果您要安装某些内容,请不要在sudo
之前使用bundle
。因为bundle
来自rbenv ruby版本。如果rbenv rehash
不起作用,只需重新启动bash并检查即可。
如果没有sudo
的东西需要权限,您最有可能使用系统ruby安装的捆绑程序sudo gem install bundler
。
尝试在没有像gem install bundler
这样的sudo的情况下重新安装捆绑包,然后重试。
即使不起作用,也请删除目录中的Gemfile.lock。删除Gemfile中提到的任何版本的机架(如果有)。只需拥有gem 'rack'
之类的宝石名称,然后再次尝试bundle install
。您可以使用sudo
安装的gem已存储为系统ruby,而不是通过rbenv
安装的gem。
答案 1 :(得分:0)
当您运行sudo install
时,您的宝石很可能安装在不同的目录下。使用Rbenv或VRM时,不应使用sudo
。
首先,您可以尝试从系统宝石中卸载gem,并在没有sudo的情况下再次执行。
进入极端状态你可以用宝石完全重新安装你的rbenv(当它切换到RVM时,我个人觉得它更容易管理)。之后尝试在没有sudo的情况下再次捆绑安装所有内容,它应该可以工作。