2013-02-20 11 views
5

Mam NFS zamontowany katalog domowy i próbuję skonfigurować globalne pakiety poprzez npm, na przykład:inną lokalizację dla folderu .npm (aby uniknąć NFS zamontowany domu)

sudo npm install -g jshint 

To daje mi błąd ponieważ pod sudo nie mogę stworzyć coś na zdalnym serwerze (próbuje to poza KMP)

npm ERR! Error: EACCES, open '/home/explunit/.npm/a02a2468-jshint.lock' 
npm ERR! { [Error: EACCES, open '/home/explunit/.npm/a02a2468-jshint.lock'] 
npm ERR! errno: 3, 
npm ERR! code: 'EACCES', 
npm ERR! path: '/home/explunit/.npm/a02a2468-jshint.lock' } 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 

Jestem pewien, że ktoś przyjdzie w 2 minuty i powiedzieć „nie używać sudo - prawdziwy programista zrozumie, jak skonfigurować węzeł/npm bez niego! ", ale a) nigdy nie było dla mnie jasne, w jaki sposób ma działać, zważywszy, że npm readme sugeruje sudo, i b) w tym przypadku naprawdę nie chcę niczego związanego z moim konkretnym użytkownikiem (jest to serwer budujący)

Domyślam się, że prawdziwe pytanie brzmi: jak zrobić npm zignorować mój katalog domowy i użyć innej lokalizacji dla .npm?

+0

Możesz zamienić '.npm' w swoim katalogu domowym na dowiązanie symboliczne do lokalizacji innej niż nfs, która może być zapisywalna. –

Odpowiedz

7

Spróbuj zmienić lokalizację pamięci podręcznej.

/SOMEWHERE/ELSE powinno znajdować się w miejscu, w którym użytkownik uruchamiający polecenie może pisać.

+0

dziękuję, ale wygląda na to, że to nadal nie rozwiązuje go w scenariuszu "sudo npm install -g some_package", ponieważ sudo nie będzie patrzył na lokalny konfigurator npm użytkownika – explunit

+0

'sudo npm -g config get cache' nadal daje mi '~/.npm'. pamięć podręczna jest dostępna tylko po to, aby zminimalizować to, co trzeba ponownie pobrać. Spróbowałeś i to nie pomogło? –

+0

Tak, wypróbowałem twoją komendę, a następnie tę z pierwotnego pytania powyżej i otrzymałem ten sam błąd. JEDNAK, wygląda na to, że istnieje opcja -global, która może być umieszczona na końcu polecenia, co spowoduje, że będzie ona obowiązywać nawet w ustawieniach środowiska sudo. Podobna komenda jest również potrzebna do ustawienia tmp gdzie indziej – explunit

Powiązane problemy