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]#
Ответы
Ответ 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
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
Ответ 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