Come installare Node.JS su Amazon Linux


251

Ho visto il writeup sull'uso di yum per installare le dipendenze e quindi sull'installazione di Node.JS e NPM dalla fonte. Mentre questo funziona, mi sento come Node.JS e NPM dovrebbero essere entrambi in un repository pubblico da qualche parte.

Come posso installare Node.JS e NPM in un comando su AWS Amazon Linux?


Risposte:


396

Ci siamo imbattuti in questo, è stato stranamente difficile da ritrovare più tardi. Mettere qui per i posteri:

sudo yum install nodejs npm --enablerepo=epel

EDIT 3: a partire da luglio 2016, EDIT 1 non funziona più per nodejs 4 (e EDIT 2 neanche). Questa risposta ( https://stackoverflow.com/a/35165401/78935 ) fornisce un vero e proprio liner.

EDIT 1: Se stai cercando nodejs 4, prova il repository di test EPEL:

sudo yum install nodejs --enablerepo=epel-testing

MODIFICA 2: per eseguire l'aggiornamento da nodejs 0.12 installato tramite il repository EPEL utilizzando il comando precedente, a nodejs 4 dal repository di test EPEL, attenersi alla seguente procedura:

sudo yum rm nodejs
sudo rm -f /usr/local/bin/node
sudo yum install nodejs --enablerepo=epel-testing

I pacchetti più recenti inseriscono i file binari del nodo /usr/binanziché /usr/local/bin.

E alcuni retroscena:

L'opzione --enablerepo=epelfa sì che yumla ricerca dei pacchetti nel repository EPEL.

EPEL (Pacchetti extra per Enterprise Linux) è un progetto di repository basato su community gratuito e open source del team Fedora che fornisce pacchetti software aggiuntivi di alta qualità al 100% per la distribuzione Linux tra cui RHEL (Red Hat Enterprise Linux), CentOS e Scientific Linux. Il progetto Epel non fa parte del sistema operativo RHEL / Cent ma è progettato per le principali distribuzioni Linux fornendo molti pacchetti open source come rete, amministratore di sistema, programmazione, monitoraggio e così via. La maggior parte dei pacchetti epel sono gestiti dal repository Fedora.

Via http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/


8
Questo è sicuramente l'approccio più veloce che abbia mai visto, ma può essere utile un avviso: il repository EPEL non è sincronizzato con il nodo stabile corrente e non è possibile utilizzare "n" per risolvere il problema quando è stato installato questo modo (almeno, non senza un qualche tipo di magia che è oltre me). Il noioso approccio git clone / make install è l'unico modo che ho trovato per garantire un'installazione coerente e attuale.
Punto

22
Ho ottenuto il nodo 0.10.36 e npm 1.3.6 da questo. Questi sono molto obsoleti.
voltrevo,

4
@Semicolon si può andare in giro che installando solo NPM, quindi sudo npm install -g ne sudo n v0.12o qualsiasi altra versione che ti piace.
Unboundev

4
n aggiorna come previsto, ma non aggiorna correttamente il collegamento del nodo. Dovrai eseguire il comando extra:sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node
Masadow,

4
questa risposta non ha funzionato poiché sudo yum install nodejs --enablerepo=epel-testingrestituisce l'errore: "Nessun pacchetto nodejs disponibile." mentre sudo yum install nodejs --enablerepo=epeldava solo versioni molto vecchie ...
goredwards

224

Come altri, anche la risposta accettata mi ha dato una versione obsoleta.

Ecco un altro modo per farlo che funziona molto bene:

$ curl --silent --location https://rpm.nodesource.com/setup_12.x | bash -
$ yum -y install nodejs

Puoi anche sostituire 12.x con un'altra versione, come 10.x, 8.x, ecc.

Puoi vedere tutte le versioni disponibili nella pagina di NithodeSource Github e, se lo desideri, estrarre da lì

Nota: potrebbe essere necessario eseguire l'utilizzo in sudobase al proprio ambiente.


4
Questo è quello che dovevo usare su AWS Elastic Beanstalk per ottenere una versione più recente di quella già installata.
Jon Burgess,

1
Opere semplicemente perfetto, mentre ho bisogno di correre npm installper package.json,
Chetabahana

32
Ho dovuto eseguire questo concurl --silent --location https://rpm.nodesource.com/setup_4.x | sudo bash -
user465342

16
Se ti viene negata l'autorizzazione, dovrai aggiungere un po 'di sudo. curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -esudo yum -y install nodejs
sampoh,

1
se vuoi installare Node.js 8.x, esegui shoudcurl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
Argun

64

La risposta accettata mi ha dato il nodo 0.10.36 e npm 1.3.6 che sono molto obsoleti. Ho preso l'ultimo tarball linux-x64 dalla pagina dei download di nodejs e non è stato troppo difficile da installare: https://nodejs.org/dist/latest/ .

# start in a directory where you like to install things for the current user
(For noobs : it downloads node package as node.tgz file in your directlry)
curl (paste the link to the one you want from the downloads page) >node.tgz

Ora decomprimi il tar che hai appena scaricato -

tar xzf node.tgz

Esegui questo comando e poi aggiungilo anche al tuo .bashrc:

export PATH="$PATH:(your install dir)/(node dir)/bin"

(esempio: export PATH = "$ PATH: /home/ec2-user/mydirectory/node/node4.5.0-linux-x64/bin")

E aggiorna npm(solo una volta, non aggiungere a .bashrc):

npm install -g npm

Si noti che -glì che significa globale, in realtà significa globale per quell'istanza npm che è l'istanza che abbiamo appena installato ed è limitata all'utente corrente. Questo si applica a tutti i pacchetti che npm installa 'a livello globale'.


4
Questa è in realtà la risposta migliore, dato che ottieni esattamente la versione che desideri
Mariusz,

1
Vorrei aver letto prima questa risposta - questa dovrebbe essere la risposta accettata perché puoi scegliere quale versione vuoi installare. - grazie @voltrevo
Mike W,

2
@voltrevo grazie per la risposta. Sì, ci sono altri modi per installare il nodo su Linux. La risposta accettata è una riga, che si collega al sistema di pacchetti YUM per aggiornamenti automatici e gestiti. I pacchetti nei repository YUM tendono ad essere un po 'più vecchi e sono anche un po' meglio testati con distribuzioni più ampie. Personalmente, consiglio di lasciare l'ultimo e il più grande ambiente di sviluppo locale e di usare qualcosa di più simile alla risposta accettata per gli ambienti di produzione. Saluti!
Tim Fulmer,

per le vecchie versioni di centos questo è il modo migliore per farlo
user1336321

L'errore dopo l'esecuzione del nodo -v ora è: 'impossibile eseguire il file binario'. Qualche idea?
JosFabre,

28

La procedura che ha funzionato per me (seguendo queste istruzioni piuttosto vecchie con alcuni aggiornamenti):

  • controlla che git sia installato git --versiono installalo tramite:
    sudo yum install git
  • installa gcc e openssl:
    sudo yum install gcc-c++ make
    sudo yum install openssl-devel
  • clona il repository git in una directory chiamata node(che puoi rimuovere in seguito):
    git clone https://github.com/nodejs/node.git
  • decidere in quale versione del nodo si desidera https://github.com/nodejs/node/releases
  • vai alla directory del nodo appena creato e installa il nodo
    cd node
    git checkout v6.1.0- inserisci la versione desiderata dopo ilv
    ./configure
    make
    sudo make install
  • verifica che il nodo sia installato / funzionante con node --versiono semplicemente node(esci dal nodo tramite process.exit()o ^Cx 2 o ^C+exit )
  • controlla la versione npm: npm --versione aggiorna se necessario tramitesudo npm install -g npm
  • Opzionale: rimuovere la nodedirectory conrm -r node

Appunti:

  1. La risposta accettata non ha funzionato poiché sudo yum install nodejs --enablerepo=epel-testingrestituisce l'errore: No package nodejs available.
    ... e sudo yum install nodejs --enablerepo=epel(ovvero senza-testing ) ha fornito solo versioni molto vecchie.
  2. Se hai già una vecchia versione del nodo installata puoi rimuoverla con:
    sudo npm uninstall npm -g ... poiché npm può disinstallarsi
    sudo yum erase nodejs
    sudo rm -f /usr/local/bin/node
    ( sudo yum rm nodejsnella risposta accettata non funzionerà in quanto rmnon è un comando yum valido vediyum --help )
  3. È possibile clonare il repository del nodo tramite git clone git://github.com/nodejs/node.gitanziché anziché git clone https://github.com/nodejs/node.gitma è possibile che vengano visualizzati vari errori (vedere qui ).
  4. Se hai già una /nodedirectory di una precedente installazione, rimuovila prima di usare il comando git clone (o ci sarà un conflitto):
    rm -r node
  5. Se riscontri problemi con sudo npm...comandi simili a quelli sudo: npm: command not founde / o hai problemi con le autorizzazioni per l'installazione di pacchetti di nodi senza sudo, modifica sudo nano /etc/sudoerse aggiungi :/usr/local/binalla fine della riga in Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/binmodo che leggaDefaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

3
@Gio molte altre risposte tra cui scegliere se questo non ti soddisfa ;-) ... 'in un comando' non era la parte più importante della domanda IMHO.
goredwards,

