Я использую Thin для обслуживания приложения rails, расположенного на тестовой машине. Я хотел бы иметь возможность останавливать/запускать тонкий с моей локальной машины, но следующее не работает:
ssh luc@test_machine '/home/luc/.rvm/gems/ruby-1.9.3-p125/bin/thin -v'
Я получил следующее сообщение об ошибке:
/home/luc/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find thin (>= 0) amongst [bigdecimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError)
from /home/luc/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
from /home/luc/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems.rb:1230:in `gem'
from /home/luc/.rvm/gems/ruby-1.9.3-p125/bin/thin:18:in `<main>'
Почему он перечисляет только 6 драгоценных камней, когда у меня есть баллы?
Когда я подключаюсь по ssh к тестовому серверу:
which thin
дает мне правильный путь:
/home/luc/.rvm/gems/ruby-1.9.3-p125/bin/thin (question updated with correct path)
ОБНОВЛЕНИЕ
Я создал базовый сценарий test.sh на сервере:
#!/bin/bash
# Update path with ruby / gem
export PATH=$PATH:/home/luc/.rvm/rubies/ruby-1.9.3-p125/bin:/home/luc/.rvm/gems/ruby-1.9.3-p125/bin/
thin -v
exit 0
Я вызываю его с моей локальной машины
ssh luc@test_machine '/home/luc/test.sh'
Но все та же ошибка "не удалось найти тонкий".
ОБНОВЛЕНИЕ 2
Это может быть связано с рубинами/набором драгоценных камней, которые используются, когда скрипт запускается через ssh. я добавил
rvm list
rvm gemset list
в файле test.sh, и у меня есть вывод:
rvm rubies
* ruby-1.9.3-p125 [ x86_64 ]
# => - current
# =* - current && default
# * - default
gemsets for system (found in /home/luc/.rvm/gems/system)
*
Кажется, что драгоценных камней, которые я установил, там нет ... Однако не знаю, указать версию rubies/gemset для использования через вызов ssh.
which thin
. Попробуйте изменить '/home/luc/.rvm/gems/ruby-1.9.3-p125/bin/thin -v' на '/home/gp/.rvm/gems/ruby-1.9.3-p125/bin/thin ' - person Adrian Serafin   schedule 25.04.2012