2016-05-30 4 views
4

Я использую sidekiq выскочки работу, но во время работы sudo service sidekiq restart получают следующее сообщение об ошибкеБыла ошибка при попытке загрузить Gem «двор»

There was an error while trying to load the gem 'yard'. 
/home/ubuntu/.rvm/gems/[email protected]/gems/bundler-1.11.2/lib/bundler/runtime.rb:80:in `rescue in block (2 levels) in require' 
/home/ubuntu/.rvm/gems/[email protected]/gems/bundler-1.11.2/lib/bundler/runtime.rb:76:in `block (2 levels) in require' 
/home/ubuntu/.rvm/gems/[email protected]/gems/bundler-1.11.2/lib/bundler/runtime.rb:72:in `each' 
/home/ubuntu/.rvm/gems/[email protected]/gems/bundler-1.11.2/lib/bundler/runtime.rb:72:in `block in require' 
/home/ubuntu/.rvm/gems/[email protected]/gems/bundler-1.11.2/lib/bundler/runtime.rb:61:in `each' 
/home/ubuntu/.rvm/gems/[email protected]/gems/bundler-1.11.2/lib/bundler/runtime.rb:61:in `require' 
/home/ubuntu/.rvm/gems/[email protected]/gems/bundler-1.11.2/lib/bundler.rb:99:in `require' 
/home/ubuntu/myapp/config/application.rb:8:in `<top (required)>' 
/home/ubuntu/.rvm/rubies/ruby-2.2.1/lib/ruby/gems/2.2.0/gems/sidekiq-3.2.5/lib/sidekiq/cli.rb:231:in `require' 
/home/ubuntu/.rvm/rubies/ruby-2.2.1/lib/ruby/gems/2.2.0/gems/sidekiq-3.2.5/lib/sidekiq/cli.rb:231:in `boot_system' 
/home/ubuntu/.rvm/rubies/ruby-2.2.1/lib/ruby/gems/2.2.0/gems/sidekiq-3.2.5/lib/sidekiq/cli.rb:49:in `run' 
/home/ubuntu/.rvm/gems/[email protected]/gems/sidekiq-3.2.5/bin/sidekiq:8:in `<top (required)>' 
/home/ubuntu/.rvm/rubies/ruby-2.2.1/bin/sidekiq:23:in `load' 
/home/ubuntu/.rvm/rubies/ruby-2.2.1/bin/sidekiq:23:in `<main>' 

Далее следует выскочке работа

/и т.д. /init/sidekiq.conf

# /etc/init/sidekiq.conf - Sidekiq config 

# This example config should work with Ubuntu 12.04+. It 
# allows you to manage multiple Sidekiq instances with 
# Upstart, Ubuntu's native service management tool. 
# 
# See workers.conf for how to manage all Sidekiq instances at once. 
# 
# Save this config as /etc/init/sidekiq.conf then manage sidekiq with: 
# sudo start sidekiq index=0 
# sudo stop sidekiq index=0 
# sudo status sidekiq index=0 
# 
# Hack Upstart's reload command to 'quiet' Sidekiq: 
# 
# sudo reload sidekiq index=0 
# 
# or use the service command: 
# sudo service sidekiq {start,stop,restart,status} 
# 

description "Sidekiq Background Worker" 

# This script is not meant to start on bootup, workers.conf 
# will start all sidekiq instances explicitly when it starts. 
start on runlevel [2345] 
stop on runlevel [06] 

# change to match your deployment user 
setuid ubuntu 
setgid ubuntu 


#respawn 
#respawn limit 3 30 

# TERM is sent by sidekiqctl when stopping sidekiq. Without declaring these as 
# normal exit codes, it just respawns. 
normal exit 0 TERM 

# Older versions of Upstart might not support the reload command and need 
# this commented out. 
reload signal USR1 

# Upstart waits 5 seconds by default to kill the a process. Increase timeout to 
# give sidekiq process enough time to exit. 
kill timeout 15 

#instance $index 

script 
# this script runs in /bin/sh by default 
# respawn as bash so we can source in rbenv 
exec /bin/bash <<'EOT' 
    # Pick your poison :) Or none if you're using a system wide installed Ruby. 

    source /home/ubuntu/.bash_profile 
    source /home/ubuntu/.rvm/scripts/rvm 
    source /home/ubuntu/.bashrc 
    # Logs out to /var/log/upstart/sidekiq.log by default 

    cd /home/ubuntu/myapp/ 
    exec bundle exec sidekiq -C config/sidekiq.yml -e production 
EOT 
end script 

Как получить эту работу. Я также установил gem yard, но все равно получаю ту же ошибку.

ответ

3

У меня проблема, переменная $HOME не считалась определенной в задании выскочки. Знак ~ в файле yard.rb файла gem не расширялся до фактического пути. Чем я явно определяю переменную в выскочке и получаю ее работу.

0

Вы не указали yard в своем Gemfile и сделали bundle.

+0

Хотя я не указал его в Gemfile, но я установил его вручную. Более того, тот же Gemfile и конфигурация работают на другом сервере. –

+0

У меня есть драгоценный камень в Gemfile, и он установлен, но все же дает ту же ошибку –