RVM установленный Ruby не работает? - PullRequest
33 голосов
/ 06 февраля 2011

Я установил RVM, используя единственную инструкцию, указанную на сайте RVM (используя git).

Затем я установил 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]#

Ответы [ 9 ]

61 голосов
/ 06 февраля 2011

RVM требует незначительного дополнения к вашему ~/.bashrc или ~/.bash_profile, чтобы инициализировать его при входе в систему.Это указано в документации по установке в разделе Постустановка .Вы сделали это?


По вашему выводу rvm info похоже, что вы еще не завершили установку.Все записи в выходных данных должны иметь соответствующие значения.Итак, я подозреваю, что вы не добавили:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"  # This loads RVM into a shell session.

в ~/.bashrc или ~/.bash_profile, а затем начали новый сеанс.

Если вы выполняете многопользовательскую установку, вам нужно будет сделать намного больше.Вы изменили /etc/profile или, если вы используете Bash в качестве оболочки, изменили /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

и запустили новую оболочку?

Лично яне люблю многопользовательскую установку так же сильно, как однопользовательскую, и не рекомендую ее, но ваш пробег может варьироваться.


Как к сведению: в обсуждении с сопровождающими RVMв прошлом году на IRC мне сказали, что они не рекомендуют общесистемную установку, а вместо этого рекомендуют локальную «однопользовательскую» установку, даже для серверов.

13 голосов
/ 07 ноября 2011

Я установил Ruby on Rails на виртуальной машине Ubuntu 11.10, используя « КАК УСТАНОВИТЬ RUBY НА РЕЙЛАХ В UBUNTU 11.10 ».

После установки я столкнулся с той же проблемой,По моему мнению, единственное, чего не хватает в учебнике, это следующая команда:

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 впоследствии.

11 голосов
/ 25 февраля 2014

У меня была похожая проблема (с использованием 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]
5 голосов
/ 02 ноября 2015

Я столкнулся с той же проблемой. Я только что выполнил команду:

/bin/bash --login
4 голосов
/ 01 июня 2014

Вот как исправить необнаруженные рубины внутри RVM.

Сначала я проверил работоспособность, чтобы убедиться, что все выглядит отлично, затем запустил

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)
4 голосов
/ 06 февраля 2011

Вы уверены, что используете источник / usr / local / lib / rvm? echo 'source /usr/local/lib/rvm' >> ~/.bashrc и перепишите через SSH / запустите новый экземпляр Bash.


Чтобы уточнить, поскольку существует некоторая путаница: существует два способа установки RVM: установка «для каждого пользователя» и установка «для всей системы».

Для повседневного использования вы хотите использовать установку «на пользователя», которая устанавливает RVM в ~/.rvm. Общесистемные установки хороши для серверов, где следует использовать один набор Ruby. Расположение по умолчанию для RVM в этом случае /usr/local/rvm.

Судя по вашему вопросу, вы установили RVM как общесистемную установку.

Чтобы использовать RVM, его нужно инициализировать, запуская скрипт при каждом входе в систему. Чтобы сделать это легко, вы включаете файл в файл ~/.bashrc (или ~/.bash_profile, если вы используете OS X), чтобы он запускался автоматически при каждом входе в систему. Для установки на пользователя добавьте в файл следующий текст:

[[ -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 должен работать правильно.

2 голосов
/ 06 февраля 2011

Руби не на вашем пути.Проще говоря, RVM управляет переключением Ruby на вашем пути.Посмотрите на вывод инструмента командной строки

printenv

Вы должны увидеть что-то похожее на:

PATH=/Users/myuser/.rvm/gems/jruby-1.5.6/bin

См. Ответ Tin Man, он должен получить вас, куда вам нужно идти.

0 голосов
/ 22 марта 2017

Я установил свою оболочку в качестве оболочки входа в систему (откройте терминал> Изменить> Параметры профиля> вкладка Команда> «Выполнить команду как оболочку входа»), хотя я не уверен на 100%, что это необходимо.

Как только вы закончите установку RVM + Ruby, вы должны указать, какой ruby ​​вы будете использовать. Мне нравится использовать

rvm use --latest --default

0 голосов
/ 08 января 2017

Я заметил, что строка source была правильно в .bash_profile, но я продолжал получать команду ruby, не найденную. Итак, когда я проверил rvm list, я обнаружил, что ни один рубин не был выбран:

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]

Надеюсь, это поможет. Приветствия.

edit: Вы можете использовать rvm --default use 2.4.0, чтобы установить его как версию ruby ​​по умолчанию

...