2014-12-30 19 views
5

Bene, questo puzza, ecco lo scoop:significa impilare su Ubuntu 14.04 improvvisamente smesso di funzionare

Sto aiutando un amico a lavorare su un progetto di sito web utilizzando lo stack MEDIA (MongoDB, esprimere, angolari e nodejs), I sto usando Ubuntu 14.04. Sono abbastanza esperto con Linux e sono uno sviluppatore web esperto, ma la maggior parte della mia esperienza è con lo stack LAMP. Fino a stasera ho lavorato bene a questo progetto di stack MEAN. Il mio amico è tornato a svilupparsi stasera e li ho aiutati a rinnovare il loro nodo env su Mac (per lo più fanno front-end HTML/CSS e faccio lo stack completo) eseguendo l'aggiornamento npm e il progetto funziona bene sulla loro comp. Capendo che avrei potuto aggiornare più facilmente il mio ambiente di nodo, ho provato la stessa cosa:

Ho tentato di aggiornare il mio nodo e gli ambienti di NPM perché erano passati alcuni mesi da quando l'ho fatto (ne so male, ho fottuto, lo ammetto), penso che stavo usando Node.js v 0.3.2. Qualcosa, non pensavo di controllare i numeri di versione prima che questo caos seguisse. Ma ora sto diventando pazzo serie di errori casuali, dipendenze non soddisfatte, non riesco a risolvere le dipendenze non soddisfatte utilizzando l'installazione di npm per recuperarle, e non riesco a ottenere grunt per avviare il server di sviluppo, ho provato a rimuovere il nodo e npm e reinstallazione (ora in esecuzione nodejs 0.10.25) hanno eseguito apt-get update, apt-get install nodejs, apt-get install nodejs-dev, npm update, npm install, ecc., ma senza alcun risultato.

Sono oltre bloccato e oltre frustrato, per favore aiuto! Ecco un campionario di alcuni degli errori/mancante dipendenze sto ottenendo:

module.js:340 
throw err; 
    ^
Error: Cannot find module './helpers' 
at Function.Module._resolveFilename (module.js:338:15) 
at Function.Module._load (module.js:280:25) 
at Module.require (module.js:364:17) 
at require (module.js:380:17) 
at Object.<anonymous>    
at Module._compile (module.js:456:26) 
at Object.Module._extensions..js (module.js:474:10) 
at Module.load (module.js:356:32) 
at Function.Module._load (module.js:312:12) 
at Module.require (module.js:364:17) 
npm ERR! weird error 8 
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 
npm ERR! not ok code 0 

e quando provo ed eseguire sudo grugnito, ottengo questo:

Loading "jshint.js" tasks...ERROR 
>> Error: Cannot find module './name-stack.js' 
Loading "grunt-karma.js" tasks...ERROR 
>> Error: Cannot find module 'depd' 
Warning: Task "jshint" not found. Used --force, continuing. 

Running "concurrent:default" (concurrent) task 
Loading "jshint.js" tasks...ERROR 
>> Error: Cannot find module './name-stack.js' 
Loading "jshint.js" tasks...ERROR 
>> Error: Cannot find module './name-stack.js' 
Loading "grunt-karma.js" tasks...ERROR 
Loading "grunt-karma.js" tasks...ERROR 
>> Error: Cannot find module 'depd' 
>> Error: Cannot find module 'depd' 

[Error:   /home/user/Projects/detrashed/node_modules/mongoose/node_modules/mongodb/node_modules/bson/build/Release/bson.node: invalid ELF header] 
js-bson: Failed to load c++ bson extension, using pure JS version 
[Error: /home/user/Projects/detrashed/node_modules/connect- mongo/node_modules/mongodb/node_modules/bson/build/Release/bson.node: invalid ELF header] 
js-bson: Failed to load c++ bson extension, using pure JS version 

module.js:340 
throw err; 
    ^
Error: Cannot find module './collection/batch/unordered' 
    at Function.Module._resolveFilename (module.js:338:15) 
    at Function.Module._load (module.js:280:25) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 
    at Object.<anonymous> (/home/user/Projects/detrashed/node_modules/connect-mongo/node_modules/mongodb/lib/mongodb/collection.js:21:17) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:364:17) 

Come imbarazzante. Qualsiasi aiuto o informazione su come unf * ck il mio ambiente nodejs sarebbe estremamente utile perché sto per tirare fuori i miei capelli. Grazie in anticipo!

+0

Potresti collegare il tuo pacchetto.json? – Baart

risposta

5

Quindi per prima cosa, mi dispiace che tu abbia preso questo casino. Parte del motivo è un bug in npm update - update non rispetta il versioning semantico - ma sfortunatamente non è stato ancora risolto e continua a mordere le persone. Di conseguenza, nessuno dovrebbe mai eseguire npm update e in particolare mai npm update -g.

Inoltre, i pacchetti ufficiali Debian/Ubuntu lag le versioni correnti un po ', e ci sono alcune condizioni di gara durante brutte npm install nel node si ottiene da Debian. Per fortuna ci sono i pacchetti forniti da NodeSource < https://github.com/nodesource/distributions#usage-instructions>

sudo apt-get --purge remove nodejs nodejs-legacy curl -sL https://deb.nodesource.com/setup | sudo bash - sudo apt-get install -y nodejs nodejs-legacy node -v

Questo dovrebbe farti l'ultima node, 0.10.35.

quindi aggiornare npm

sudo npm install -g [email protected] npm -v

Questo dovrebbe farti l'ultima npm, 2.1.17 (o versione successiva).

Ora per recuperare il progetto. Innanzitutto vorrei soffiare via node_modules ed eseguire un npm install. Se si riscontrano errori da questo, si prega di inviare il file completo npm-debug.log come un aspetto https://gist.github.com e aggiungere il collegamento qui.

Potrebbe essere necessario re-installare i pacchetti globali bower e grunt-cli al fine di avere quelle in PATH:

sudo npm i -g bower grunt-cli

Una cosa da notare su npm è che quasi tutti i pacchetti verranno installati non -globally; installa un pacchetto solo a livello globale se lo desideri nel tuo PATH della riga di comando.

+0

GRAZIE! GRAZIE! GRAZIE! Aggiungerò alcune piccole correzioni di errore di battitura qui: su Ubuntu quando ho provato a eseguire 'sudo apt-get install -y nodojs nodojs-legacy' non mi piaceva il nodojs-legacy, quindi l'ho lasciato cadere, il nodo -v mostra ora 10.35 , Ho provato il 'sudo install -g npm @ latest' ma questo non è un comando valido? Il mio npm è in v 1.4.28 ma funziona bene. Ho reinstallato bower e grunt, ho cancellato i node_modules e ho eseguito 'npm install' E TUTTO FUNZIONA ORA! Grazie mille gentile signore! Lo apprezzo davvero davvero! : D – hypervisor666

+1

Mi spiace volevo dire 'npm install -g npm @ latest'. Sono contento che tu abbia funzionato. –

Problemi correlati