Qual è il modo suggerito per installare brew, node.js, io.js, nvm, npm su OS X?


175

Sto cercando di usare l'homebrew il più possibile. Qual è il modo suggerito per installare quanto segue su OS X?

e si spera che supporti lo sviluppo per:


9
Va notato che sebbene tu abbia chiesto di usare l'homebrew. L'uso di homebrew per l'installazione di nvm non è consigliato Da github.com/creationix/nvm "L'installazione di homebrew non è supportata. Se si verificano problemi con nvm installato in homebrew, eseguire la disinstallazione e installarlo seguendo le istruzioni riportate di seguito, prima di presentare un problema ".
Eric

Risposte:


267
  1. Utilizzando homebrewinstall nvm:

    brew update
    brew install nvm
    source $(brew --prefix nvm)/nvm.sh

    Aggiungere l'ultimo comando al .profile, .bashrco .zshrcfile per non correre di nuovo a ogni avvio del terminale. Ad esempio, per aggiungerlo alla .profilecorsa:

    echo "source $(brew --prefix nvm)/nvm.sh" >> ~/.profile

    Se hai problemi con l'installazione nvmusando brewpuoi installarlo manualmente (vedi qui )

  2. Utilizzando nvminstall nodeo iojs(è possibile installare qualsiasi versione desiderata):

    nvm install 0.10
    # or
    nvm install iojs-1.2.0
  3. npmviene spedito con node(o iojs), quindi sarà disponibile dopo l'installazione node(o iojs). Potrebbe essere necessario aggiornarlo all'ultima versione:

    $ npm install -g npm@latest

    UPD La versione precedente era npm update -g npm. Grazie a @Metallica per aver indicato il modo corretto (guarda il commento qui sotto).

  4. Utilizzando npminstall ionic:

    npm install -g ionic
  5. Che dire ngCordova: puoi installarlo usando npmo bower. Non so quale variante sia più adatta a te, dipende dal gestore di pacchetti che desideri utilizzare per il lato client. Quindi li descriverò entrambi:

    1. Utilizzonpm : vai alla cartella del tuo progetto e installalo ng-cordova:

      npm install --save ng-cordova
    2. Utilizzobower : Installa pergola:

       npm install -g bower

      E poi vai alla cartella del tuo progetto e installalo ngCordova:

       bower install --save ngCordova

PS

  1. Alcuni comandi potrebbero richiedere il privilegio di superutente
  2. Breve variante di npm install some_moduleisnpm i some_module

10
Se si aggiorna npm stesso, NON utilizzare il comando npm update. Il modo raccomandato a monte per aggiornare npm è: npm install -g npm@latest(da brew info nodee qui )
Javad Sadeqzadeh

10
Dall'attuale brew nvm install: "Nota che upstream ci ha chiesto di rendere esplicita la gestione di nvm tramite Homebrew non è supportata da loro ..." -> Quindi probabilmente la risposta giusta è non usare brew per nvm / node.js / io .js.
s