Questo è molto utile dopo che ho fatto un errore con la risposta di accettazione. Grazie
Daron Tancharoen,

@talentedandrew etc/sudoerscontrolla i file che possono eseguire quali comandi come quali utenti su quali macchine - ma eseguiranno / troveranno / cercheranno solo i comandi che si trovano nelle directory elencate sul suo secure_pathnodo e dovrebbero essere installati /usr/local/binsudo, se è lì sudo dovrebbe trovarlo - vedi stackoverflow .com / a / 31734090/3092596 Se sudo non lo trova, allora quel percorso deve essere aggiunto a sudo's secure_path- vedi anche: superuser.com/a/927599/404543
goredwards

Vorrei aggiungere che potrebbe essere necessario correggere i collegamenti simbolici dopo l'installazione utilizzando questo metodo: sudo 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
BuffMcBigHuge

23

Installazione semplice con NVM ...

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install node

Per installare una determinata versione (come 12.16.3) di Nodo modificare l'ultima riga in

nvm install 12.16.3

Per ulteriori informazioni su come utilizzare NVM, visitare i documenti: https://github.com/nvm-sh/nvm


1
Questo funziona totalmente. Richiede meno tempo della risposta di @goredwards. Ho provato su un AMI Amazon ECS ottimizzato.
Jayant Bhawal,

