无法启动瘦服务器的服务,RubyGems的:找不到薄(Can't start thin se

2019-07-29 05:10发布

我用下面的说明来安装和配置瘦服务器使用Rails 3.2.3在Ubuntu 10.04.4服务:

http://articles.slicehost.com/2008/5/6/ubuntu-hardy-thin-web-server-for-ruby

瘦服务器工作正常,从应用程序根目录运行它,用“薄启动”

然而,当我尝试使用这些命令来运行服务:

service thin start
sudo service thin start
/etc/init.d/thin start
sudo /etc/init.d/thin start

我得到以下错误:

/home/myuser/.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/myuser/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
    from /home/myuser/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems.rb:1210:in `gem'
    from /home/myuser/.rvm/gems/ruby-1.9.3-p125/bin/thin:18:in `<main>'

这似乎并不符合PATH“这薄”正确地返回的问题:

home/myuser/.rvm/gems/ruby-1.9.3-p125/bin/thin

无论它的引用我也验证了** /斌/薄的存在

我曾尝试重新安装使用“宝石卸载薄”,“宝石安装薄”没有成功的创业板

有谁之前经历过这个吗? 我才发现这个问题的一个另一个实例: 无法重新启动通过远程机器薄

这个问题似乎一直只是通过ssh,而我甚至不能薄服务本地启动

谢谢

Answer 1:

似乎每次启动作业加载自己的壳。 因此,尝试加载rvm尝试启动瘦前:

#! /bin/sh
# Load RVM into a shell session *as a function*
if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then

  # First try to load from a user install
  source "$HOME/.rvm/scripts/rvm"

elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then

  # Then try to load from a root install
  source "/usr/local/rvm/scripts/rvm"

else

  printf "ERROR: An RVM installation was not found.\n"

fi

rvm use 1.9.3
cd /path/to/your/application/code
bundle exec thin -d

把这个在/etc/init.d/thin_service及运行

$ sudo update-rc.d  thin_service defaults

最后,您可以通过简单的打字测试由sudo start thin_servicesudo stop start_thin ,而不是重新启动。 如果这仍然不起作用,尝试railsgems打捆和RVM包装。 此外,不要读RVM的部署最佳实践



Answer 2:

自从从您的堆栈跟踪,似乎你正在使用RVM,并且使用的是薄装的宝石,你需要使用RVM包装的服务工作。 首先拆下服务端重新安装rvmsudo thin install ,而不是sudo thin install 。 您还应该使用rvmsudo thin config在创建配置文件也是如此。

要createa包装,

rvm wrapper <your_rvm_ruby_version>@<your_rvm_gemset_in_use> bootup thin

你可以找到使用的名字rvm listrvm gemset分别列表。 该包装将有名称bootup_thin ,你可以确认它正在使用正确的RVM由bootup_thin 。 你可以给它任何你想要的名称而创建。 然后,你需要通过编辑脚本薄

sudo nano /etc/init.d/thin

改变原有的守护进程

DAEMON=location_of_bootup_thin 

这应该是结果which bootup_thin 。 然后你就可以启动该服务。

sudo service thin start

我希望这有帮助



文章来源: Can't start thin server as service, RubyGems: Could not find thin