Moja wersja węzła jest zawsze w wersji v0.6.1-pre nawet po zainstalowaniu węzła brew i NVM w wersji v0.6.19.
Moja wersja węzła to:
node -v
v0.6.1-pre
NVM tak mówi (po pierwszej instalacji wersji węzła w jednym terminalu bash):
nvm ls
v0.6.19
current: v0.6.19
Ale kiedy ponownie uruchamiam bash, widzę to:
nvm ls
v0.6.19
current: v0.6.1-pre
default -> 0.6.19 (-> v0.6.19)
Gdzie jest więc ten fantomowy węzeł w wersji 0.6.1 w wersji wstępnej i jak się go pozbyć? Próbuję zainstalować biblioteki za pomocą NPM, aby móc pracować nad projektem.
Próbowałem użyć BREW do aktualizacji przed NVM, używając brew update
i brew install node
. Próbowałem usunąć katalog „node” w moim /usr/local/include
oraz „node” i „node_modules” w moim /usr/local/lib
. Próbowałem odinstalować npm i ponownie zainstalować go zgodnie z tymi instrukcjami.
Wszystko to, ponieważ próbowałem zaktualizować starszą wersję węzła, aby zainstalować bibliotekę „zipstream”. Teraz w moim katalogu użytkowników są foldery, a wersja węzła STILL nie jest aktualna, mimo że NVM twierdzi, że używa wersji 0.6.19.
Idealnie chciałbym odinstalować nodejs, npm i nvm, i po prostu ponownie zainstalować wszystko od zera w moim systemie.
źródło
Odpowiedzi:
Widocznie nie było
/Users/myusername/local
folder zawierałinclude
znode
ilib
znode
anode_modules
. Jak i dlaczego został utworzony zamiast w moim/usr/local
folderze, nie wiem.Usunięcie tych lokalnych odniesień naprawiło fantom v0.6.1-pre. Jeśli ktoś ma wyjaśnienie, wybiorę to jako poprawną odpowiedź.
EDYTOWAĆ:
Może być konieczne wykonanie dodatkowych instrukcji:
co jest równoważne (tak jak powyżej) ...
lub (tak jak powyżej) w podziale ...
Aby całkowicie odinstalować węzeł + npm, wykonaj następujące czynności:
Może być również konieczne wykonanie:
Dodatkowo NVM modyfikuje zmienną PATH
$HOME/.bashrc
, którą należy ręcznie przywrócić .Następnie pobierz nvm i postępuj zgodnie z instrukcjami, aby zainstalować węzeł. Wydaje mi się, że najnowsze wersje węzła są wyposażone w npm , ale można to również zainstalować ponownie.
źródło
rm -rf /Users/[homedir]/.npm
./Users/[homedir]/.nvm
brew doctor
a potembrew prune
posprzątałem kilka zepsutych dowiązań symbolicznych dla NPM.sudo rm -rf ~/.node-gyp
. Dodałem go do MacPorts, zanim przestawiłem się na parzenie.Dla użytkowników brew OSX :
Usuwać:
Żeby zainstalować:
Możesz uruchomić,
brew info node
aby uzyskać więcej informacji na temat instalacji twojego węzła.rozważ użycie NVM zamiast naparu
NVM (menedżer wersji węzła) to przenośne rozwiązanie do zarządzania wieloma wersjami węzła
https://github.com/nvm-sh/nvm
możesz użyć tego z AVN do automatycznego przełączania wersji podczas przeskakiwania między różnymi projektami z różnymi zależnościami węzłów.
źródło
--force
flagą, aby upewnić się, że wszystkie wersje węzła zostały usunięte:$ brew uninstall --force node
-bash: /usr/local/bin/npm: No such file or directory
co mogę teraz zrobić?Wiem, że ten post jest trochę przestarzały, ale po prostu chciałem udostępnić polecenia, które działały dla mnie w Terminalu podczas usuwania Node.js.
AKTUALIZACJA:
23 SEP 2016
Jeśli boisz się uruchamiać te polecenia ...
Dzięki
jguix
zathis quick tutorial
.Najpierw utwórz plik pośredni:
Ręcznie przejrzyj plik (znajdujący się w
Home
folderze)Następnie usuń pliki:
Dla wersji 10.10.5 i nowszych
Dzięki
Lenar Hoyt
Źródło komentarza Gist:
gistcomment-1572198
Oryginalna treść:
TonyMtz/d75101d9bdf764c890ef
źródło
org.nodejs.node.pkg.bom
zamiastorg.nodejs.pkg.bom
.udo..
a następnie dodawałas
przed uruchomieniem./usr/local/./node/yada
. Aby usunąć./
prefiks, użyłem filtru cięcia:lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | cut -c 3- | while read f; do sudo rm /usr/local/${f}; done
Na Mavericks instaluję go z węzła pkg (ze strony nodejs) i odinstalowuję, aby móc ponownie zainstalować przy użyciu brew. W terminalu uruchamiam tylko 4 polecenia:
sudo rm -rf /usr/local/lib/node_modules/npm/
brew uninstall node
brew doctor
brew cleanup --prune-prefix
Jeśli nadal istnieje instalacja węzła, powtórz krok 2. Po wszystkim, wszystko jest w porządku, instaluję za pomocą
brew install node
źródło
brew link
Krok nie został ukończony pomyślnie->brew prune Error: Calling 'brew prune' is disabled! Use 'brew cleanup --prune-prefix' instead.
Pierwszy:
Podsumowując, najlepszym sposobem (znalazłem), aby całkowicie odinstalować węzeł + npm, jest wykonanie następujących czynności:
przejdź do
/usr/local/lib
i usuń dowolny węzeł i moduły_węzłaprzejdź do
/usr/local/include
i usuń dowolny katalog node i node_modulesjeśli zainstalowałeś
brew install node
, uruchombrew uninstall node
w swoim terminalusprawdź, czy w katalogu domowym nie ma folderów „lokalnych”, „lib” lub „włącz”, i usuń stamtąd wszystkie „node” lub „node_modules”
przejdź do / usr / local / bin i usuń dowolny plik wykonywalny węzła
Może być konieczne wykonanie dodatkowych instrukcji:
Źródło: tonyMtz
źródło
node*
nie jest szczególnie bezpiecznym sposobem postępowania. Mogą istnieć inne pliki binarne z tym prefiksem.can't open /var/db/receipts/org.nodejs.pkg.bom: No such file or directory **** Can't open /var/db/receipts/org.nodejs.pkg.bom.
obniżyć węzeł do wersji 0.10.36
zaktualizuj węzeł do stabilnego v
źródło
Nie jestem pewien, czy to dlatego, że miałem starą wersję (4.4.5), czy też dlatego, że korzystałem z oficjalnego instalatora, ale większość plików wymienionych w innych odpowiedziach nie istnieje w moim systemie. Musiałem tylko usunąć następujące elementy:
Zdecydowałem się zachować,
~/.npm
ponieważ planowałem ponowną instalację Node z Homebrew.źródło
Podsumowałem istniejące odpowiedzi i upewniłem się, że Node js jest CAŁKOWICIE USUNIĘTY wraz z NPM.
brew uninstall node
which node
sudo rm -rf /usr/local/bin/node
sudo rm -rf /usr/local/lib/node_modules/npm/
brew doctor
brew cleanup --prune-prefix
Linie do skopiowania do terminala:
źródło
.node-gyp/
,.npm/
,.npm-global/
, i.nvm/
. Czy mogę je usunąć, czy powinienem je zachować, jeśli planuję ponowną instalację węzła?Usuń node i / lub node_modules z / usr / local / lib
Usuń node i / lub node_modules z / usr / local / include
źródło
node@6
z/usr/local/opt/
Pracował dla mnie.
źródło
nvm
zainstalowany.Po
Musiałem wiedzieć, który węzeł
następnie usuń to
źródło
Jeśli już zainstalowałeś nvm, wykonaj następujące polecenia
nvm deactivate
- Spowoduje to usunięcie /.nvm/*/bin z $ PATHnvm list
- Aby wyświetlić listę wszystkich wersji węzła zainstalowanych w systemienvm uninstall <version>
możesz określić wszystkie wersje, które chcesz odinstalować.Zawsze dobrze jest zainstalować węzeł za pomocą
nvm
i odinstalować za pomocąnvm
zamiastbrew
.To rozwiązanie działało dla mnie.
Dodatkowe polecenia
which node
poznać ścieżkę węzła zainstalowanego w systemie. Możesz uruchomić ten katalog, aby ręcznie odinstalować węzeł. Następnie może być konieczne odpowiednie dostosowanie pliku PATH.źródło
Rozwijając niesamowitą odpowiedź Dominica Tancrediego, umieściłem ją w pakiecie bash i samodzielnym skrypcie. Jeśli już używasz „Menedżera pakietów tylnych ” o nazwie bpkg , możesz zainstalować skrypt, uruchamiając:
Lub możesz rzucić okiem na skrypt na Github w brock / node-ponowna instalacja . Skrypt umożliwia ponowną instalację węzła za pomocą nvm lub nave oraz określenie wersji węzła jako domyślnej.
źródło
node-reinstall
skrypt zawiera następujący wiersz:sudo rm -rf $HOME/{local,lib,include,node*,npm,.npm*}
Jeśli więc zdarzy się, że niezależnie będziesz mieć katalog o tej nazwie w twoim$HOME
(tak jak ja), zostanie zablokowany!Oprócz głównej odpowiedzi potrzebowałem usunąć wszystkie wystąpienia npm znalezione w:
źródło
Wystąpił problem podczas odinstalowywania Node.js na moim komputerze Mac. Miałem jakieś dziwne zachowanie, takie jak
npm
jest nadal, nawet po usunięciu go z tym wszystkim.To dlatego, że miałem starą instalację wykonaną za pomocą Macport. Musisz także odinstalować go za pomocą portu:
Być może zainstalował wiele różnych wersji Node.js, więc odinstaluj je wszystkie (jedna po drugiej).
źródło
może musisz zrobić
pomaga przy problemie z dowiązaniem symbolicznym
źródło
Możesz sklonować https://github.com/brock/node-reinstall i uruchomić proste polecenie podane w repozytorium. Następnie uruchom ponownie system.
To najprostsza metoda, która również działała dla mnie.
źródło
Najlepszym sposobem jest pobranie pakietu instalatora: .pkg na komputer Mac. Preferuj najnowszą stabilną wersję.
Oto link: Node.js
Ten pakiet ostatecznie zastąpi poprzednią wersję i odpowiednio ustawi zmienne środowiskowe. Wystarczy uruchomić instalator i zrobić to w ciągu kilku kliknięć.
źródło
Zainstalowałem Node.js ze źródła pobranego z repozytorium git. Zainstalowałem z:
Ponieważ plik make obsługuje go, mogę:
źródło
Jako uzupełnienie odpowiedzi wyjaśniających czyszczenie i instalację za pomocą homebrew, odkryłem, że sam homebrew dostarczył wyraźnych wskazówek na temat konfliktów dowiązań symbolicznych.
Niestety zapewnia je jeden po drugim, gdy je napotyka, więc jest trochę pracochłonne, ale wydaje się, że odnajduje wszystkie starcia i był to jedyny sposób, aby uzyskać czystą instalację z Homebrew.
Zasadniczo proces jest następujący:
:
Oto zrzut ekranu z ostatnich kroków mojej instalacji - możesz zobaczyć, że powoduje czystą instalację (ostatecznie ...):
źródło
Przede wszystkim należy dezaktywować węzeł: (mac) po zainstalowaniu nowej wersji węzła.
Jest to usuwane /Users/user_name/.nvm/*/bin z $ PATH
A po tym węźle został zaktualizowany
źródło
To naprawiło to dla mnie Naprawianie npm na Mac OS X dla użytkowników Homebrew . I nie wymaga zbyt wielu kroków.
Przejdź do części poświęconej rozwiązaniu, jeśli nie obchodzi Cię dlaczego.
Oto odpowiednia część dla wygody:
Rozwiązanie
To rozwiązanie naprawia błąd spowodowany próbą uruchomienia
npm update npm -g
. Gdy skończysz, nie będziesz musiał używaćsudo
do globalnej instalacji modułów npm.Zanim zaczniesz, zanotuj wszystkie globalnie zainstalowane pakiety npm. W tych instrukcjach usuniesz wszystkie te pakiety. Po zakończeniu musisz je ponownie zainstalować.
Uruchom następujące polecenia, aby usunąć wszystkie istniejące globalne moduły npm, odinstaluj węzeł i npm, zainstaluj ponownie węzeł z poprawnymi ustawieniami domyślnymi, skonfiguruj lokalizację globalnych modułów npm do zainstalowania, a następnie zainstaluj npm jako własny pakiet.
Węzeł i npm powinny być poprawnie zainstalowane w tym miejscu. Ostatnim krokiem jest dodanie
~/.npm-packages/bin
do twojego,PATH
więc npm i globalne pakiety npm są użyteczne. Aby to zrobić, dodaj następujący wiersz do~/.bash_profile
:Teraz możesz bez problemu ponownie zainstalować wszystkie globalne pakiety NPM, których potrzebujesz.
źródło
W moim przypadku żadna z pozostałych odpowiedzi nie zadziałała, ponieważ wcześniej obniżyłem wersję do node8. Zamiast robić powyższe, działało dla mnie:
który wrócił
/usr/local/bin/node@8
zamiast/usr/local/bin/node
więc wykonałem to polecenie:
który działał, a następnie pobrał najnowszy pkg z oficjalnej strony i zainstalował. Następnie musiałem zamknąć terminal i zacząć od nowa, aby uzyskać dostęp do nowej wersji
źródło
Jeśli jesteś w stanie zlokalizować węzeł wystarczy uruchomić
whereis node
iwhereis npm
iwhereis nvm
i można usunąć wymienione katalogi, ile potrzeba.Musisz także całkowicie zamknąć terminal i otworzyć go ponownie, aby zmiany odniosły skutek.
źródło
@ lfender6445 odpowiedź działała dobrze dla mnie do odinstalowania
Teraz do ponownej instalacji miałem problemy z instalacją ostatniej wersji zamiast najbardziej stabilnej, więc aby zainstalować konkretną wersję węzła, powinieneś:
źródło
Docker - podejście alternatywne
Docker to rodzaj superszybkiej maszyny wirtualnej, za pomocą której można uruchamiać narzędzia takie jak node (zamiast tego instalować je bezpośrednio na Mac-OS). Korzyści z tego związane są następujące
wszystkie rzeczy (pliki węzłów „miliony”) są instalowane wewnątrz obrazu / kontenera dokera (są zamknięte w kilku plikach wewnętrznej dokowania)
możesz zmapować swój katalog mac z projektem do kontenera dokera i mieć dostęp do węzła - ale poza dokerem system mac-os nawet nie wie, że węzeł jest zainstalowany. Otrzymujesz więc „wirtualną” konsolę z dostępnymi poleceniami węzłów, które mogą działać na prawdziwych plikach
możesz łatwo zabić węzeł, znajdując go
docker ps
i zabijającdocker rm -f name_or_num
możesz łatwo odinstalować obraz dokera / kontenery za pomocą jednego polecenia
docker rmi ...
i uzyskać wolne miejsce - i zainstalować go ponownie, uruchamiając skrypt (poniżej)twój węzeł jest zamknięty w oknie dokowanym i nie ma dostępu do całego systemu - tylko do folderów do niego mapowanych
możesz uruchamiać usługi węzłów i łatwo zamapować je na port mac i mieć do nich dostęp z przeglądarki internetowej
możesz uruchomić wiele wersji węzłów jednocześnie
w podobny sposób możesz zainstalować inne narzędzia, takie jak (w wielu wersjach jednocześnie): php, bazy danych, redis itp. - wewnątrz dokera bez interakcji z systemem Mac-os (które w ogóle nie zauważają takiego oprogramowania). Np. Możesz uruchomić jednocześnie 3 mysql db z różnymi wersjami i 3 aplikacje php z inną wersją php ... - więc możesz mieć wiele narzędzi, ale czysty system
PRACA ZESPOŁOWA: takie środowisko można łatwo sklonować na inne maszyny (a nawet na systemy Windows / Linux - z pewnymi modyfikacjami) i zapewnić identyczne środowisko na poziomie dokera - dzięki czemu można łatwo skonfigurować i ponownie użyć skryptów / plików dokerów oraz środowiska konfiguracji dla nowy członek zespołu w bardzo szybki sposób (wystarczy zainstalować dokera i stworzyć podobną strukturę folderów i uzyskać kopię skryptów - to wszystko). Pracuję w ten sposób przez 2 lata z moim zespołem - i jesteśmy bardzo szczęśliwi
Instrukcja
Zainstaluj dokera, korzystając np. Z tej instrukcji
Przygotuj „specjalny” katalog do pracy, np. Mój katalog to
/Users/kamil/work
(będę dalej korzystać z tego katalogu - ale może być dowolny) - ten katalog będzie „interfejsem” między kontenerami dokerów i systemem plików Mac. Wewnątrz tego katalogu utwórz następującą strukturę katalogu:/Users/kamil/work/code
- tutaj umieszczasz swoje projekty za pomocą kodu/Users/kamil/work/tools
/Users/kamil/work/tools/docker-data
- tutaj mapujemy dane wyjściowe kontenerów, takie jak logi (lub pliki bazy danych, jeśli ktoś spłaci db itp.)/Users/kamil/work/tools/docker
/Users/kamil/work/tools/docker/node-cmd
- tutaj umieszczamy skrypty węzła dokującegowewnątrz
tools
stwórz plik,.env
który będzie zawierał w jednym miejscu ścieżki globalne używane w innych skryptachPokaż fragment kodu
Innside dir
../node-cmd
utwórz plikdockerfile
o następującej treściPokaż fragment kodu
innside dir
../node-cmd
utwórz plikrun-container
o następującej treści (plik ten powinien być wykonywalny np. przezchmod +x run-container
) - (zauważ, jak mapujemy porty i katalogi z zewnętrznego „świata” na wewnętrzny system plików dokera)Pokaż fragment kodu
ok teraz możesz dodać jakiś projekt np.
work/code/myProject
i dodać do niego następujący plik „run-cmd” (musi być wykonywalny)Pokaż fragment kodu
następnie, jeśli uruchomisz powyżej skryptu (klikając dwukrotnie), zobaczysz konsolę z dostępnymi poleceniami węzła w katalogu projektu np
npm install
aby uruchomić projekt w tle (np. niektóre serwice) np. uruchomić aplikację kątową-cli serwera WWW, możesz użyć następującego skryptu (o nazwie
run-front
-mus być wykonywalny) - (musisz również edytować/etc/hosts
plik, aby dodać odpowiednią domenę)Pokaż fragment kodu
źródło
(serwer: ubuntu 14)
1.) zainstaluj nvm (menedżer wersji węzła) https://github.com/creationix/nvm
2.) Węzeł instalacji NVM
3.) npm -v (zapytaj npm wersja => 3.8.6)
4.) węzeł -v (zapytanie o wersję węzła => v6.0.0)
źródło