使用系统 ruby 版本而不是下载的捆绑器
bundler using system ruby version instead of downloaded
这是一个基本问题,但我一直在用头撞墙试图解决这个问题,但我被卡住了。
我正在克隆一个 rails 项目。
当我 运行 bundle install
我得到:
Your Ruby version is 2.6.8, but your Gemfile specified 2.5.5
所以我试图通过 rbenv versions
确保我使用的是正确的版本。我得到:
system
* 2.5.5 (set by /Users/Mahmoud/dev-reps/non-docker/backend/.ruby-version)
这意味着 rbenv 使用的是正确的版本。现在我运行which bundle
:
/usr/local/bin/bundle
表示bundler使用的是系统版本
至于which -a bundle
给出:
/usr/local/bin/bundle
/usr/bin/bundle
另外,当我 运行 which ruby
或 which -a ruby
时,我得到:
/usr/bin/ruby
虽然我尝试了一些东西,但它指向了隧道尽头的光亮。当[我尝试基于这个post] this1:
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
并重新运行 捆绑安装,有效。但问题是,这种变化并不是持久的。我关闭 shell 并重试,我就在我开始的地方
我在重新散列等之后多次卸载并重新安装了捆绑器,但我仍然看到 rbenv 不受“控制”。说是用了一个版本,实际是用的是系统版本
更新
根据其中一条评论,我卸载了 rbenv 并重新下载。现在在 rbenv rehash
之后,当我输入 which ruby
:
时得到以下信息
/Users/Mahmoud/.rbenv/shims/ruby
完美。 which bundle
然而给出:
/usr/local/bin/bundle
所以问题依旧。我也试过 gem install bundler
但是当我输入 bundle install
时我仍然遇到同样的问题。
我做错了什么?
您的 shell 中似乎没有设置 rbenv
。您可以在 rbenv 文档 here.
中找到有关如何执行此操作的说明
好的,下班后,在此处评论和上面给出的答案的帮助下,我能够让它工作。
问题似乎是 rbenv 没有正确设置。要修复它,要么卸载并重新安装。是否通过:
brew remove rbenv
rm -rf ~/.rbenv
- 从
~/.zshrc
中删除了包含 rbenv 的行
这删除了 rbenv。然后我重新安装使用:
brew install rbenv
- 然后使用
rbenv init
初始化。这有效地修复了 rbenv 的问题。现在在重新启动终端后,每当我 运行 which ruby
,我会得到:
/Users/Mahmoud/.rbenv/shims/ruby
简而言之,系统现在依赖 rbenv 进行 ruby 版本管理,而不是在系统中查找。这对于 rbenv 的工作至关重要,本质上这是它的全部“存在理由”;将管理 ruby 的工作从您的电脑上移开。
在这一步之后我运行gem install bundler
。当我 运行 which bundle
执行此步骤时,它会给出:
/Users/Mahmoud/.rbenv/shims/bundle
一切就绪,工作正常
这是一个基本问题,但我一直在用头撞墙试图解决这个问题,但我被卡住了。
我正在克隆一个 rails 项目。
当我 运行 bundle install
我得到:
Your Ruby version is 2.6.8, but your Gemfile specified 2.5.5
所以我试图通过 rbenv versions
确保我使用的是正确的版本。我得到:
system
* 2.5.5 (set by /Users/Mahmoud/dev-reps/non-docker/backend/.ruby-version)
这意味着 rbenv 使用的是正确的版本。现在我运行which bundle
:
/usr/local/bin/bundle
表示bundler使用的是系统版本
至于which -a bundle
给出:
/usr/local/bin/bundle
/usr/bin/bundle
另外,当我 运行 which ruby
或 which -a ruby
时,我得到:
/usr/bin/ruby
虽然我尝试了一些东西,但它指向了隧道尽头的光亮。当[我尝试基于这个post] this1:
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
并重新运行 捆绑安装,有效。但问题是,这种变化并不是持久的。我关闭 shell 并重试,我就在我开始的地方
我在重新散列等之后多次卸载并重新安装了捆绑器,但我仍然看到 rbenv 不受“控制”。说是用了一个版本,实际是用的是系统版本
更新
根据其中一条评论,我卸载了 rbenv 并重新下载。现在在 rbenv rehash
之后,当我输入 which ruby
:
/Users/Mahmoud/.rbenv/shims/ruby
完美。 which bundle
然而给出:
/usr/local/bin/bundle
所以问题依旧。我也试过 gem install bundler
但是当我输入 bundle install
时我仍然遇到同样的问题。
我做错了什么?
您的 shell 中似乎没有设置 rbenv
。您可以在 rbenv 文档 here.
好的,下班后,在此处评论和上面给出的答案的帮助下,我能够让它工作。
问题似乎是 rbenv 没有正确设置。要修复它,要么卸载并重新安装。是否通过:
brew remove rbenv
rm -rf ~/.rbenv
- 从
~/.zshrc
中删除了包含 rbenv 的行
这删除了 rbenv。然后我重新安装使用:
brew install rbenv
- 然后使用
rbenv init
初始化。这有效地修复了 rbenv 的问题。现在在重新启动终端后,每当我 运行which ruby
,我会得到:
/Users/Mahmoud/.rbenv/shims/ruby
简而言之,系统现在依赖 rbenv 进行 ruby 版本管理,而不是在系统中查找。这对于 rbenv 的工作至关重要,本质上这是它的全部“存在理由”;将管理 ruby 的工作从您的电脑上移开。
在这一步之后我运行gem install bundler
。当我 运行 which bundle
执行此步骤时,它会给出:
/Users/Mahmoud/.rbenv/shims/bundle
一切就绪,工作正常