Nie można zainstalować pakietów za pomocą menedżera pakietów węzłów w Ubuntu
Nazwa interpretera NodeJS (node
) na Ubuntu została zmieniona na nodejs
z powodu konfliktu nazwy z innym pakietem. Oto, co czytam.debian mówi:
Nazwa węzła.polecenie interpretera js to "node". W Debianie polecenie interpretera zostało zmienione na "nodejs".
Zostało to zrobione, aby zapobiec kolizji przestrzeni nazw: inne polecenia używają ta sama nazwa w ich upstreamach, takich jak ax25-node z " node" paczka.
Skrypty wywołujące węzeł.js jako polecenie powłoki należy zmienić na użyj polecenia "nodejs".
Jednakże, użycie nodejs zmusza Instalowanie pakietów za pomocą npm
. Instalacja pakietu nie powiodła się z następującym błędem:
sh: 1: node: not found npm WARN This failure might be due to the use of legacy binary "node" npm WARN For further explanations, please read /usr/share/doc/nodejs/README.Debian
Jak sprawić, by npm zrozumiał, że nodejs jest już zainstalowany w systemie, ale nazwa interpretera jest inna?
17 answers
TL; DR:
sudo apt-get install nodejs-legacy
Przede wszystkim pozwól mi wyjaśnić sytuację trochę. Latem 2012 roku opiekunowie Debiana postanowili zmienić nazwę węzła.wykonywalny js, aby zapobiec kolizji przestrzeni nazw z innym pakietem. Była to bardzo trudna decyzja dla Komitetu Technicznego Debiana, ponieważ łamie ona kompatybilność wsteczną.
Oto cytat z projektu rezolucji Komitetu, opublikowanego na liście dyskusyjnej Debiana :
Pakiet nodejs zmienić na / usr / bin / nodejs, a nie / usr / bin / node. Pakiet powinien zadeklarować zerwanie: związek z wszystkie pakiety w Debianie, które odwołują się do /usr/bin/node.
Pakiet źródłowy NodeJS dostarcza również pakiet binarny NodeJS-legacy At Priority: extra, który zawiera/usr/bin / node jako dowiązanie symboliczne do / usr / bin / nodejs. Żaden pakiet w archiwum nie może zależeć ani polecać pakiet NodeJS-legacy, który jest dostarczany wyłącznie dla upstream
kompatybilność. Pakiet ten deklaruje również: związek z pakietem węzłów.<...>
Paragraf 2 jest faktycznym rozwiązaniem problemu OP. OP powinien spróbować zainstalować ten pakiet zamiast ręcznie wykonywać dowiązania symboliczne. Poniżej znajduje się link do tego pakietu na stronie indeksu pakietów Debiana .
Można go zainstalować za pomocą sudo apt-get install nodejs-legacy
.
Nie znalazłem żadnych informacji o zaadoptowaniu całości przez programistów NPM, ale Myślę, że npm
pakiet zostanie w pewnym momencie naprawiony i nodejs-legacy
stanie się prawdziwym dziedzictwem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-13 05:04:51
Spróbuj połączyć węzeł z nodejs. Najpierw dowiedz się, gdzie jest nodejs
whereis nodejs
Następnie soft link node do nodejs
ln -s [the path of nodejs] /usr/bin/node
Zakładam, że /usr / bin jest w twojej ścieżce wykonania. Następnie możesz przetestować wpisując node lub npm w linii poleceń i wszystko powinno działać teraz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-03 15:33:47
Możesz również zainstalować Nodejs używając NVM lub NodeJS Version Manager korzystanie z menedżera wersji jest bardzo wiele } korzyści . Jednym z nich jest to, że nie musisz się martwić o ten problem.
Instrukcje:
sudo apt-get update
sudo apt-get install build-essential libssl-dev
Po zainstalowaniu wymaganych pakietów, możesz ściągnąć skrypt instalacji NVM ze strony GitHub projektu. Numer wersji może być inny, ale ogólnie można Pobierz i zainstaluj go z następującą składnią:
curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh
Spowoduje to pobranie skryptu i uruchomienie go. Zainstaluje oprogramowanie w podkatalogu katalogu domowego pod adresem ~/.nvm
. Doda również niezbędne linie do pliku ~/.profile
, aby go użyć.
Aby uzyskać dostęp do funkcji nvm, musisz się wylogować i zalogować ponownie, lub możesz pobrać~/.plik profilu, aby bieżąca sesja wiedziała o zmianach:
source ~/.profile
Teraz, gdy masz nvm zainstalowany, można zainstalować izolowany węzeł.wersje js.
Aby dowiedzieć się o wersjach Node.js, które są dostępne do instalacji, można wpisać:
nvm ls-remote
. . .
v0.11.10
v0.11.11
v0.11.12
v0.11.13
v0.11.14
Jak widzisz, najnowsza wersja w momencie pisania tego tekstu to v0. 11. 14. Można go zainstalować wpisując:
nvm install 0.11.14
Zazwyczaj nvm przełączy się na Ostatnio zainstalowaną wersję. Możesz wyraźnie powiedzieć nvm, aby używała właśnie pobranej wersji, wpisując:
nvm use 0.11.14
Podczas instalacji Node.js using nvm, plik wykonywalny nazywa się node. Możesz zobaczyć wersję aktualnie używaną przez powłokę, wpisując:
node -v
Samouczek comeplete można znaleźć tutaj
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-12 20:10:11
-
Zainstaluj
nvm
najpierw używając:curl https://raw.githubusercontent.com/creationix/nvm/v0.11.1/install.sh | bash
-
Uruchom polecenie
source ~/.profile
-
Teraz uruchom to, a to pokaże wszystkie zainstalowane lub inne wersje pakietów:
nvm ls-remote
-
Zainstalowane pakiety będą na Zielono. Zainstaluj dowolną wersję:
nvm install 6.0.0
-
Sprawdź gdzie nie jest zainstalowany:
which node
-
Sprawdź aktualną wersję:
node -v n=$(which node); n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-12 11:19:27
sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs-legacy
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs-legacy
source ~/.profile
Połączył zaakceptowaną odpowiedź z {[1] } z komentarza, który został złożony i niektóre polecenia czyszczenia wcześniej. Najprawdopodobniej będziesz również musiał sudo apt-get install npm
po.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-08 03:53:07
Oto inne podejście, którego używam, ponieważ lubię n do łatwego przełączania między wersjami węzłów.
Na nowym systemie Ubuntu najpierw zainstaluj węzeł 'system':curl -sL https://deb.nodesource.com/setup | sudo bash -
Następnie zainstaluj N moduł globalnie:
npm install -g n
Ponieważ węzeł systemowy został zainstalowany jako pierwszy (powyżej), system alternatywny może być użyty do czystego Wskazywania węzła dostarczonego przez n . Najpierw upewnij się, że system alternatyw nie ma nic dla węzła:
update-alternatives --remove-all node
Następnie dodaj węzeł dostarczony przez n :
update-alternatives --install /usr/bin/node node /usr/local/bin/node 1
Następnie Dodaj węzeł dostarczony przez system (ten, który został zainstalowany z curl):
update-alternatives --install /usr/bin/node node /usr/bin/nodejs 2
Teraz wybierz węzeł dostarczony przez n za pomocą interaktywnego menu (wybierz /usr/local/bin/node
z menu przedstawionego przez następujące polecenie):
update-alternatives --config node
Wreszcie, ponieważ /usr/local/bin
zwykle ma wyższy priorytet w PATH niż /usr/bin
, należy utworzyć następujący alias (wprowadź w swoim .bashrc lub .zshrc) jeżeli węzeł systemu alternatywnego ma być efektywny; w przeciwnym wypadku węzeł zainstalowany z n w /usr / local / bin ma zawsze pierwszeństwo:
alias node='/usr/bin/node'
Teraz możesz łatwo przełączać się między wersjami węzłów za pomocą n <desired node version number>
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-02 04:11:16
Dla mnie problem został rozwiązany przez,
sudo apt-get remove node
sudo apt-get remove nodejs
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo ln -s /usr/bin/nodejs /usr/bin/node
alias node=nodejs
rm -r /usr/local/lib/python2.7/dist-packages/localstack/node_modules
npm install -g npm@latest || sudo npm install -g npm@latest
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-03 11:07:32
W Linuksie Mint 17 wypróbowałem oba rozwiązania (tworząc dowiązanie symboliczne lub używając pakietu nodejs-legacy
) bez powodzenia.
Jedyną rzeczą, która w końcu zadziałała dla mnie, było użycie ppa od Chrisa Lea:
sudo apt-get purge node-*
sudo apt-get autoremove
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
Ten zainstalowany węzeł w wersji 10.37 i npm 1.4.28. Po tym mogę zainstalować pakiety na całym świecie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-10 00:52:42
Jak już wspominają inni, sugeruję, aby nie używać "sudo apt-get" do instalacji węzła lub jakiejkolwiek biblioteki programistycznej. Wymaganą wersję można pobrać ze strony https://nodejs.org/dist/v6.9.2 / i skonfigurować własne środowisko.
Polecę narzędzia takie jak nvmi n, aby zarządzać twoją wersją węzła. Bardzo wygodne jest przełączanie i praca z tymi modułami. https://github.com/creationix/nvm https://github.com/tj/n
Lub napisać Bash Bash, aby pobrać zip / tar, wyodrębnić folder przenieś i utworzyć miękki link. Gdy chcesz zaktualizować, po prostu wskaż Stary miękki link do nowej pobranej wersji. Tak jak ja stworzyłem dla siebie, możesz odnieść się do: https://github.com/deepakshrma/NodeJs-4.0-Reference-Guide/blob/master/nodejs-installer.sh
#Go to home
cd ~
#run command
#New Script
wget https://raw.githubusercontent.com/deepakshrma/NodeJs-4.0-Reference-Guide/master/nodejs-installer.sh
bash nodejs-installer.sh -v lts
#here -v or --version can be sepecific to 0.10.37 or it could be latest/lts
#Examples
bash nodejs-installer.sh -v lts
bash nodejs-installer.sh -v latest
bash nodejs-installer.sh -v 4.4.2
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-08 09:47:54
Proste rozwiązanie z Tutaj
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash --
sudo apt-get install nodejs
Możesz określić wersję zmieniając wartość setup_x. x, na przykład na setup_5.x
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-07 20:07:29
Odinstaluj dowolną wersję węzła
sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs-legacy
sudo apt-get --purge remove nodejs
Install nvm (Node Version Manager) https://github.com/creationix/nvm
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash
Teraz możesz zainstalować dowolną wersję węzła i przełączać się między wersjami.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-21 14:09:26
Twój System nie jest w stanie wykryć węzła ścieżki js binary.
1.which node
2.Następnie soft link node do nodejs
ln -s [the path of nodejs] /usr/bin/node
Zakładam, że /usr / bin jest w twojej ścieżce wykonania. Następnie możesz przetestować wpisując node lub npm w linii poleceń i wszystko powinno działać teraz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-01 13:36:36
Naprawiłem to odłączanie /usr / sbin / node (które jest połączone z pakietem ax25-node), następnie utworzyłem link do nodejs używając tego w wierszu poleceń
sudo ln -s /usr/bin/nodejs /usr/bin/node
Ponieważ pakiet taki jak karma nie działa z nazwą nodejs, jednak zmienia pierwszą linię skryptu karma z node na nodejs, ale wolę rozwiązać ten problem raz na zawsze
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-16 22:56:40
Dla mnie poprawką było usunięcie pakietów węzła*, a także pakietów npm.
Następnie nowa instalacja jako:
sudo apt-get install autoclean
sudo apt-get install nodejs-legacy
npm install
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-01 02:45:41
Możesz utworzyć link ln -s nodejs
węzeł w /usr/bin
mam nadzieję, że to rozwiąże twój problem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-07 18:31:04
Problem nie jest w instalatorze
zamień nodejs na node lub zmień ścieżkę z /usr/bin / NodeJS na/usr/bin / NODE
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-26 19:41:26
To jest Twój węzeł nie jest poprawnie zainstalowany, najpierw musisz odinstalować węzeł, a następnie zainstalować go ponownie. Aby zainstalować węzeł może to pomóc http://array151.com/blog/nodejs-tutorial-and-set-up/
Po tym można łatwo zainstalować pakiety. Aby zainstalować pakiety, może Ci to pomóc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-02 15:55:01