2013-10-02 27 views
9

zainstalowałem NVM na maszynie ubuntu, ale kiedy mogę umieścić go w crontab do wykonania podczas restartu:„który NVM” znika

@reboot nvm use 0; 

to nie działa, a ja dostałem maila od demon cron, mówiąc:

/bin/sh: 1: nvm: not found 

Tak, myślałem, że to problem ścieżki, i próbował dowiedzieć się, gdzie jest zainstalowany NVM. Ku mojemu zdziwieniu, dostałem pustych wyniki:

[email protected]:~# which nvm 
[email protected]:~# 

Ale sama NVM działa, nawet po restarcie:

[email protected]:~# nvm 

Node Version Manager 
... 

To jest bardzo dziwne - jak to możliwe, że system znajdzie program NVM , kiedy "który nvm" jest pusty ?!

Co ważniejsze - co powinienem zrobić, aby program cron znalazł NVM podczas uruchamiania?

+0

Czy to odpowiada na twoje pytanie Erel? –

+0

Duplikat tych: http://stackoverflow.com/questions/20921427/nodejs-gone-after-linux-reboot http://stackoverflow.com/questions/24585261/nvm-keeps-forgetting-node-in-new- sesja terminalowa – Tyler

Odpowiedz

7

Polecenie nvm nie jest plikiem, ale raczej funkcją powłoki.

Funkcja source ~/.nvm/nvm.sh dodaje te funkcje do bieżącej powłoki. A ponieważ te polecenia nie są plikami, nie pojawiają się, gdy jesteś which nvm.

Przeglądając plik .nvm/nvm.sh, można wyświetlić funkcję nvm() {...}, która zapewnia tę funkcjonalność.

Cron najprawdopodobniej używa innego użytkownika, a ten użytkownik musi przed dodaniem dodać do kontekstu powłoki numer source ~/.nvm/nvm.sh.