7
Stavo ricevendo il messaggio di errore "nvm non è compatibile con l'opzione" prefisso "di npm config". secondo questo sito ( github.com/creationix/nvm/issues/855#issue-109279804 ), NVM non è compatibile con Homebrew. Ho "preparato nvm disinstallato" e installato nvm tramite il comando CURL e ora il messaggio di errore è sparito.
YeeHaw1234,

4
Ho usato nvm via brew per un po 'ma ho anche ricevuto il messaggio "upstream ... esplicito ... non supportato". I documenti NVM affermano esplicitamente "L'installazione di Homebrew non è supportata. Se si verificano problemi con NVM installato in homebrew, eseguire la disinstallazione e installarlo utilizzando le istruzioni seguenti, prima di presentare un problema." Quindi questa probabilmente non dovrebbe più essere la risposta accettata. Ho appena iniziato a usare n che funziona.
whatsthatitspat,

3
Versione corrente di NVM (v0.33.2) NON supporta l'installazione homebrew: vedi: github.com/creationix/nvm/tree/v0.33.2#installation
Andrea Carraro,

45

Aggiornamento 2019: utilizzare NVM per installare il nodo, non Homebrew

Nella maggior parte delle risposte, il modo raccomandato per installare nvm è usare Homebrew

Non farlo

A Github Page per nvm è chiaramente chiamato:

L'installazione homebrew non è supportata. Se riscontri problemi con NVV installato in homebrew, procedi a disinstallarlo e installalo seguendo le istruzioni riportate di seguito, prima di presentare un problema.

Utilizzare invece il seguente metodo

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

Lo script clona il repository nvm su ~ / .nvm e aggiunge la linea di origine al profilo (~ / .bash_profile, ~ / .zshrc, ~ / .profile o ~ / .bashrc).

Quindi utilizzare nvm per installare il nodo. Ad esempio, per installare l'ultima versione di LTS fare:

nvm install v8.11.1

Pulito e senza problemi. Contrassegnerebbe anche questa come versione del nodo predefinito, quindi dovresti essere pronto


2
Penso che potresti anche nvm install --ltsottenere l'ultimo LTS
skube

1
Grazie per averlo sollevato, sono sceso in un'orribile tana di coniglio con nvm e homebrew ed è appena emerso ...
cssidy

Buona risposta! Dopo un sacco di lettura (installazioni nodo può essere un campo minato), ho appena preparo nodo disinstallato, ripulito tutto e NVM utilizzati per installare nodo Mojave 10.14.4: stackoverflow.com/q/55735701/123033
Dave Everitt

13

Sto usando n (Gestione versione nodo)

Puoi installarlo in due modi

brew install n

o

npm install -g n

È possibile alternare tra diverse versioni di nodo e io. Ecco un esempio dal mio attuale env quando chiamo n senza parametri:

$ n

  io/3.3.1
  node/0.12.7
  node/4.0.0
  node/5.0.0
ο node/5.10.1 

2
È possibile aggiungere un terzo modo per installare che è indolore e lascia una comoda utility di disinstallazione se necessario - github.com/mklement0/n-install Questo metodo è suggerito nei documenti n su github.com/tj/n
whatsthatitspat

1
Va anche detto che se stai pianificando di eseguire contemporaneamente diverse versioni di nodo per diversi progetti (come in 2 finestre di terminale diverse) nvm è una scelta migliore, perché cambia solo i percorsi al nodo in ogni sessione.
Nilloc,

10

Sono in ritardo, ma non mi sono piaciute le altre risposte

Installazione di Homebrew

Per la corsa della birra

"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Installazione di nodo e npm

tu NON NECESSARIO utilizzare brewper l'installazione del nodo e NPM .

Ho visto alcuni posti suggeriti che dovresti usare Homebrew per installare Node (come la risposta di alexpods e in questo post sul blog del Team Treehouse ) ma installando in questo modo sei più incline a incorrere in problemi come npme brewsono entrambi gestori di pacchetti e dovresti fare in modo che un gestore pacchetti gestisca un altro gestore pacchetti porta a problemi, come questo bug Problemi con npm ufficiali Errore: Rifiuto di eliminare: / usr / local / bin / npm o Impossibile disinstallare il modulo npm su OSX

Puoi leggere di più sull'argomento nel post di DanHerbert Fixing npm su Mac OS X per utenti Homebrew , dove continua dicendo

Inoltre, l'utilizzo dell'installazione Homebrew di npm richiederà l'uso di sudo durante l'installazione di pacchetti globali. Poiché una delle idee alla base di Homebrew è che le app possono essere installate senza fornire loro l'accesso root, questa è una cattiva idea.

Per tutto il resto

Userei npm; ma dovresti semplicemente seguire le istruzioni di installazione per ogni modulo seguendo le indicazioni sul sito Web in quanto saranno più consapevoli di qualsiasi problema o bug che hanno di chiunque altro


Quindi suggerisci di installarlo dal loro download?
Shawn Mclean,

6

Se hai precedentemente installato un nodo usando brew, allora avrai un sacco di file extra che dovresti ripulire prima di installare il nodo "nel modo giusto". Inoltre, ho dovuto aggiungere alcune impostazioni al mio script di avvio per far funzionare le cose senza problemi.

Ho scritto una sceneggiatura per renderlo facile.

# filename:  install-nvm-npm-node
# author:    Lex Sheehan
# purpose:   To cleanly install NVM, NODE and NPM
# dependencies:  brew

NOW=$(date +%x\ %H:%M:%S)
CR=$'\n'
REV=$(tput rev)
OFF=$(tput sgr0)
BACKUP_DIR=$HOME/backups/nvm-npm-bower-caches/$NOW
MY_NAME=$(basename $0)
NODE_VER_TO_INSTALL=$1
if [ "$NODE_VER_TO_INSTALL" == "" ]; then
    NODE_VER_TO_INSTALL=v0.12.2
fi
if [ "`echo "$NODE_VER_TO_INSTALL" | cut -c1-1`" != "v" ]; then
    echo """$CR""Usage:   $ $MY_NAME <NODE_VERSION_TO_INSALL>"
    echo "Example: $ $MY_NAME v0.12.1"
    echo "Example: $ $MY_NAME $CR"
    exit 1
fi
echo """$CR""First, run:  $ brew update"
echo "Likely, you'll need to do what it suggests."
echo "Likely, you'll need to run: $ brew update$CR"
echo "To install latest node version, run the following command to get the latest version:  $ nvm ls-remote"
echo "... and pass the version number you want as the only param to $MY_NAME. $CR"
echo "Are you ready to install the latest version of nvm and npm and node version $NODE_VER_TO_INSTALL ?$CR"
echo "Press CTL+C to exit --or-- Enter to continue..."
read x

echo """$REV""Uninstalling nvm...$CR$OFF"
# Making backups, but in all likelyhood you'll just reinstall them (and won't need these backups)
if [ ! -d "$BACKUP_DIR" ]; then 
    echo "Creating directory to store $HOME/.nvm .npm and .bower cache backups: $BACKUP_DIR"
    mkdir -p $BACKUP_DIR
fi 
set -x
mv $HOME/.nvm   $BACKUP_DIR  2>/dev/null
mv $HOME/.npm   $BACKUP_DIR  2>/dev/null
mv $HOME/.bower $BACKUP_DIR  2>/dev/null
{ set +x; } &>/dev/null

echo "$REV""$CR""Uninstalling node...$CR$OFF"
echo "Enter your password to remove user some node-related /usr/local directories"
set -x
sudo rm -rf /usr/local/lib/node_modules
rm -rf /usr/local/lib/node
rm -rf /usr/local/include/node
rm -rf /usr/local/include/node_modules
rm /usr/local/bin/npm
rm /usr/local/lib/dtrace/node.d
rm -rf $HOME/.node
rm -rf $HOME/.node-gyp
rm /opt/local/bin/node
rm /opt/local/include/node
rm -rf /opt/local/lib/node_modules
rm -rf /usr/local/Cellar/nvm
brew uninstall node 2>/dev/null
{ set +x; } &>/dev/null

echo "$REV""$CR""Installing nvm...$CR$OFF"

echo "++brew install nvm"
brew install nvm 
echo '$(brew --prefix nvm)/nvm.sh'
source $(brew --prefix nvm)/nvm.sh

echo "$REV""$CR""Insert the following line in your startup script (ex: $HOME/.bashrc):$CR$OFF"
echo "export NVM_DIR=\"\$(brew --prefix nvm)\"; [ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\"$CR"
NVM_DIR="$(brew --prefix nvm)"

echo """$CR""Using nvm install node...$CR"
echo "++ nvm install $NODE_VER_TO_INSTALL"
nvm install $NODE_VER_TO_INSTALL
NODE_BINARY_PATH="`find /usr/local/Cellar/nvm -name node -type d|head -n 1`/$NODE_VER_TO_INSTALL/bin"
echo "$REV""$CR""Insert the following line in your startup script (ex: $HOME/.bashrc) and then restart your shell:$CR$OFF"
echo "export PATH=\$PATH:$NODE_BINARY_PATH:$HOME/.node/bin"

echo """$CR""Upgrading npm...$CR"
echo '++ install -g npm@latest'
npm install -g npm@latest
{ set +x; } &>/dev/null
echo "$REV""$CR""Insert following line in your $HOME/.npmrc file:$OFF"
echo """$CR""prefix=$HOME/.node$CR"
echo "Now, all is likley well if you can run the following without errors:  npm install -g grunt-cli$CR"
echo "Other recommended global installs: bower, gulp, yo, node-inspector$CR"

Ho scritto un breve articolo qui che spiega in dettaglio perché questo è "il modo giusto".

Se devi installare iojs, fallo usando nvm in questo modo:

nvm install iojs-v1.7.1

Per installare brew, basta vedere la sua home page .

Vedi la risposta di alexpods per il resto.


5
Fantastico vedere che tutti questi gestori di pacchetti e gestori di versioni aiutano davvero a rimuovere script scritti personalizzati, hack e soluzioni alternative per far funzionare Techstack xyz. eccezionale.
Michael Trouw,

Ha funzionato per me anche se ho iniziato con npm e ho preparato entrambi rotti
Chris F Carroll

5

Dovresti installare node.js con nvm, perché in questo modo non devi fornire i privilegi di superutente durante l'installazione di pacchetti globali (puoi semplicemente eseguire "npm install -g nomepacchetto" senza anteporre "sudo").

Brew è fantastico per altre cose, tuttavia. Tendo a essere di parte nei confronti di Bower ogni volta che ho la possibilità di installare qualcosa con Bower.


Installare il nodo usando nvm ora è il mio approccio preferito. Per l'ovvia ragione di poter avere più versioni di nodo sulla mia macchina e anche io non devo eseguire npm con sudo. Ho scritto un post sul blog garywoodfine.com/install-nodejs-nvm-osx spiegando come installare
Gary Woodfine

4

Sono d'accordo con noa - se devi avere più versioni di node, io.jsallora brew non è la soluzione appropriata.

Puoi aiutare il io.jssupporto del beta test in nvm: https://github.com/creationix/nvm/pull/616

Se vuoi solo io.jse non stai cambiando versione, puoi installare la distribuzione binaria di io.jsda https://iojs.org/dist/v1.0.2/iojs-v1.0.2-darwin-x64.tar.gz ; questo include npme non avrai bisognonvm se non si cambia versione.

Ricorda di aggiornare npmdopo l'installazione:sudo npm install -g npm@latest


3

Ecco cosa faccio:

curl https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash
cd / && . ~/.nvm/nvm.sh && nvm install 0.10.35
. ~/.nvm/nvm.sh && nvm alias default 0.10.35

Nessun homebrew per questo.

nvm presto supporterà io.js, ma non al momento della pubblicazione: https://github.com/creationix/nvm/issues/590

Quindi installare tutto il resto, per progetto, con a package.jsone npm install.


0

Per l'installazione con zsh e Homebrew:

brew install nvm

Quindi aggiungere quanto segue a ~ / .zshrc o al file di configurazione della shell desiderato:

export NVM_DIR="$HOME/.nvm"
. "/usr/local/opt/nvm/nvm.sh"

Quindi installare una versione del nodo e utilizzarla.

nvm install 7.10.1
nvm use 7.10.1
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.