2011-06-06 14 views
7

Moja maszyna RVM jest instalowana jako root. Kiedy próbuję uruchomić gniazdo Unicorn, drukujeInstalacja RVM i Unicorn

[email protected]:~$ /etc/init.d/unicorn start 
Starting myapp app: /usr/bin/env: ruby: No such file or directory 
unicorn. 

Ale gdybym wpisać istnieje

[email protected]:~$ ruby -v 
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux] 

/usr/local/rvm/gems/ruby-1.9.2-p180/bin/unicorn ścieżka.

Mój jednorożec config: https://gist.github.com/1010519

Odpowiedz

10

/etc/init.d/unicorn nie wie, gdzie znaleźć Ruby, ponieważ jest zarządzany przez RVM. Zwykle wykonywany jest twój plik .bashrc lub podobny i konfiguruje środowisko; nie dzieje się to w skryptach init (lub prawdopodobnie w innych obiektach wykonanych przez root).

Rozwiązaniem jest użycie owijaczy. Na przykład, aby utworzyć plik binarny o nazwie system_ruby który ładuje się RVM za 1.9.2p180 środowiska i następnie wykonuje ruby, należy wykonać następujące czynności:

rvm wrapper ruby-1.9.2-p180 system ruby 

Aby uzyskać więcej informacji i więcej informacji, sprawdź this answer of mine, który rozwiązuje podobny problem.

+0

wykonałem ten COMAND i nic się nie zmieniło. '/etc/init.d/unicorn start Uruchamianie aplikacji DPP.cz.cc:/usr/bin/env: ruby: Brak takiego pliku lub katalogu jednorożca. – Kir

+0

Jeśli tworzysz plik wykonywalny o nazwie' system_ruby', będziesz potrzebować zaktualizować skrypt '/ etc/init.d/unicorn', aby użyć go zamiast' ruby'. –

+0

Istnieją tylko ścieżki do unicorn.rb i do binarnego jednorożca. Jak zmienić moje '/ etc/init.d/unicorn'? To tutaj https://gist.github.com/1010519 – Kir

0

Typ: which ruby (pokazać ścieżkę bin rubinowy), a następnie wpisz: ln -s (change_to_ruby_path) /usr/bin/env/ruby (skonstruować poprawny dostęp do systemu)

1

Symlink działa również,

which ruby<your version> 
ln-s /ruby/path/ruby<your version> /ruby/path/ruby 
0

miałem ten sam problem i to dla mnie

rvm --default use <version>