RVM, установленный Ruby, не работает?

Я установил 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 ответов


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 в качестве оболочки, вы изменен /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

и начал новую оболочку?

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


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


Я установил Ruby on Rails на Ubuntu 11.10 VM, используя"КАК УСТАНОВИТЬ RUBY ON RAILS В UBUNTU 11.10".

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

rvm --default use 1.9.2

хотя Ruby правильно установлен, RVM, похоже, переопределяет в каждом сеансе Ruby. Проблема заключалась в том, что Рубин по умолчанию указывал на "системный Рубин", а в мой случай, этот указал в никуда и сделал звонок rvm info возвращает результат, аналогичный исходному сообщению.

для решения этой проблемы необходимо использовать одну из следующих команд:

rvm  --default use 1.9.x

или (действует только для текущей сессии)

rvm use 1.9.x

прежде чем я смог запустить сервер, я наткнулся на "ExecJS и не удалось найти среду выполнения JavaScript". Как предлагается в нескольких ответах, я решил его, добавив следующие строки в Gemfile.

gem 'execjs'

gem 'therubyracer'

и под управлением bundle install потом.


у меня была аналогичная проблема (использую 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]

вот как исправить необнаруженные рубины внутри 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)

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


чтобы уточнить, так как есть некоторая путаница: есть два способа установки RVM: установка" на пользователя "и установка" общесистемная".

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

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

чтобы использовать RVM, он должен быть инициализирован запуском сценария каждый раз при входе в систему. Чтобы сделать это легко, вы включаете файл в свой (или ~/.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 должны правильно выполнить.


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

/bin/bash --login

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

printenv

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

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

см. ответ жестяного человека, он должен получить вас, вам нужно идти.


я заметил, что 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 и прокомментированные субтитры. После этого ruby -v наконец-то ответил Мне

ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]

Я надеюсь, что это поможет. Овации.

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


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

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

rvm use --latest --default