我使用 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 运行时使用的 rubies / gemset 相关联。我已经添加了
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)
*
似乎我安装的 gem 不存在......虽然不知道指定 rubies/gemset 版本以通过 ssh 调用使用。