Próbuję zaktualizować do najnowszej wersji węzła. Postępuję zgodnie z instrukcjami na stronie http://davidwalsh.name/upgrade-nodejs
Ale kiedy robię:
sudo npm install -g n
Dostaję błąd:
sudo: npm: command not found
npm działa bez sudo. Kiedy robię:
whereis node
Widzę:
node: /usr/bin/node /usr/lib/node /usr/bin/X11/node /usr/local/node
Bieganie:
which npm
Przedstawia:
/usr/local/node/bin/npm
Wypróbowałem rozwiązanie na https://stackoverflow.com/a/5062718/1246159
Ale wciąż pojawia się ten sam błąd. Zajrzałem również do pliku / etc / sudoers i odpowiedni wiersz to:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Dla mnie to wygląda dobrze. Jak mogę uzyskać NPM do pracy z poleceniem sudo?
sudo /usr/bin/npm install -g n
/usr/local/node/bin
do swojego$PATH
, alenpm
powinieneś go zainstalować/usr/local/bin
. Nie ma pierwszego katalogu, wsecure_path
którym wyjaśniono, dlaczegosudo
nie można go znaleźć.nvm
tutaj Ubuntu - z komentarzem @robertklep próbowałemsudo /home/${user}/.nvm/version/node/${version}/bin/npm install
i zadziałało.Odpowiedzi:
Plik npm powinien być w
/usr/local/bin/npm
. Jeśli go nie ma, zainstaluj ponownie plik node.js z pakietem na swojej stronie internetowej . To zadziałało w moim przypadku.źródło
musiałem zrobić
to działało dla mnie.
źródło
npm
jest już zainstalowany, ale nieosiągalny po wywołaniu przez sudo. Dzięki temu rozwiązaniu ponownie instalujesz npm, który już istnieje. To raczej walka z objawami niż znalezienie przyczyny. Rozumiem, że może to naprawić zepsute rzeczy dla niektórych ludzi, ale jest to mylące, tak stać.sudo apt-get install npm
pracował dla mnie.W przypadku użytkowników MAC następujące kroki zadziałały dla mnie.
źródło
brew uninstall node
Nie dla mnie, ale prowadzona zbrew install node
abrew postinstall
i problem został rozwiązany. Dziękibrew postinstall
dokładnie robi?brew postinstall
jest zbędnyMiałem ten sam problem; oto polecenia, aby to naprawić:
sudo ln -s /usr/local/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/node /usr/lib/node
sudo ln -s /usr/local/bin/npm /usr/bin/npm
sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf
źródło
%HOME%/.nvm/versions/node/v7.4.0/bin/npm
). Niestety, będę musiał odwoływać się do tej odpowiedzi przy każdej aktualizacji za pomocą NVM ze względu na zmianę wersji na ścieżcesudo ln -s $(whereis node) /usr/bin/node
I tak dalej. w swoim profilu bash.OSTRZEŻENIE (edycja)
Wykonanie a
chmod 777
jest dość radykalnym rozwiązaniem. Wypróbuj je najpierw, jeden po drugim, i przestań, gdy zadziała:$ sudo chmod -R 777 /usr/local/lib/node_modules/npm
$ sudo chmod -R 777 /usr/local/lib/node_modules
$ sudo chmod g+w /usr/local/lib
$ sudo chmod g+rwx /usr/local/lib
$ brew postinstall node
jest jedyną częścią instalacji, w której mógłbym dostać problemWięc ja
i viola, npm jest teraz połączone
Dodatkowy
Jeśli używałeś
-R 777
na lib, moim zaleceniem byłoby ustawienie domyślnie plików zagnieżdżonych i katalogów:find /usr/local/lib -type f -print -exec chmod 644 {} \;
find /usr/local/lib -type d -print -exec chmod 755 {} \;
chmod /usr/local/lib 755
źródło
chmod
powinien być ten katalog?drwxr-xr-x
są wartościami domyślnymi dla lib. To powiedziawszy, NIE używaj funkcji rekurencyjnej-R
podczas przywracania folderu.Musiałem wykonać następujące czynności:
brew update
brew uninstall node
źródło
Dla użytkowników CentOS działa to dla mnie:
źródło
yum install epel-release; yum install npm
Aby globalnie zainstalować pakiety npm z uprawnieniami sudo,
/usr/bin/npm
powinny być dostępne. Jeślinpm
istnieje w innym katalogu, utwórz miękkie łącze, takie jak:Działa na Fedorze 25, węźle 8.0.0 i npm5.0.0
źródło
W systemie macOS zadziałało to dla mnie:
źródło
unix
, ale może być nadal pomocne, ponieważ jest to najlepszy wynik wyszukiwania Google dla „nie znaleziono polecenia npm macos npm”W przypadku debiana po zainstalowaniu węzła wprowadź
źródło
Jeśli zainstalowałeś węzeł / npm za pomocą nvm, plik konfiguracyjny środowiska nvm musi zostać uruchomiony, zanim będziesz mógł użyć dowolnego z pakietów.
Zazwyczaj można to znaleźć w ~ / .nvm / nvm.sh.
Aby uruchomić to automatycznie, dołącz:
w pliku .bash_profile dla użytkownika
Jeśli następnie chcesz używać sudo z tym użytkownikiem, upewnij się, że dołączasz parametr -i, aby sudo ustawiało środowisko użytkownika. na przykład
źródło
po prostu zainstaluj ponownie.
Na RHEL, CentOS i Fedorze
następnie
easy! .. zarówno węzeł, jak i npm działają teraz jak urok!
źródło
Rozwiązałem ten problem przez
źródło
Miałem ten sam problem, ponieważ menedżer pakietów npm nie został zainstalowany podczas instalowania węzła. Przyczyną tego był następujący błąd: W procesie instalacji jest krok o nazwie „Instalacja niestandardowa”, tutaj możesz wybrać jedną z następujących opcji: 1) Środowisko uruchomieniowe Node.js (ta opcja jest domyślnie zaznaczona). 2) Menedżer pakietów npm 3) Skróty dokumentacji online. 4) Dodaj do ścieżki. Jeśli przejdziesz dalej, to np. Menedżer pakietów npm nie zostanie zainstalowany, a więc pojawi się błąd.
Rozwiązanie: Wybierz menedżera pakietów npm, gdy pojawi się te opcje. To zadziałało dla mnie.
źródło
Jeśli pobrałeś pakiet węzła i rozpakowałeś go gdzieś tak
/opt
, możesz po prostu utworzyć łącze symboliczne/usr/local/bin
.źródło
Też miałem ten sam problem w Homestead i próbowałem na wiele sposobów. Próbowałem z
sudo apt-get install nodejs
Otrzymuję następujący błąd:
W końcu spróbowałem
sudo apt-get dist-upgrade
Działa dobrze.
źródło
Moje rozwiązanie to:
Działa dobrze dla mnie.
Znaleziono tutaj: https://stackoverflow.com/a/29400598/861615
Dzieje się tak, ponieważ zmieniłeś domyślny katalog pakietów globalnych
źródło
Dołączona ścieżka binarna npm do ścieżki sudo przy użyciu visudo i edycji „secure_path”
Teraz działa „sudo npm”
źródło
Usuń całkowicie węzeł:
Zainstaluj ponownie:
źródło
W przypadku, gdy może być przydatne dla każdego, kto korzysta z
rh-*
pakietów, działało to dla mnie:źródło
Ponieważ zainstalowałem node.js przy użyciu pliku .tar dostępnego na node.js, musiałem umieścić lokalizację katalogu node:
root, zmieniając z normalnego użytkownika na root za pomocą polecenia:
następnie musiałem dodać ścieżkę do węzła, w którym wyodrębniłem ją do pliku .bashrc, jak poniżej:
następnie odświeżono plik .bashrc za pomocą
odtąd
odszedł
źródło
Pracuj dla mnie Rozwiązywanie błędów uprawnień EACCES podczas globalnej instalacji pakietów
Aby zminimalizować ryzyko błędów uprawnień, możesz skonfigurować npm do korzystania z innego katalogu. W tym przykładzie utworzysz i użyjesz ukrytego katalogu w swoim katalogu domowym.
Zrób kopię zapasową komputera. W wierszu komend w katalogu domowym utwórz katalog dla instalacji globalnych:
Skonfiguruj npm, aby używał nowej ścieżki do katalogu:
W preferowanym edytorze tekstu otwórz lub utwórz plik ~ / .profile i dodaj ten wiersz:
W wierszu polecenia zaktualizuj zmienne systemowe:
Aby przetestować nową konfigurację, zainstaluj pakiet globalnie bez użycia sudo:
źródło
Dla mnie żadna z wyżej wymienionych metod przy użyciu Homebrew nie działała na macOS. Tak więc odinstalowałem węzeł za pomocą Homebrew i pobrałem pakiet węzła z https://nodejs.org/en/download/ i zainstalowałem go. Działa jak urok.
źródło
Zainstaluj plik node.js i po prostu uruchom
z twojego projektu reż
źródło