使用系统 ruby 版本而不是下载的捆绑程序
Posted
技术标签:
【中文标题】使用系统 ruby 版本而不是下载的捆绑程序【英文标题】:bundler using system ruby version instead of downloaded 【发布时间】:2022-01-22 05:18:25 【问题描述】:这是一个基本问题,但我一直在用头撞墙试图解决这个问题,但我被卡住了。
我正在克隆一个 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
这意味着捆绑器正在使用系统版本。
至于which -a bundle
给出:
/usr/local/bin/bundle
/usr/bin/bundle
当我运行which ruby
或which -a ruby
时,我得到:
/usr/bin/ruby
虽然我尝试了一些方法,但指向隧道尽头的光。当[我根据这篇文章尝试] this1:
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
并重新运行捆绑安装,它可以工作。但问题是,变化不是持久的。我关闭 shell 并重试,我就在我开始的地方
在重新散列等之后,我已经多次卸载并重新安装了 bundler,但我仍然看到 rbenv 不受“控制”。它告诉我正在使用一个版本,但事实是正在使用系统版本。
更新
基于其中一个 cmets,我卸载了 rbenv 并重新下载。现在在rbenv rehash
之后,当我输入which ruby
时,我得到以下信息:
/Users/Mahmoud/.rbenv/shims/ruby
这是完美的。 which bundle
然而给出:
/usr/local/bin/bundle
所以问题仍然存在。我也试过gem install bundler
,但当我输入bundle install
时,我还是遇到了同样的问题。
我做错了什么?
【问题讨论】:
当你运行命令 which ruby 会发生什么? 添加它兄弟:D 您能否检查您的.bash_profile
是否包含.rbenv
路径?否则需要返回正确安装rbenv
。
@OuttaSpaceTime 这样做了,现在which ruby
指向 rbenv。 which bundle
虽然有问题。你能检查一下上面的问题吗,我已经编辑了
正在工作..我将添加一个答案,说明我经历的所有步骤
【参考方案1】:
您的 shell 中似乎没有设置 rbenv
。您可以在 rbenv 文档here 中找到有关如何执行此操作的说明。
【讨论】:
出于某种奇怪的原因 rbenv init - 没有解决任何问题【参考方案2】:Okkk,所以几个小时后,在 cmets 的帮助和上面给出的答案的帮助下,我能够让它工作。
问题似乎是 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
所以一切都准备就绪并且工作正常
【讨论】:
以上是关于使用系统 ruby 版本而不是下载的捆绑程序的主要内容,如果未能解决你的问题,请参考以下文章
错误 ITMS-9000:“此捆绑包无效。Apple 目前不接受构建的应用程序