Jak zainstalować NodeJS 4 za pomocą apt?

Odpowiedzi:

75

Instrukcje zostały pobrane stąd: https://github.com/nodesource/distribution

wget -qO- https://deb.nodesource.com/setup_4.x | sudo bash -

i wtedy:

sudo apt-get install nodejs

Oto wersje systemu:

ubuntu@424c7702-0947-e7c7-c532-dfec484fc109:~$ lsb_release -r
Release:    15.04
ubuntu@424c7702-0947-e7c7-c532-dfec484fc109:~$ node -v
v4.0.0
ubuntu@424c7702-0947-e7c7-c532-dfec484fc109:~$ npm -v
2.14.2
jarsever
źródło
@jarserver - „Następujące pakiety mają niezaspokojone zależności: nodejs: Zależy: rlwrap, ale nie można go zainstalować E: Nie można naprawić problemów, wstrzymałeś pakiety.” - Błąd podczas instalacji apt-get. Jak to naprawić?
Kumar Sambhav,
@KumarSambhav brzmi, jakby twoja baza danych pakietów była w stanie uszkodzonym, wyszukaj w witrynie, jak naprawić apt stan uszkodzony.
battlemidget
To nie działa dla mnie na Ubuntu 15.10. Zawsze instaluje v0.10.25 (niższa wersja niż OP, więc nie mam pojęcia, co się dzieje ...)
HankScorpio
@HankScorpio Wygląda na to, że apt-repo nie zostało zaktualizowane. Spróbuj wykonać instrukcję instalacji ręcznej ( github.com/nodesource/distribution#manual-installation ) i sprawdź, czy to rozwiązuje problem.
jarsever
Tak, na tym polegał problem. Brakowało niektórych kluczy GPG (czymkolwiek są), więc apt-get updatezawiodło za każdym razem. Kiedyś y-ppa-managernaprawiałem problem i teraz mam najnowszą wersję NodeJS 4.
HankScorpio
37

Menedżer wersji Node zawsze ma najnowszą wersję

Jestem głęboko przekonany, że instalacja Node za pomocą Node Version Managera jest najlepszą opcją na Ubuntu, jeśli instalujesz go na komputerze, na którym zamierzasz programować (zamiast serwera produkcyjnego).

Kiedy instalujesz za pośrednictwem oficjalnych repozytoriów, kończysz się czymś strasznie nieaktualnym. Zawsze możesz dodać PPA, ale nadal będziesz mieć niechlujne uprawnienia, w których globalne instalowanie modułów z npm wymaga uprawnień administratora.

Dzięki NVM wszystko jest przechowywane w twoim folderze domowym (więc nie ma takiej potrzeby sudo) i możesz zainstalować wiele wersji Node (w tym 4.0) i przełączać się między nimi z łatwością.

Instalacja za pomocą NVM

Na podstawie instrukcji instalacji NVM :

Pobierz najnowszą kopię NVM (może być konieczne sudo apt-get install curlnajpierw):

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash

Poinformuj swoją powłokę, aby używała nvm(możesz to dodać, aby ~/.bashrcstało się to automatycznie w przyszłości):

source ~/.nvm/nvm.sh

Następnie zainstaluj najnowszą wersję węzła:

nvm install 4.0

I powiedz nvm, której wersji Węzła chcesz użyć:

nvm use 4.0

Możesz także dodać nvm use 4.0linię do swojego ~/.bashrc, aby nie trzeba było wybierać wersji węzła przy każdym uruchomieniu terminalu.

Teraz, jeśli zaznaczysz which node, powinno to dać ścieżkę do pliku wykonywalnego węzła w twoim folderze domowym. Bieganie node --versionpowinno ci powiedzieć, że biegniesz v4.0.0.

Michael Martin-Smucker
źródło
6
Nie sądzę, aby komentarz dotyczący niepoprawnych uprawnień był dokładny, instaluję węzeł z repozytorium apt nodesource i mogę uruchamiać i instalować moduły węzłów w moim lokalnym katalogu domowym (włączając opcję -g globalną). Wystarczy zaktualizować ~ / .npmrc, aby zdefiniować katalog prefiksów.
battlemidget
3
Ach, to bardzo uczciwa kwestia. Nadal jestem fanem NVM w aspekcie zarządzania wersjami, ale jeśli to nie jest twoja sprawa, ustawienie prefiksu ~/.npmrczdecydowanie wydaje się być właściwym sposobem na obsługę uprawnień dla globalnych modułów.
Michael Martin-Smucker
Uważam, że „przestarzała” notatka o oficjalnych repozytoriach, w odpowiedzi jest trochę… nieaktualna ;-) Oficjalne repozytoria obsługują teraz każdą publicznie wydaną wersję w obsługiwanym pociągu wydań - istnieją repozytorium dla wersji 6, 7 i nawet 8, i tak było, odkąd przynajmniej moja odpowiedź poniżej (10/15)
Guss
36

Z uznaniem dla @jarsever, osobiście nie zgadzam się z paradygmatem „ curl | sh ”.

Jeśli odczuwasz ten sam niepokój, co ja, gdy poproszono mnie o przeniesienie dowolnego tekstu z Internetu do procesu powłoki konta root, możesz spróbować tego samego efektu, ale z (nieco) mniejszym strachem, niepewnością i wątpliwości:

version=4
apt-key adv --keyserver keyserver.ubuntu.com --recv 68576280
apt-add-repository 'deb https://deb.nodesource.com/node_${version}.x precise main'
apt-get update
apt-get install nodejs

Uważam, że proces powinien być przejrzysty, a ty możesz zrobić to samo za pomocą interfejsu użytkownika oprogramowania Ubuntu.

Guss
źródło
Czy jest to w jakikolwiek sposób niekorzystne? Wydaje się, że najlepsza opcja ...
Catskul
6
To więcej niż jedna linia i pozwala ci dowiedzieć się o twoim systemie? ... Myślę, że niektórym się to nie podoba. To jedyny sposób, w jaki mogę wyjaśnić to curl|shzjawisko.
Guss
3
Oprócz zdobywania wiedzy o menedżerze pakietów w twoim systemie operacyjnym jest to również kwestia bezpieczeństwa. curl|shpobiera skrypt z serwera i wykonuje go bezpośrednio w powłoce. Osobiście ufam nodesource, ale nie jest to dobry nawyk. unix.stackexchange.com/questions/46286/…
blanket_cat
I tam proszę cię, żebyś do niego wpakował sudo -E bash. Działa jako root. Gorąco polecam przeczytanie i zrozumienie skryptu, jeśli masz zamiar potokować go z sieci do powłoki roota.
blanket_cat
1
Mówiąc ogólnie, instalując pakiet deb, ponosisz takie samo ryzyko, jak przesyłanie Internetu do powłoki roota. To powiedziawszy, jeden sugeruje, że rozumiesz swój system, drugi sugeruje, że nie rozumiesz - i to jest ogromna różnica.
Guss
0

Lubię używać nodeenv z pypi ( https://pypi.python.org/pypi/nodeenv ), instalujesz pakiet za pomocą pipa, a następnie instalujesz „node / virtualenv” i każesz mu instalować wcześniej przygotowaną wersję, szybko i prosto . Paweł

Paweł
źródło
-1

To zadziałało dla mnie

echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=~/local
make install 
curl https://www.npmjs.org/install.sh | sh

Źródło: https://gist.github.com/isaacs/579814

johnjullies
źródło
1
Pytanie dotyczy w szczególności sposobu instalacji NodeJS z Apt .
David Foerster