węzeł i węzły mają inną wersję

15

Pomyślnie aktualizuję / instaluję najnowszą wersję węzła js przy użyciu tych poleceń (oficjalny curlsposób nie działa dla mnie):

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node

Jednak wersja mojego węzła i węzłów staje się inna:

$ node --version
v5.0.0
$ nodejs --version
v0.10.25

Wygląda na to, że nowy węzeł jest zainstalowany /usr/local/bin/node, więc próbowałem:

sudo ln -s /usr/bin/nodejs /usr/local/bin/node

Ale zwraca:

ln: failed to create symbolic link ‘/usr/local/bin/node’: File exists

Korzystam również z tego linku:

$ sudo ln -s /usr/bin/nodejs /usr/bin/node
ln: failed to create symbolic link ‘/usr/bin/node’: File exists

Użyję pewnych ram, które zależą, na nodeprzykład Ionic. Z jakiej wersji węzła będzie korzystał?

Co powinienem zrobić, aby to rozwiązać?

Bardzo dziękuję za Twoją pomoc

Blaze Tama
źródło
Prawdziwe pytanie imo to, jak mogę powiedzieć n nadpisać istniejące wersje węzła i podlinkowujemy zarówno nodejsi nodedo binarnego zainstalowanego przez n. A jeśli n nie jest w stanie tego zrobić, jakie jest najnowsze podejście? W środowisku pracy bardzo podatne jest na błędy, jeśli nodejs i węzeł adresują różne wersje nodejs.
atripes

Odpowiedzi:

13

Kroki, które rozwiązały dla mnie ten sam problem:

sudo apt-get remove nodejs
sudo ln -s /usr/bin/node /usr/bin/nodejs

Wyjaśnienie

Zainstalowałeś dwie wersje nodejs na swoim komputerze, więc musisz usunąć jedną z nich. Twoja sytuacja:

node v5.0.0 - you will keep this one
nodejs v0.10.25 - this you can remove

Możesz usunąć nodejspakiet za pomocą apt-get removepolecenia. Spowoduje to również usunięcie pliku /usr/bin/nodejsi ponowne wyświetlenie komunikatu o błędzie.

Teraz możesz utworzyć dowiązanie symboliczne o nazwie „/ usr / bin / nodejs”, które wskazuje na źródło „/ usr / local / bin / node”. W twoim przykładzie masz niewłaściwą kolejność ścieżek „od” i „do”

sudo ln -s source_file myfile

Więcej informacji o tworzeniu linków: Jak działają linki symboliczne

areim
źródło
5

Błąd:

ln: failed to create symbolic link ‘/usr/bin/node’: File exists

jest zwykle powodowany, gdy naprawdę masz dwie wersje Nodejsa, a z aliasem nodedrugiego, a druga z nodejsaliasem, jak widać na podstawie poleceń node --versioni nodejs --version:

$ node --version
v5.0.0
$ nodejs --version
v0.10.25

więc nie możesz utworzyć dowiązania symbolicznego do pliku, który już istnieje.

Aby rozwiązać ten problem, musisz całkowicie usunąć dwa pakiety, używając:

sudo apt-get purge node
sudo apt-get purge nodejs
sudo rm -rf bin/node bin/node-waf include/node lib/node lib/pkgconfig/nodejs.pc share/man/man1/node

i ponownie zainstaluj tylko nodejspakiet za pomocą polecenia:

sudo apt-get install nodejs

i utwórz łącze symboliczne, używając:

ln -s /usr/bin/nodejs /usr/bin/node

lub zainstaluj ten nodejs-legacy, który rozwiąże ten problem za pomocą polecenia:

sudo apt-get install nodejs-legacy 
valdeci
źródło
wielkie dzięki, dodałeś informacje, już sam rozwiązałem ten problem. Głosowałem.
areim
0

Dla mnie nodepolecenie to NodeJS zainstalowane przez, nvma nodejspolecenie to NodeJS zainstalowane przy użyciuapt-get

Alexander Elgin
źródło