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