【问题标题】:rbenv and bundler: "bad interpreter: No such file or directory"rbenv 和 bundler:“错误的解释器:没有这样的文件或目录”
【发布时间】:2024-01-14 13:58:01
【问题描述】:

我搞砸了我的配置。我正在运行 Ubuntu 14.04,当我尝试从一个项目转移到另一个项目时遇到了一些问题。我尝试卸载并重新安装 rbenv,然后按照本指南安装 Ruby 2.1.7:https://gorails.com/setup/ubuntu/14.04

现在,当我运行 gem install bundler 时,什么也没有发生,我无法安装任何 gem。当我输入 bundlerbundler -v 时,我看到:

/usr/local/bin/bundler: /usr/bin/ruby1.9.1: bad interpreter: No such file or directory

我花了很多时间试图解决这个问题,但我真的不知道该怎么办。

【问题讨论】:

  • 规则一:非常小心地遵循网站上描述如何安装任何东西的说明。互联网上没有垃圾收集,如此陈旧、过时或简直糟糕透顶,信息可以随处可见,污染人们如何做事的头脑。向作者和维护者寻求安装说明,因为他们比任何人都更了解如何安装他们的代码。

标签: ruby gem rubygems bundle rbenv


【解决方案1】:

找到bundle 可执行文件(在非项目目录 - 默认系统 ruby​​ 中)并将其删除:

which bundle

rm <path_obtained_above>

现在转到您的项目目录,或切换到您的 ruby​​ 版本并安装 bundler:

gem install bundler

然后执行rbenv rehash

现在尝试执行bundle install,它应该可以工作。您需要为每个安装的 ruby​​ 版本执行一次。

【讨论】:

  • 这对我有用。 rbenv rehash 函数找到了正确的 bundle 可执行文件。
  • 在 WSL 上,bundle 试图从 Windows 使用 ruby.exe !!!我所要做的就是 rbenv rehash。谢谢!
【解决方案2】:

gem 正在由您的 /usr/local/bin 执行这一事实意味着 rbenv 不在您的 $PATH 中正确。

第 1 步:

请删除您在以下区域中对 rbenv 的任何引用:

  • ~/.profile
  • ~/.bashrc
  • ~/.bash_profile
  • ~/.gemrc

第 2 步:

使用这些instructions 重新安装 rbenv。它不会覆盖,它只会更新对您的 ~/.bash_profile 的更改。重新安装后关闭终端并重新打开。那时一切都应该正常工作。

第 3 步:

通过执行cat ~/.bash_profile 来验证是否已正确安装所有内容。您应该看到以下内容。如果你这样做了,你就可以走了。

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

感谢@theTinMan 最近帮助我整理了my rbenv installation

【讨论】:

  • 如果遵循安装 rbenv 的说明,则不需要第 2 步。脚本会自动正确执行。
  • @theTinMan,谢谢。我更新了答案以供任何人将来参考。
  • 第1步没看懂,能解释一下吗?
  • @FrédéricAdda 他的意思是你应该删除这 4 个文件之一中提到 rbenv 的所有行(以及 ~/.zshrc,如果你正在使用它)。
最近更新 更多