Perché l'installazione di node 6.x su Ubuntu 16.04 installa effettivamente il nodo 4.2.6?

68

Questi sono stati i miei passi per installare il nodo su Ubuntu 16.04:

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

quali sono le istruzioni ufficiali:

link

Dopo averlo fatto, l'esecuzione di nodejs --version restituisce v4.2.6 .

Poiché ho usato setup_6.x , stavo assumendo che una versione che inizia con 6 verrebbe installata?

Ho pensato che forse setup_6.x dovrebbe essere setup_6.2.1 , ma quella pagina restituisce un 404, vedi:

link (c'è una pagina lì)

link (restituisce un 404)

Come installo l'ultima versione stabile del nodo su Ubuntu 16.04?

Modifica

Questi sono risultati dopo l'esecuzione di sudo apt-get install -y nodejs :

sudo apt-get install -y nodejs 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  gyp libboost-python1.58.0 libjs-inherits libjs-node-uuid libjs-underscore
  libssl-dev libssl-doc libuv1-dev linux-headers-4.4.0-18
  linux-headers-4.4.0-18-generic linux-headers-4.4.0-21
  linux-headers-4.4.0-21-generic linux-image-4.4.0-18-generic
  linux-image-4.4.0-21-generic linux-image-extra-4.4.0-18-generic
  linux-image-extra-4.4.0-21-generic linux-signed-image-4.4.0-18-generic
  linux-signed-image-4.4.0-21-generic python-configobj python-pycurl
  python-pyexiv2 python-pyexiv2-doc
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  nodejs
0 to upgrade, 1 to newly install, 0 to remove and 0 not to upgrade.
Need to get 0 B/3,162 kB of archives.
After this operation, 13.2 MB of additional disk space will be used.
Selecting previously unselected package nodejs.
(Reading database ... 329473 files and directories currently installed.)
Preparing to unpack .../nodejs_4.2.6~dfsg-1ubuntu4_amd64.deb ...
Unpacking nodejs (4.2.6~dfsg-1ubuntu4) ...
Processing triggers for doc-base (0.10.7) ...
Processing 1 added doc-base file...
Registering documents with scrollkeeper...
Processing triggers for man-db (2.7.5-1) ...
Setting up nodejs (4.2.6~dfsg-1ubuntu4) ...
update-alternatives: using /usr/bin/nodejs to provide /usr/bin/js (js) in auto mode

Modifica

Risultati di apt-cache policy nodejs :

apt-cache policy nodejs
nodejs:
  Installed: 4.2.6~dfsg-1ubuntu4
  Candidate: 4.2.6~dfsg-1ubuntu4
  Version table:
 *** 4.2.6~dfsg-1ubuntu4 500
        500 http://au.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
        100 /var/lib/dpkg/status
    
posta user1063287 13.06.2016 - 04:16

7 risposte

120

Il motivo principale è che lo script di installazione non è stato eseguito correttamente. Pertanto, grazie ai dati aggiornati dell'OP che supportano questo, i dati dal repository NodeSource non sono mai stati visti da apt perché non è stato configurato correttamente dallo script.

Lo script, quindi, potrebbe non aver trovato la tua distribuzione, o potrebbe essersi incasinato durante la configurazione del repository, o ci potrebbe essere stata un'interruzione di rete, o una delle mille ragioni per cui è stata interrotta e non ha fatto il suo lavoro.

Il fatto che stai vedendo la versione 4.x che viene installata significa che lo script non ha svolto correttamente il suo lavoro, quindi lo script non è necessariamente in errore. Questo significa che dobbiamo potenzialmente farlo in un modo più difficile.

  

Dovrei sottolineare: lo script in realtà non fa nessuna installazione - tutto ciò che fa è determinare la versione di Debian / Ubuntu in cui ti trovi e configurare il repository da cui ottenere i dati. La parte di installazione è in realtà il passo sudo apt-get install eseguito a mano.

Piuttosto che affidarci allo script, possiamo fare quello che la sceneggiatura sta facendo alla vecchia maniera: a mano, noi stessi, configurare la configurazione del repository e installare NodeJS.

Ecco il modo manuale per farlo funzionare, ed è fondamentalmente ciò che lo script fa (ad eccezione del Passaggio 4, che è quello di assicurarsi che tu stia ottenendo dati accurati sulla versione):

  1. Crea un nuovo file: /etc/apt/sources.list.d/nodesource.list

    Dovrai creare questo file con sudo , ma quando crei il file, mettilo al suo interno:

    deb https://deb.nodesource.com/node_6.x xenial main
    deb-src https://deb.nodesource.com/node_6.x xenial main
    

    Quindi, salva il file. (sostituisci node_6.x con node_7.x o node_8.x , ecc. per le versioni più recenti dei nodi)

  2. Scarica la chiave di firma GPG da Nodesource per il repository . In caso contrario, potresti ricevere NO_PUBKEY errori con apt-get update :

    curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
    
  3. Esegui manualmente sudo apt-get update .

    Questo aggiorna i dati dal repository della nodesource in modo che apt conosca una versione più recente.

    Se ottieni un errore GPG NO_PUBKEY , quindi torna al passaggio 2

  4. Controlla apt-cache policy nodejs output.

    Questo non è fatto dallo script, ma vuoi essere sicuro di vedere una voce che dice qualcosa di simile nell'output (anche se la versione potrebbe essere diversa se non stai usando 6.x come stringa della versione; l'unica cosa che ci interessa è che c'è un numero di versione più recente fornito tramite nodesource):

    Version table:
        6.2.1-1nodesource1~xenial1 500
           500 https://deb.nodesource.com/node_6.x xenial/main amd64 Packages
        4.2.6~dfsg-1ubuntu4 500
           500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
    

    Se non vedi voci come questa e vedi solo 4.2.6, ricomincia. Altrimenti, procedi.

  5. Installa il nodejs binary. Ora che hai confermato 6.x è disponibile sul tuo sistema, puoi installarlo: sudo apt-get install nodejs

  6. nodejs --version ora dovrebbe mostrare v6.2.1 o simile sull'output (a patto che inizi con v6. sei sulla versione 6 allora, questo potrebbe essere un numero di versione più alto se stai usando un versione più recente di 6 ma purché non sia 4.2.6 dovresti essere bravo a farlo).

risposta data Thomas Ward 13.06.2016 - 04:47
37

Ho avuto una versione precedente del nodo. Tutto quello che dovevo fare era eliminare quello vecchio:

sudo apt-get purge nodejs npm

E poi, sostituendo 6 in v=6 con 7, 8, 9 secondo necessità per le rispettive versioni (vedi istruzioni di installazione ufficiali ):

v=6
curl -sL https://deb.nodesource.com/setup_$v.x | sudo -E bash -

(assicurati di aver arricciato l'installazione.)

E infine,

sudo apt-get install -y nodejs

Boom, ultima versione del nodo.

    
risposta data codemode 18.11.2016 - 19:34
3

Per l'utente versione di Ubuntu 16.04.2 (con un piccolo cambiamento da Thomas'post e grazie per lui)

1.apre l'aggiornamento del software

2.Blocco impost

3.altri software

4.Aggiungi i sorgenti ma ricorda di scegliere l'opzione tutte le nuove fonti in un secondo momento exp:

deb https://deb.nodesource.com/node_6.x xenial main
deb-src https://deb.nodesource.com/node_6.x xenial main

5.reload

6. sudo apt-get update

7. apt-cache policy nodejs // per ottenere la nuova tabella delle versioni e controllare se l'origine è stata completata

8. sudo apt install nodejs

9. nodejs --version

ORA È tutto pronto .......

avviso: non cambiare il tuo driver Linux predefinito per la tua scheda nvidia dal pannello di aggiornamento .... il sistema si bloccherà .... !!!

    
risposta data Jason Liu 12.04.2017 - 23:46
2

Ho avuto lo stesso problema. Ma nel mio caso ho dovuto aggiornare il comando di ricciolo. Puoi vedere il problema eseguendo con l'opzione -S.

curl -s -S https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -

Che ha mostrato il problema

curl: (1) Protocol "https" not supported or disabled in libcurl
gpg: no valid OpenPGP data found.

Quindi ho risolto questo problema eseguendo quanto segue.

sudo apt-get install curl
sudo apt autoremove
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs
    
risposta data zatopek 17.11.2017 - 02:37
1

Aggiungendo @Thomas Ward rispondi a coloro che stanno affrontando problemi nell'installazione di nodejs 8.x con https URL o il codice tieni su installs v4.2.6 mostrando l'errore del certificato prova ad aggiungere nodesource.list con le righe seguenti

deb http://deb.nodesource.com/node_8.x xenial main
deb-src http://deb.nodesource.com/node_8.x xenial main

passaggio successivo: Esegui

sudo curl -sL http://deb.nodesource.com/setup_8.x | sudo -E bash -

Poi

sudo apt-get install -y nodejs

Questo risolverà il tuo problema installando la versione aggiornata di nodejs e la versione di npm quando ha risolto il mio per Ubuntu 16.04 LTS ...

    
risposta data sunilsmith 23.10.2017 - 11:09
0

Ho trovato questo link e mi aiuta ad installare Nodejs8

risposta data Victor Espinoza 29.06.2017 - 17:49
0

Ho tentato di seguire le istruzioni sul collegamento per la versione 8, ma questo non ha funzionato per me. Ho visitato link direttamente nel browser e copiato e incollato lo script in un file sul mio sistema nodejs.sh . Quindi ho eseguito i seguenti comandi

sudo -E bash nodejs.sh
apt-cache policy nodejs
sudo apt-get install nodejs

Il comando apt-cache mostrava due versioni con una preferenza per l'installazione 8. In seguito puoi eliminare il file di installazione. Non sei sicuro del motivo per cui la copia del file in locale è stata utile perché il comando di arricciatura mostrava correttamente lo script.

    
risposta data Bryan Toth 03.04.2018 - 17:11

Leggi altre domande sui tag