3
La risposta accettata e tutti gli EDIT 1-3 non hanno funzionato per me, ma ha funzionato. Grazie!
seantomburke,

1
pulito e compatto.
Stephen Tetreault,

1
semplice e fantastico
Abhinav,

2
Questa dovrebbe essere la risposta. È meglio di gran lunga a meno che qualcuno non stia cercando di costruire dalla fonte.
Kirkland,

19

Per la versione V4 LTS usare:

curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
yum -y install nodejs

Per Node.js v6 utilizzare:

curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
yum -y install nodejs

Ho anche riscontrato alcuni problemi durante il tentativo di installare componenti aggiuntivi nativi su Amazon Linux. Se vuoi farlo, dovresti anche installare gli strumenti di compilazione:

yum install gcc-c++ make

Questa è una risposta fantastica Non mi servono più 20 minuti per installare Node.
David Webber,

se esegui un'applicazione php con un frontend compilato npm su beanstalk elastico, puoi usarlo. fa parte del mio file install.config che l'ha fatto funzionare - gist.github.com/marekjalovec/1ccee0c2254e65fc5d82eb35c7da82ae
Marek Jalovec

14

Mi sono appena imbattuto in questo. Ho provato alcune delle risposte più popolari, ma alla fine, ciò che ha funzionato per me è stata la guida di installazione rapida di Amazon.

