[英]RVM installed by Ruby not working?
我使用 RVM 网站上提到的单一指令(使用 git)安装了 RVM。
然后我使用以下命令安装了 Ruby 版本 1.9.2 和 1.8.7:
rvm install 1.9.2
rvm install 1.8.7
但是,我找不到 Ruby 二进制文件。 当我尝试执行命令时,出现以下错误:
[root@server1 support]# rvm use 1.9.2
Using /usr/local/rvm/gems/ruby-1.9.2-p136
[root@server1 support]# ruby
-bash: ruby: command not found
这是rvm info
的输出:
[root@server1 support]# rvm info
system:
system:
uname: "Linux server1.myserver.com 2.6.18-194.26.1.el5.028stab070.14 #1 SMP Thu Nov 18 16:34:01 MSK 2010 x86_64 x86_64 x86_64 GNU/Linux"
bash: "/bin/bash => GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)"
zsh: " => not installed"
rvm:
version: "rvm 1.2.6 by Wayne E. Seguin (wayneeseguin@gmail.com) [http://rvm.beginrescueend.com/]"
homes:
gem: "not set"
ruby: "not set"
binaries:
ruby: ""
irb: ""
gem: ""
rake: ""
environment:
PATH: "/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/rvm/bin"
GEM_HOME: ""
GEM_PATH: ""
MY_RUBY_HOME: ""
IRBRC: ""
RUBYOPT: ""
gemset: ""
[root@server1 support]#
RVM 需要对~/.bashrc
或~/.bash_profile
进行少量添加,以便在您登录时对其进行初始化。 它在Post Install部分的安装文档中指定。 是你做的吗?
根据您的rvm info
输出,您似乎还没有完成安装。 输出中的所有条目都应具有相应的值。 所以,我怀疑你没有添加:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session.
到你的~/.bashrc
或~/.bash_profile
然后开始一个新的会话。
如果您正在进行“多用户”安装,那么您需要做更多的事情。 您是否修改了/etc/profile
,或者,如果您使用 Bash 作为 shell,您是否修改了/etc/bash.bashrc
以包括:
# Load RVM if it is installed, # first try to load user install # then try to load root install, if user install is not there. if [ -s "$HOME/.rvm/scripts/rvm" ] ; then . "$HOME/.rvm/scripts/rvm" elif [ -s "/usr/local/rvm/scripts/rvm" ] ; then . "/usr/local/rvm/scripts/rvm" fi
并开始一个新的外壳?
就个人而言,我不像单用户安装那样喜欢多用户安装,也不推荐它,但你的里程可能会有所不同。
仅供参考:去年在 IRC 上与 RVM 维护者的讨论中,他们告诉我他们不推荐系统范围的安装,而是推荐本地“单用户”安装,即使对于服务器也是如此。
我有类似的问题(使用 Ubuntu 13.10)来解决它
$ source .rvm/scripts/rvm
并且长期
$ echo "source ~/.rvm/scripts/rvm" >> ~/.bashrc
$ ruby -v
The program 'ruby' can be found in the following packages:
* ruby1.8
* ruby1.9.1
Try: sudo apt-get install <selected package>
$ source .rvm/scripts/rvm
$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]
我使用“ HOW TO INSTALL RUBY ON RAILS IN UBUNTU 11.10 ”在 Ubuntu 11.10 VM 上安装了 Ruby on Rails。
安装后,我遇到了同样的问题。 在我看来,教程中似乎唯一缺少的是以下命令:
rvm --default use 1.9.2
尽管 Ruby 已正确安装,但 RVM 似乎在每个会话中都重新定义了要使用的 Ruby。 问题是默认的 Ruby 指向“系统红宝石”,而在我的例子中,这个指向任何地方并使调用rvm info
返回类似于初始帖子的结果。
要解决此问题,必须使用以下命令之一:
rvm --default use 1.9.x
或(仅对当前会话有效)
rvm use 1.9.x
在启动服务器之前,我还遇到了“ ExecJS 并且找不到 JavaScript 运行时”。 正如几个答案中所建议的,我通过将以下行添加到 Gemfile 来解决它。
gem 'execjs'
gem 'therubyracer'
然后运行bundle install
。
我遇到了同样的问题。 您可能需要先登录:
/bin/bash --login
以下是修复 RVM 中未检测到的 Rubies 的方法。
首先,我做了一个健全性检查以确保一切看起来都很棒,然后运行
rvm use ruby --default
哪个完成了工作。 它归结为这个命令:
-SVE1411EGXB:~/code$ cd app1/
-SVE1411EGXB:~/code/app1$ rails s
The program 'rails' can be found in the following packages:
* ruby-railties-3.2
* ruby-railties-4.0
Try: sudo apt-get install <selected package>
-SVE1411EGXB:~/code/app1$ rails s
The program 'rails' can be found in the following packages:
* ruby-railties-3.2
* ruby-railties-4.0
Try: sudo apt-get install <selected package>
-SVE1411EGXB:~/code/app1$ which ruby
-SVE1411EGXB:~/code/app1$ which gem
-SVE1411EGXB:~/code/app1$ rvm list
rvm rubies
=* ruby-2.1.2 [ x86_64 ]
# => - current
# =* - current && default
# * - default
-SVE1411EGXB:~/code/app1$ \curl -sSL https://get.rvm.io | bash -s stable
Downloading https://github.com/wayneeseguin/rvm/archive/stable.tar.gz
Upgrading the RVM installation in /home /.rvm/
RVM PATH line found in /home /.profile /home /.bashrc /home /.zshrc.
RVM sourcing line found in /home /.bashrc /home /.bash_profile /home /.zlogin.
Upgrade of RVM in /home /.rvm/ is complete.
# nullsoulexception,
#
# Thank you for using RVM!
# We sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne, Michal & team.
In case of problems: http://rvm.io/help and https://twitter.com/rvm_io
Upgrade Notes:
* No new notes to display.
-SVE1411EGXB:~/code/app1$ rails s
The program 'rails' can be found in the following packages:
* ruby-railties-3.2
* ruby-railties-4.0
Try: sudo apt-get install <selected package>
-SVE1411EGXB:~/code/app1$ source ~/.rvm/scripts/rvm
-SVE1411EGXB:~/code/app1$ rvm requirements
Checking requirements for ubuntu.
Requirements installation successful.
-SVE1411EGXB:~/code/app1$ rvm get stable
Downloading https://get.rvm.io
Downloading https://github.com/wayneeseguin/rvm/archive/stable.tar.gz
Upgrading the RVM installation in /home /.rvm/
RVM PATH line found in /home /.profile /home /.bashrc /home /.zshrc.
RVM sourcing line found in /home /.bashrc /home /.bash_profile /home /.zlogin.
Upgrade of RVM in /home /.rvm/ is complete.
# nullsoulexception,
#
# Thank you for using RVM!
# We sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne, Michal & team.
In case of problems: http://rvm.io/help and https://twitter.com/rvm_io
Upgrade Notes:
* No new notes to display.
RVM reloaded!
-SVE1411EGXB:~/code/app1$ rvm reload
RVM reloaded!
-SVE1411EGXB:~/code/app1$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-head] # security released on head
[ruby-]1.9.3[-p547]
[ruby-]2.0.0-p451
[ruby-]2.0.0[-p481]
[ruby-]2.1.1
[ruby-]2.1[.2]
[ruby-]2.1-head
ruby-head
# GoRuby
goruby
# Topaz
topaz
# TheCodeShop - MRI experimental patches
tcs
# jamesgolick - All around gangster
jamesgolick
# Minimalistic ruby implementation - ISO 30170:2012
mruby[-head]
# JRuby
jruby-1.6.8
jruby[-1.7.12]
jruby-head
# Rubinius
rbx-2.0.0
rbx-2.1.1
rbx[-2.2.7]
rbx-head
# Ruby Enterprise Edition
ree-1.8.6
ree[-1.8.7][-2012.02]
# Kiji
kiji
# MagLev
maglev[-head]
maglev-1.0.0
# Mac OS X Snow Leopard Or Newer
macruby-0.10
macruby-0.11
macruby[-0.12]
macruby-nightly
macruby-head
# Opal
opal
# IronRuby
ironruby[-1.1.3]
ironruby-head
-SVE1411EGXB:~/code/app1$ ruby -v
The program 'ruby' can be found in the following packages:
* ruby
* ruby1.8
Try: sudo apt-get install <selected package>
-SVE1411EGXB:~/code/app1$ rvm use ruby --default
Using /home /.rvm/gems/ruby-2.1.2
-SVE1411EGXB:~/code/app1$ ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
-SVE1411EGXB:~/code/app1$ rails s
=> Booting WEBrick
=> Rails 4.1.1 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
你确定来源 /usr/local/lib/rvm 吗? echo 'source /usr/local/lib/rvm' >> ~/.bashrc
并通过 SSH 重新登录/启动一个新的 Bash 实例。
澄清一下,因为存在一些混淆:有两种安装 RVM 的方法:“每个用户”安装和“系统范围”安装。
对于大多数日常使用,您希望使用“每用户”安装,将 RVM 安装到~/.rvm
中。 系统范围的安装对于服务器来说是好的,应该使用一组 Rubies。 在这种情况下,RVM 的默认位置是/usr/local/rvm
。
根据您的问题,您似乎已将 RVM 安装为系统范围的安装。
要使用 RVM,必须在您每次登录时通过运行脚本来初始化它。为了轻松地做到这一点,您将该文件包含在您的~/.bashrc
文件中(如果您使用的是 OS X,则为~/.bash_profile
),所以它会在您每次登录时自动运行。对于每用户安装,将以下文本添加到文件中:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
对于系统范围的安装,请改用此文本:
[[ -s "/usr/local/lib/rvm" ]] && . "/usr/local/lib/rvm"
如果你确实有一个系统范围的安装,你还需要确保你是 rvm 组的成员; 输入以下内容:
sudo adduser `whoami` rvm
完成必要的更改后,退出会话,然后重新登录。完成后, rvm use 1.9.2
应该设置一堆环境变量,您可以通过键入rvm info
查看这些变量。 如果一切顺利, ruby
应该可以正确执行。
Ruby 不在你的道路上。 简单来说,RVM 处理路径中 Ruby 的切换。 查看命令行工具的输出
printenv
您应该会看到类似于以下内容的内容:
PATH=/Users/myuser/.rvm/gems/jruby-1.5.6/bin
看看 Tin Man 的回应,它应该让你知道你需要去哪里。
我注意到source
行在.bash_profile 中是正确的,但我一直找不到 ruby 命令。 所以,当我检查rvm list
时,我发现没有选择 ruby:
rvm list
rvm rubies
ruby-2.4.0 [ x86_64 ]
# Default ruby not set. Try 'rvm alias create default <ruby>'.
# => - current
# =* - current && default
# * - default
然后我通过rvm use 2.4.0
进行了选择并再次检查
rvm list
rvm rubies
=> ruby-2.4.0 [ x86_64 ]
# Default ruby not set. Try 'rvm alias create default <ruby>'.
# => - current
# =* - current && default
# * - default
查看箭头关闭已安装的红宝石和注释字幕。 在那之后ruby -v
终于回答了我
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]
我希望这有帮助。 干杯。
编辑:您可以使用rvm --default use 2.4.0
将其设置为默认的 ruby 版本
我将我的 shell 设置为登录 shell(打开终端 > 编辑 > 配置文件首选项 > 命令选项卡 >“将命令作为登录 shell 运行”),但我不能 100% 确定是否需要它。
一旦你完成了 RVM + Ruby 的安装,你必须指定你将使用哪个 ruby。 我喜欢用
rvm use --latest --default
rvm use 2.6.3 --default
可以修复它,但是当我关闭我的 Ubuntu 时,问题再次出现。! 这个链接帮助了我。 https://github.com/rvm/rvm/issues/3682
sudo vim.bash_profile
[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session as a function
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.