моя рубиновая прога:

#echoHW.rb
while 1 < 2
  sleep(10)
  puts "hey!"
end

Баш (?) скрипт, который вызывает это:

#echoHW.sh
ruby -v
ruby echoHW.rb "$@" & 

Я установил rvm, пробуя как однопользовательский, так и многопользовательский режимы; У меня по умолчанию установлено значение 1.9.3p125, но независимо от того, что я делаю, когда я запускаю его, он запускает 1.8.7, что, очевидно, является "системной" версией ruby.

Я предполагаю, что это легко исправить - я хочу, чтобы скрипт вызывал ruby, который я установил по умолчанию для RVM - но я в тупике.

ТИА

РЕДАКТИРОВАТЬ: вывод информации rvm:

qe2user @ qe2server:~/Ruby/query_engine $ rvm info

рубин-1.9.3-P125:

system: uname: "Linux qe2server 2.6.32-33-server # 70-Ubuntu SMP Thu Jul 7 22:28:30 UTC 2011 x86_64 GNU/Linux" bash: "/bin/bash => GNU bash, версия 4.1.5(1)-релиз (x86_64-pc-linux-gnu)"zsh:" => не установлен "

rvm: версия: "rvm 1.12.3 (стабильный) Уэйна Э. Сегина, Михала Паписа [htps://rvm.io/]" обновлено: "13 часов 39 минут 42 секунды назад"

ruby: интерпретатор: "ruby" версия: «1.9.3p125» дата: «2012-02-16» платформа: «x86_64-linux» уровень исправления: «2012-02-16 ревизия 34643» full_version: «ruby 1.9.3p125 (2012 -02-16, редакция 34643) [x86_64-linux] "

homes: gem: "/usr/local/rvm/gems/ruby-1.9.3-p125" ruby: "/usr/local/rvm/rubies/ruby-1.9.3-p125"

двоичные файлы: ruby: "/usr/local/rvm/rubies/ruby-1.9.3-p125/bin/ruby" irb: "/usr/local/rvm/rubies/ruby-1.9.3-p125/bin/irb" gem: "/usr/local/rvm/rubies/ruby-1.9.3-p125/bin/gem" rake: "/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin/rake"

среда: PATH: "/usr/local/rvm/gems/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/ruby-1.9.3-p125@global/bin:/usr/local/rv /rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin: /bin: /usr /games "GEM_HOME:" /usr/local/rvm/gems/ruby-1.9.3-p125 "GEM_PATH:" /usr/local/rvm/gems/ruby-1.9.3-p125:/usr /local/rvm/gems/ruby-1.9.3-p125@global "MY_RUBY_HOME:" /usr/local/rvm/rubies/ruby-1.9.3-p125 "IRBRC:" /usr /local /rvm /rubies /ruby -1.9.3-p125 /.irbrc "RUBYOPT:" "gemset:" "

1 ответ1

1

Не похоже, что вы правильно установили интерпретатор Ruby по умолчанию в RVM. Например, с правильно установленным RVM:

# Assumes that 1.9.3-p125 is already fully-installed under RVM.
rvm --default use ruby-1.9.3-p125

Это обеспечит использование указанного Ruby, а не системного значения по умолчанию. Вы можете изменить текущий Ruby в любое время, rvm use в командной строке.

Если вы хотите использовать в скрипте что-то отличное от значения по умолчанию, вы можете обернуть ваш скрипт другим сценарием оболочки, который устанавливает текущий Ruby с использованием RVM. Если это не вариант, вы также можете позвонить конкретному переводчику непосредственно в строке shebang:

#!/home/user/.rvm/rubies/ruby-1.9.3-p125/bin/ruby

но для этого также может потребоваться изменить некоторые переменные среды, такие как MY_RUBY_HOME и RUBY_VERSION (полный список см. в rvm info ), чтобы заставить работать различные библиотеки и гемы.

Изменение среды может или не может быть необходимо для Вас - многое зависит от того, что делает ваш скрипт рубин - но если это необходимо, вы можете играть с различными опциями в командной строке , пока вы не получите все работает вместе. Например:

$ MY_RUBY_HOME=~/.rvm/rubies/ruby-1.9.3-p125 \
    ~/.rvm/rubies/ruby-1.9.3-p125/bin/ruby -e 'puts("hello")'
hello

Также ознакомьтесь с файлами проекта .rvmrc . Это еще один способ убедиться, что ваша рабочая среда использует Ruby и гемсет, необходимые для вашего конкретного приложения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .