Widziałem opis użycia yum do zainstalowania zależności, a następnie instalacji Node.JS i NPM ze źródła. Chociaż to działa, wydaje mi się, że Node.JS i NPM powinny być gdzieś w publicznym repozytorium.
Jak mogę zainstalować Node.JS i NPM w jednym poleceniu na AWS Amazon Linux?
node.js
amazon-web-services
npm
yum
amazon-linux
Tim Fulmer
źródło
źródło
Odpowiedzi:
Natknąłem się na to, co było dziwnie trudne do znalezienia później. Umieszczenie tutaj dla potomności:
EDYCJA 3: Od lipca 2016 r. EDYCJA 1 nie działa już dla nodejs 4 (i EDIT 2 też). Ta odpowiedź ( https://stackoverflow.com/a/35165401/78935 ) daje prawdziwą jednowierszową.
EDYCJA 1: Jeśli szukasz nodejs 4, spróbuj repozytorium testowego EPEL:
EDYCJA 2: Aby dokonać aktualizacji z nodejs 0.12 zainstalowanego za pomocą repozytorium EPEL za pomocą powyższej komendy, do nodejs 4 z repozytorium testowego EPEL, wykonaj następujące kroki:
Nowsze pakiety wstawiają pliki binarne węzłów
/usr/bin
zamiast/usr/local/bin
.I trochę tła:
Ta opcja
--enablerepo=epel
powodujeyum
wyszukiwanie pakietów w repozytorium EPEL.źródło
sudo npm install -g n
isudo n v0.12
inną dowolną wersję.sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node
sudo yum install nodejs --enablerepo=epel-testing
zwraca błąd: „Brak dostępnych pakietów nodejs”. podczas gdysudo yum install nodejs --enablerepo=epel
dawałem tylko bardzo stare wersje ...Podobnie jak inne, zaakceptowana odpowiedź dała mi również przestarzałą wersję.
Oto inny sposób, aby to zrobić, który działa bardzo dobrze:
Możesz również zastąpić 12.x inną wersją, taką jak 10.x, 8.x itp.
Możesz zobaczyć wszystkie dostępne wersje na stronie NodeSource Github , a także pobrać je w razie potrzeby.
Uwaga: może być konieczne uruchomienie w
sudo
zależności od środowiska.źródło
npm install
zapackage.json
,curl --silent --location https://rpm.nodesource.com/setup_4.x | sudo bash -
curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
isudo yum -y install nodejs
curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
Zaakceptowana odpowiedź dała mi węzeł 0.10.36 i npm 1.3.6, które są bardzo nieaktualne. Chwyciłem najnowszy plik tarux linux-x64 ze strony pobierania nodejs i instalacja nie była zbyt trudna: https://nodejs.org/dist/latest/ .
Teraz rozpakuj tar, który właśnie pobrałeś -
Uruchom to polecenie, a następnie dodaj je również do
.bashrc
:(przykład: export PATH = "$ PATH: /home/ec2-user/mydirectory/node/node4.5.0-linux-x64/bin")
I zaktualizuj
npm
(tylko raz, nie dodawaj do.bashrc
):Zauważ, że
-g
tam, co oznacza globalne, tak naprawdę oznacza globalne dla tej instancji npm, którą właśnie zainstalowaliśmy i jest ograniczona do bieżącego użytkownika. Dotyczy to wszystkich pakietów, które npm instaluje „globalnie”.źródło
Procedura, która zadziałała dla mnie (postępując zgodnie z tymi dość starymi instrukcjami z kilkoma aktualizacjami):
git --version
lub zainstaluj go za pomocą:sudo yum install git
sudo yum install gcc-c++ make
sudo yum install openssl-devel
node
(który możesz usunąć później):git clone https://github.com/nodejs/node.git
cd node
git checkout v6.1.0
- umieść żądaną wersję pov
./configure
make
sudo make install
node --version
lub po prostunode
(wyjdź z węzła przezprocess.exit()
lub^C
x 2 lub^C
+exit
)npm --version
i zaktualizuj w razie potrzeby za pośrednictwemsudo npm install -g npm
node
katalog za pomocąrm -r node
Uwagi:
sudo yum install nodejs --enablerepo=epel-testing
zwraca błąd:No package nodejs available.
... i
sudo yum install nodejs --enablerepo=epel
(tj. Bez-testing
) podała tylko bardzo stare wersje.sudo npm uninstall npm -g
... ponieważ npm może się odinstalowaćsudo yum erase nodejs
sudo rm -f /usr/local/bin/node
(
sudo yum rm nodejs
w zaakceptowanej odpowiedzi nie będzie działać, ponieważrm
nie jest to poprawne polecenie yum patrzyum --help
)git clone git://github.com/nodejs/node.git
zamiast,git clone https://github.com/nodejs/node.git
ale mogą pojawić się różne błędy (patrz tutaj )./node
katalog z poprzedniej instalacji, usuń go przed użyciem polecenia git clone (w przeciwnym razie wystąpi konflikt):rm -r node
sudo npm...
komendami podobnymi do poleceńsudo: npm: command not found
i / lub masz problemy z uprawnieniami podczas instalowania pakietów węzłów bez sudo, edytujsudo nano /etc/sudoers
i dodaj:/usr/local/bin
na końcu wierszaDefaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
, aby odczytałDefaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
źródło
etc/sudoers
kontroluje pliki, które mogą uruchamiać komendy jako użytkownicy na jakich komputerach - ale będą uruchamiać / znajdować / szukać komend znajdujących się w katalogach wymienionych wsecure_path
węźle,/usr/local/bin
a jeśli tam jest, sudo powinno je znaleźć - zobacz stackoverflow .com / a / 31734090/3092596 Jeśli sudo go nie znajdzie, to należy dodać tę ścieżkę do sudo'ssecure_path
- patrz także: superuser.com/a/927599/404543sudo 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
Prosta instalacja z NVM ...
Aby zainstalować określoną wersję (np. 12.16.3) węzła, zmień ostatnią linię na
Aby uzyskać więcej informacji na temat korzystania z NVM, odwiedź dokumentację: https://github.com/nvm-sh/nvm
źródło
Dla wersji LTS v4 użyj:
W przypadku Node.js v6 użyj:
Wpadłem również na pewne problemy, gdy próbowałem zainstalować natywne dodatki w Amazon Linux. Jeśli chcesz to zrobić, powinieneś również zainstalować narzędzia do kompilacji:
źródło
Właśnie się z tym spotkałem. Wypróbowałem kilka bardziej popularnych odpowiedzi, ale ostatecznie zadziałał dla mnie szybki przewodnik Amazon.
Samouczek: Konfigurowanie Node.js w instancji Amazon EC2
Istotą samouczka jest:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install 4.4.5
(UWAGA: Możesz wybrać inną wersję. Najpierw sprawdź wersje zdalne, uruchamiając$ nvm ls-remote
)$ node -e "console.log('Running Node.js' + process.version)"
Mam nadzieję, że pomoże to następnej osobie.
źródło
Wygląda na to, że nikt o tym nie wspomina. W systemie Amazon Linux 2 oficjalnym sposobem ładowania EPEL jest:
sudo amazon-linux-extras install epel
... wtedy możesz:
sudo yum install nodejs
Zobacz bibliotekę dodatków (Amazon Linux 2)
źródło
Miałem zainstalowany Node.js 6.x i chciałem zainstalować Node.js 8.x.
Oto polecenia, których użyłem (wzięte z witryny Nodejsa z kilkoma dodatkowymi krokami do obsługi danych z pamięci podręcznej yum):
sudo yum remove nodejs
: Odinstaluj Node.js 6.x (nie wiem czy było to konieczne, czy nie)curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
sudo yum clean all
sudo yum makecache
: Ponownie wygeneruj pamięć podręczną metadanych (nie było tego w dokumentacji, ale próbowałem instalować Node.jx 6.x bezskutecznie, dopóki nie wydałem tych dwóch ostatnich poleceń)sudo yum install nodejs
: Zainstaluj Node.js 8.xźródło
sudo yum install nodejs npm --enablerepo=epel
pracuje dlaAmazon Linux AMI
.curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - yum -y install nodejs
działa dla RedHat.źródło
Najłatwiejszym rozwiązaniem jest to (zrób to jako root)
źródło
https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distribution
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash - sudo yum -y install nodejs
źródło
Oficjalna dokumentacja dla instancji EC2 działa dla mnie: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html
źródło
Jak wspomniano w oficjalnej dokumentacji, proste poniżej 2 kroków -
źródło
Dla tych, którzy chcą, aby zaakceptowana odpowiedź była uruchamiana w Ansible bez dalszych poszukiwań, zamieszczam tutaj zadanie dla wygody i odniesienia w przyszłości.
Rekomendacja zaakceptowanej odpowiedzi: https://stackoverflow.com/a/35165401/78935
Odpowiednie zadanie równoważne
źródło
Możesz zaktualizować / zainstalować węzeł, ponownie instalując zainstalowany pakiet do bieżącej wersji, co może uchronić nas przed dużą ilością błędów podczas wykonywania aktualizacji.
Odbywa się to przez nvm za pomocą poniższego polecenia. Tutaj zaktualizowałem wersję mojego węzła do 8 i ponownie zainstalowałem wszystkie dostępne pakiety do wersji 8!
Działa również na instancji AWS Linux.
źródło