gpt4 book ai didi

ruby-on-rails - RVM 查找系统 gems 的可执行文件

转载 作者:数据小太阳 更新时间:2023-10-29 06:51:53 24 4
gpt4 key购买 nike

我已经安装了 RVM 和 ruby​​ 版本。但是,如果我启动控制台并运行命令 rails server、bundle install 等。我会收到此错误

bash: /usr/bin/rails: /usr/bin/ruby1.8: bad interpreter: No such file or directory

但如果我先运行 rvm use 1.9.2,那么一切都正常。我尝试使用 `rvm use --default 1.9.2' 但没有任何改变。这是否意味着它使用的 ruby 与 RVM 中的 ruby 不同?提前致谢!

最佳答案

rubygems bin文件夹和PATH的解释

哦。你没有在你的 rvm ruby​​ 中安装 rails,但是你在你的系统 ruby​​ 中安装了。

rails 这样的单个 gem 可以有一个 bin 目录,其中将包含可执行的帮助脚本。您的系统默认 ruby​​gems 正在为这些辅助可执行文件从您的系统/usr/bin/目录创建符号链接(symbolic link)到 gem 的 bin 文件夹。

RVM 提供了类似的工具,除了它不会污染系统/usr/bin 目录,它只是附加 its ~/.rvm/gems/#{rvm_gemset_string}/bin 文件夹到 PATH 环境变量。


将系统 Rubygems 列表导入到新的 rvm rubies 的 gem 目录中

默认情况下,RVM 不会将系统 ruby​​ 安装中的 gems 导入到 rvm ruby​​ 安装中。它为整个 ruby​​ 系统创建了一个完全干净的分支,包括 ruby​​gems(gem 'rubygems')和 ruby​​gems 的 gem 列表。当您 rvm install 1.9.2 时,就好像您对所有与 ruby​​ 一起使用的东西进行了全新安装。

如果你想把你以前使用的所有系统 ruby​​ gem 变成你首选的 rvm ruby​​,试试这个:

  rvm use system
rvm gemset export system.gems
rvm use 1.9.2
rvm gemset import system.gems
#You'll now have all your system gems reinstalled to your new ruby version

@Telemachus 的原始答案/编辑

尝试将 source rvm 的行移动到 ~/.bash_profile~/.bashrc 的末尾(无论你在哪个中):

'[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function'

.

bash: /usr/bin/rails: /usr/bin/ruby1.8: bad interpreter: No such file ...
| | ^--------------------------------\
^ Bash, not rvm; ^/usr/bin/rails, not ~/.rvm/gems/*/bin/rails; |
Some ruby leftover from a previous install in the os

您在 /usr/bin 中安装了 rails,这可能在您的 bash echo $PATH 变量中的 rvm ruby​​ bin 路径之前,因此它正在寻找系统 rails安装(/usr/bin/rails,一个 ruby​​ 脚本),它是这样开始的:

#!/usr/bin/ruby18

你必须让冲突停止发生,最好的方法是确保 RVM 的 bin 目录在你的 PATH 的开头。这发生在您在安装 rvm 时添加到 ~/.bash_profile#Load rvm environment 脚本中。如果您将 rvm 安装为系统库,而不是仅仅为您的用户安装,这将有所不同。

如果遇到这种情况,请询问@Telemachus。

然后您需要确保已将 rails gem 安装在新的 rvm ruby​​ 中,如上所示。

验收测试:

你会发现,当你完成 rvm use 1.9.2 后,which ruby​​ 将返回类似 ~/.rvm/rubies/的内容1.9.2/bin/rubywhich rails 应该返回类似于 ~/.rvm/gems/*/bin/rails 的内容。

关于ruby-on-rails - RVM 查找系统 gems 的可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6380373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com