- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我已经安装了 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
目录,其中将包含可执行的帮助脚本。您的系统默认 rubygems 正在为这些辅助可执行文件从您的系统/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 系统创建了一个完全干净的分支,包括 rubygems(gem 'rubygems')和 rubygems 的 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/ruby
,which rails
应该返回类似于 ~/.rvm/gems/*/bin/rails
的内容。
关于ruby-on-rails - RVM 查找系统 gems 的可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6380373/
我正在 Mac OS X 上安装 Ruby on Rails。我遵循的教程说要添加: [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/script
RVM 可以做的一件事是在您更改目录时注意,查找 .rvmrc ,并根据该文件的内容更改您当前的 Ruby 版本和 gemset。只要您更改到该目录,它就会进行此更改并相应地输出一条消息。 它如何检测
我最近看到了曙光,并改用了 Zsh。我很自然地使用 Oh My Zsh 来配置它,因为我是菜鸟。因此,有几个主题具有 rvm-prompt包括在内,这是我的问题开始了。每次我加载 Zsh 我都必须 r
我正在通过示例教程系列来了解 Rails。在提出问题之前,我会尽力找到解决方案,因此,如果我错过了任何内容,我深表歉意。 每次我需要从终端的命令行启动 RVM 时,我都需要敲一个命令,以便 RVM 初
我正在尝试在 Ubuntu 上使用 RVM 在 rails 上安装 Ruby,但是当我运行此命令时: source ~/.rvm/scripts/rvm 我收到这个错误: bash: /home/u
所以我不确定我是否遗漏了什么,但是是否有自动库的特定设置 rvm requirements 显示要求而不是检查它们是否已安装?或者我是否缺少其他选项来简单地显示要求?我使用的是 1.19.0 版 最佳
有没有办法摆脱警告,当我遍历一个文件夹时,有 .rvmrc文件。 ===================================================================
所以我安装了 fish 和 oh-my-fish,当我想使用 rvm 时出现此错误: ➜ avalancha git:(services) ✗ rvm use 2.1.0 Using /home/ma
我正在使用capistrano,bundler和rvm将Rails应用程序部署到VPS。 这是我的deploy.rb的一部分 $:.unshift(File.expand_path('./lib',
我在 OS X 主机上安装了 RubyMine (7) 和最后一个 Vagrant。我已经准备了 shell 脚本,用于为我的 vagrant box 提供 RVM、ruby (2.1.2)、捆绑我的
我需要在 Cloud9 中使用 Ruby 2.1.2。 rvm 已经安装,所以这很好: samueller@test2:~/workspace $ rvm -v Warning! PATH is no
我想在 ubuntu 中安装 RVM,我正在按照这些步骤操作 root@jaskaran-Vostro-1550:/home/user_name# sudo apt-get install curl
首先我要说我不是命令行专家,所以我真的几乎不知道自己在做什么。 我无法让 RVM 和 oh-my-zsh 一起玩得很好。我尝试了几种不同的解决方案,其中一些是在 SO 上发布的,但我发现似乎没有任何解
我第一次尝试在 ubuntu 服务器上部署我的应用程序。 我一直遇到这个错误: 2013-03-24 15:13:36 executing `deploy:run_migrations' * e
我了解 Boxen不适用于 RVM ,我不明白为什么。是否有一些限制阻止 Boxen 能够使用 RVM 而不是 rbenv? Boxen 的核心是 Puppet,它确实支持安装 RVM 模块,所以我不
在我删除 rvm(ruby 版本管理器)后,zsh 就出来了: zsh: command not found: rvm-prompt 有什么我没弄清楚的吗?但是我已经删除了 zshrc 或 bash_
我一直在使用 RoR 3.0.3 和 2.8.4 开发几个应用程序,这意味着我必须经常在 RVM 环境之间来回切换。我的 3.0.3 RVM 被称为 ruby-1.9.2-p0@ror3 ,而另一个是
我很平静(回复:rbenv),但我对 rvm 和 .rvmrc 感到非常沮丧。我一直遇到问题,我 cd 到我的项目文件夹中,却发现我的 ruby & gemset 环境没有正确设置。所以有人可以一
为什么在/home/user/.rvm/gems/ruby-2.2.3/bin之前加nvm 在 PATH ? echo $PATH /home/user/.rvm/bin:/home/user/.nv
我正在使用Vagrant安装了docker的VM 它还安装了RVM和Ruby 2.1: # -*- mode: ruby -*- # vi: set ft=ruby : $rvm= > .bash_h
我是一名优秀的程序员,十分优秀!