Tutorial: configurare Node.js su un'istanza Amazon EC2

L'essenza del tutorial è:

  1. Assicurati di essere inviato all'istanza.
  2. Prendi nvm: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
  3. Attivo . ~/.nvm/nvm.sh
  4. Installa il nodo usando nvm nvm install 4.4.5(NOTA: puoi scegliere una versione diversa. Controlla prima le versioni remote eseguendo $ nvm ls-remote)
  5. Infine, verifica di aver installato correttamente il nodo nodo eseguendo $ node -e "console.log('Running Node.js' + process.version)"

Spero che questo aiuti la persona successiva.


Potresti voler spiegare il contenuto in quel link. Una buona risposta utilizza solo un collegamento come riferimento, non l'argomento principale della risposta.
BusyProgrammer,

6

Sembra che nessuno lo stia menzionando. Su Amazon Linux 2 , il modo ufficiale per caricare EPEL è:

  • sudo amazon-linux-extras install epel

... allora puoi:

  • sudo yum install nodejs

     

Vedi libreria extra (Amazon Linux 2)


bene questa sembra la risposta migliore!
Tratto

@Stretch Non proprio. Installa il nodo 6. Troppo vecchio.
GabrielBB,

5

Avevo installato Node.js 6.x e volevo installare Node.js 8.x.

Ecco i comandi che ho usato (presi dal sito di Nodejs con alcuni passaggi extra per gestire i dati memorizzati nella cache yum):

  1. sudo yum remove nodejs: Disinstalla Node.js 6.x (non so se fosse necessario o meno)
  2. curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
  3. sudo yum clean all
  4. sudo yum makecache: Rigenera la cache dei metadati (questo non era nei documenti, ma yum ha continuato a provare a installare Node.jx 6.x, senza successo, fino a quando non ho emesso questi ultimi due comandi)
  5. sudo yum install nodejs: Installa Node.js 8.x

3

sudo yum install nodejs npm --enablerepo=epelfunziona per Amazon Linux AMI. curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - yum -y install nodejs funziona per RedHat.


2

La soluzione più semplice è questa (fai come root)

sudo su root
cd /etc
mkdir node
yum install wget
wget https://nodejs.org/dist/v9.0.0/node-v9.0.0-linux-x64.tar.gz
tar -xvf node-v9.0.0-linux-x64.tar.gz
cd node-v9.0.0-linux-x64/bin
./node -v
ln -s /etc/node-v9.0.0-linux-x64/bin/node node

inserisci qui la descrizione dell'immagine


Grazie, mi ha aiutato
arupjbasu il



0

Come menzionato nella documentazione ufficiale, semplice sotto 2 passaggi -

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs

0

Per coloro che desiderano che la risposta accettata venga eseguita in Ansible senza ulteriori ricerche, inserisco l'attività qui per comodità e riferimento futuro.

Raccomandazione di risposta accettata: https://stackoverflow.com/a/35165401/78935

Equivalente al compito

tasks:
  - name: Setting up the NodeJS yum repository
    shell: curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
    args:
      warn: no
  # ...

0

È possibile aggiornare / installare il nodo reinstallando il pacchetto installato alla versione corrente che può salvarci da una grande quantità di errori, mentre si esegue l'aggiornamento.

Questo viene fatto da NVV con il comando seguente. Qui, ho aggiornato la versione del mio nodo a 8 e ho reinstallato tutti i pacchetti disponibili anche su v8!

nvm i v8 --reinstall-packages-from=default

Funziona anche su istanza di AWS Linux.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.