k0st1an
@k0st1an
linux | python | django | ansible

Как правильно установить init скрипт от thin?

Если использовать apt-get проблем с установкой не будет. Но я не хочу засорять систему и хочется держать все под одним пользователем. RVM установлен в /usr/local/rvm. Рядом стоит Ruby. Захожу под пользователем root и делаю так (на debian jessie):

$ rvm user gemsets
$ rvm use 2.2.2@redmine2 --create --default
$ rvm gemset list

gemsets for ruby-2.2.2 (found in /root/.rvm/gems/ruby-2.2.2)
   (default)
=> redmine2

$ gem install thin
...
$ thin -v
thin 1.6.3 codename Protein Powder
$ thin install
$ update-rc.d -f thin defaults
...
$ systemctl start thin.service 
$ systemctl status thin.service 
● thin.service - LSB: thin initscript
   Loaded: loaded (/etc/init.d/thin)
   Active: active (exited) since Wed 2015-07-08 14:51:14 MSK; 2s ago
  Process: 27552 ExecStart=/etc/init.d/thin start (code=exited, status=0/SUCCESS)

Jul 08 14:51:14 web thin[27552]: /usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/dependency.rb:315:in `to_specs': Could not find 'thin' (>= 0) among 14 total gem(s) (Gem::LoadError)
Jul 08 14:51:14 web thin[27552]: Checked in 'GEM_PATH=/.gem/ruby/2.2.0:/usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/gems/2.2.0', execute `gem env` for more information
Jul 08 14:51:14 web thin[27552]: from /usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/dependency.rb:324:in `to_spec'
Jul 08 14:51:14 web thin[27552]: from /usr/local/rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_gem.rb:64:in `gem'
Jul 08 14:51:14 web thin[27552]: from /root/.rvm/gems/ruby-2.2.2@redmine2/bin/thin:22:in `<main>'


Как правильно использовать thin из gemset? То, что до этого видел про init скрипт вообще никто не пишет.

PS
$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.4.8
  - RUBY VERSION: 2.2.2 (2015-04-13 patchlevel 95) [x86_64-linux]
  - INSTALLATION DIRECTORY: /root/.rvm/gems/ruby-2.2.2@redmine2
  - RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-2.2.2/bin/ruby
  - EXECUTABLE DIRECTORY: /root/.rvm/gems/ruby-2.2.2@redmine2/bin
  - SPEC CACHE DIRECTORY: /root/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /usr/local/rvm/rubies/ruby-2.2.2/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /root/.rvm/gems/ruby-2.2.2@redmine2
     - /root/.rvm/gems/ruby-2.2.2@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /root/.rvm/gems/ruby-2.2.2@redmine2/bin
     - /root/.rvm/gems/ruby-2.2.2@global/bin
     - /usr/local/rvm/rubies/ruby-2.2.2/bin
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/sbin
     - /usr/bin
     - /sbin
     - /bin
     - /usr/local/rvm/bin
  • Вопрос задан
  • 779 просмотров
Решения вопроса 1
viktorvsk
@viktorvsk
А что вы пробуете сделать?
Thin - это сервер-приложения на руби. Обычно, он сам запускается командойrails server или rackup, например.
Так же, его можно запустить с помощью thin start в директории, где есть файл config.ru
Про команду thin install слышу первый раз, если честно.

Видимо, вы устанавливаете редмайн. Тогда следуйте руководству по установке, в чем там проблема?

Как правильно использовать thin из gemset?

Вопрос задан некоректно. Гемсеты к гему никакого отношения не имею, это просто namespace, так сказать (отдельная дирекотрия на диске)

Но я не хочу засорять систему

Если действительно не хотите, то используйте bundle exec вместо gemsets и rbenv вместо RVM :). Особенно на сервере.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Jeiwan
@Jeiwan
Нужно использовать rvm wrapper — это скрипт, который установится глобально (в /usr/local/rvm/ в данном случае), при запуске загрузит нужный гемсет и выполнит из него указанную команду. Ну и нужно ещё будет подправить /etc/init.d/thin, чтобы в нем запускался этот wrapper. Подробности в гугле.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы