使用系统 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 rubywhich -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​​ 版本而不是下载的捆绑程序的主要内容,如果未能解决你的问题,请参考以下文章

将 taglib 与 taglib-ruby 捆绑

指定bundle的版本

错误 ITMS-9000:“此捆绑包无效。Apple 目前不接受构建的应用程序

使用 MySQL 而不是 SQLite 创建一个新的 Ruby on Rails 应用程序

为啥 C++ 标准库与编译器而不是操作系统捆绑在一起?

iOS - 是不是可以使用更新的 xib 从互联网下载捆绑包?