Подтвердить что ты не робот

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

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

Затем я установил Ruby версии 1.9.2 и 1.8.7, используя:

rvm install 1.9.2
rvm install 1.8.7

Однако я не могу найти двоичный файл Ruby. Когда я пытаюсь выполнить команду, я получаю следующую ошибку:

[[email protected] support]# rvm use 1.9.2
Using /usr/local/rvm/gems/ruby-1.9.2-p136

[[email protected] support]# ruby
-bash: ruby: command not found

Вот результат rvm info:

[[email protected] 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 ([email protected]) [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:       ""


[[email protected] support]#
4b9b3361

Ответ 1

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 в прошлом году они сказали мне, что они не рекомендуют общесистемную установку, и вместо этого рекомендуют локальную "однопользовательскую" установку даже для серверов.

Ответ 2

Я установил Ruby on Rails на Ubuntu 11.10 VM, используя " КАК УСТАНОВИТЬ РУБИ НА ЖЕЛЕЗЫ В 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.

Ответ 3

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

Ответ 4

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

/bin/bash --login

Ответ 5

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


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

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

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

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

Ответ 6

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

Ответ 7

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

printenv

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

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

См. ответ "Оловянный человек", он должен понять, что вам нужно идти.

Ответ 8

rvm use 2.6.3 --default может это исправить, но когда я закрыл свой Ubuntu, проблема снова возникла !! эта ссылка помогла мне.https://github.com/rvm/rvm/issues/3682

  1. sudo vim .bash_profile
  2. добавьте следующие две строки:
[[ -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    

Ответ 9

Я заметил, что строка 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, чтобы установить его как рубиновую версию по умолчанию

Ответ 10

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

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

rvm use --latest --default