Quelle est la méthode suggérée pour installer brew, node.js, io.js, nvm, npm sur OS X?

175

J'essaye d'utiliser autant que possible l'homebrew. Quelle est la méthode suggérée pour installer les éléments suivants sur OS X?

et nous espérons soutenir le développement pour:

ohho
la source
9
Il convient de noter que bien que vous ayez demandé d'utiliser homebrew. L'utilisation de homebrew pour installer nvm n'est pas recommandée Sur github.com/creationix/nvm "L'installation de Homebrew n'est pas prise en charge. Si vous rencontrez des problèmes avec nvm installé par homebrew, veuillez le désinstaller et l'installer en suivant les instructions ci-dessous, avant de signaler un problème . "
Eric

Réponses:

267
  1. En utilisant homebrewinstaller nvm:

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

    Ajoutez la dernière commande au fichier .profile, .bashrcou .zshrcpour ne plus l'exécuter à chaque démarrage du terminal. Donc par exemple pour l'ajouter à la .profilecourse:

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

    Si vous rencontrez des problèmes lors de l'installation en nvmutilisant, brewvous pouvez l'installer manuellement (voir ici )

  2. En utilisant nvminstall nodeou iojs(vous pouvez installer la version de votre choix):

    nvm install 0.10
    # or
    nvm install iojs-1.2.0
  3. npmest expédié avec node(ou iojs), il sera donc disponible après l'installation node(ou iojs). Vous souhaiterez peut-être le mettre à niveau vers la dernière version:

    $ npm install -g npm@latest

    UPD La version précédente était npm update -g npm. Merci à @Metallica pour avoir indiqué le bon chemin (regardez le commentaire ci-dessous).

  4. En utilisant npminstaller ionic:

    npm install -g ionic
  5. Qu'en est-il ngCordova: vous pouvez l'installer en utilisant npmou bower. Je ne sais pas quelle variante vous convient le mieux, cela dépend du gestionnaire de packages que vous souhaitez utiliser pour le côté client. Je vais donc les décrire tous les deux:

    1. Utilisationnpm : Accédez au dossier de votre projet et installez- ng-cordovay:

      npm install --save ng-cordova
    2. Utilisationbower : Installez le bower:

       npm install -g bower

      Et puis allez dans votre dossier de projet et installez- ngCordovay:

       bower install --save ngCordova

PS

  1. Certaines commandes peuvent nécessiter le privilège de superutilisateur
  2. Variante courte de npm install some_moduleisnpm i some_module
alexpods
la source
10
Si vous mettez à jour npm lui-même, n'utilisez PAS la commande npm update. Le moyen recommandé en amont de mettre à jour npm est: npm install -g npm@latest(à partir de brew info node, et ici )
Javad Sadeqzadeh
10
À partir de l'installation actuelle de brew nvm: "Veuillez noter que l'amont nous a demandé de rendre la gestion explicite de nvm via Homebrew n'est pas prise en charge par eux ..." -> La bonne réponse est donc probablement de ne pas utiliser brew pour nvm / node.js / io .js.
s.Daniel
7
Je recevais le message d'erreur "nvm n'est pas compatible avec l'option npm config" prefix "". selon ce site ( github.com/creationix/nvm/issues/855#issue-109279804 ), NVM n'est pas compatible avec Homebrew. J'ai "brassé nvm désinstallé" et installé nvm via la commande CURL et maintenant le message d'erreur a disparu.
YeeHaw1234
4
J'ai utilisé nvm via brew pendant un certain temps, mais j'ai aussi reçu le message "amont ... explicite ... non pris en charge". La documentation NVM indique explicitement "L'installation de Homebrew n'est pas prise en charge. Si vous rencontrez des problèmes avec la NVM installée par homebrew, veuillez la désinstaller et l'installer en suivant les instructions ci-dessous, avant de signaler un problème." Donc, cela ne devrait probablement plus être la réponse acceptée. Je viens de commencer à utiliser n qui fonctionne.
whatsthatitspat
3
La version actuelle de NVM (v0.33.2) NE prend PAS en charge l'installation homebrew: Voir: github.com/creationix/nvm/tree/v0.33.2#installation
Andrea Carraro
45

Mise à jour 2019: utilisez NVM pour installer le nœud, pas Homebrew

Dans la plupart des réponses, la méthode recommandée pour installer nvm est d'utiliser Homebrew

Ne faites pas cela

Sur Github Page for NVM, il est clairement indiqué:

L'installation Homebrew n'est pas prise en charge. Si vous rencontrez des problèmes avec nvm installé par homebrew, veuillez le désinstaller et l'installer en suivant les instructions ci-dessous, avant de signaler un problème.

Utilisez plutôt la méthode suivante

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

Le script clone le référentiel nvm vers ~ / .nvm et ajoute la ligne source à votre profil (~ / .bash_profile, ~ / .zshrc, ~ / .profile ou ~ / .bashrc).

Et puis utilisez nvm pour installer node. Par exemple, pour installer la dernière version de LTS, procédez comme suit:

nvm install v8.11.1

Propre et sans tracas. Cela marquerait également cela comme votre version de nœud par défaut, vous devriez donc être prêt

Abhijit Mazumder
la source
2
Je pense que vous pouvez également nvm install --ltsobtenir la dernière LTS
skube
1
Merci d'avoir soulevé cela, je suis descendu dans un terrier horrible avec nvm et homebrew et je viens de sortir ...
cssidy
Bonne réponse! Après beaucoup de lecture (les installations de nœuds peuvent être un champ de mines), je viens de brasser un nœud désinstallé, tout nettoyé et utilisé nvm pour installer le nœud sur Mojave 10.14.4: stackoverflow.com/q/55735701/123033
Dave Everitt
13

J'utilise n (gestion de version de nœud)

Vous pouvez l'installer de deux manières

brew install n

ou

npm install -g n

Vous pouvez basculer entre différentes versions de node et io. Voici un exemple de mon env actuel lorsque j'appelle n sans paramètres:

$ n

  io/3.3.1
  node/0.12.7
  node/4.0.0
  node/5.0.0
ο node/5.10.1 
Serge Seletskyy
la source
2
Vous pouvez ajouter une troisième méthode d'installation qui est indolore et laisse un utilitaire de désinstallation pratique si vous en avez besoin - github.com/mklement0/n-install Cette méthode est suggérée dans les n docs sur github.com/tj/n
whatsthatitspat
1
Il convient également de mentionner que si vous prévoyez d'exécuter simultanément différentes versions de nœuds pour différents projets (comme dans 2 fenêtres de terminal différentes), nvm est un meilleur choix, car il ne change que les chemins d'accès au nœud dans chaque session.
Nilloc
10

Je suis super en retard mais je n'ai pas aimé les autres réponses

Installation de Homebrew

Pour brasser terme

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

Installation du nœud & npm

Vous NE DEVRIEZ PAS utiliser brewpour installer node et npm .

J'ai vu quelques endroits suggérant que vous devriez utiliser Homebrew pour installer Node (comme la réponse alexpods et dans ce billet de blog Team Treehouse ), mais en installant de cette façon, vous êtes plus susceptible de rencontrer des problèmes car npmet vous brewêtes tous les deux gestionnaires de paquets et vous devriez ont un gestionnaire de paquets à gérer un autre gestionnaire de paquets ce qui conduit à des problèmes, comme ce bug offical NPM problèmes erreur: Refusant de supprimer: / usr / bin local / / NPM ou ce ne peut pas le module de désinstallation de NPM sur OSX

Vous pouvez en savoir plus sur le sujet dans l'article de DanHerbert Fixing npm On Mac OS X for Homebrew Users , où il poursuit en disant

En outre, l'utilisation de l'installation Homebrew de npm vous obligera à utiliser sudo lors de l'installation de packages globaux. Étant donné que l'une des idées fondamentales derrière Homebrew est que les applications peuvent être installées sans leur donner un accès root, c'est une mauvaise idée.

Pour tout le reste

J'utiliserais npm; mais vous devez vraiment suivre les instructions d'installation pour chaque module en suivant les instructions sur leur site Web car ils seront plus conscients de tout problème ou bogue qu'ils ont que quiconque

Garrettmac
la source
Vous suggérez donc de l'installer à partir de leur téléchargement?
Shawn Mclean
6

Si vous avez déjà installé node en utilisant brew, vous aurez alors un tas de fichiers supplémentaires que vous devrez nettoyer avant d'installer le node "dans le bon sens". De plus, j'ai dû ajouter quelques paramètres à mon script de démarrage pour que les choses fonctionnent correctement.

J'ai écrit un script pour rendre cela 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"

J'ai écrit un court article ici qui détaille pourquoi c'est "la bonne manière".

Si vous devez installer iojs, faites-le en utilisant nvm comme ceci:

nvm install iojs-v1.7.1

Pour installer Brew, il suffit de voir sa page d'accueil .

Voir la réponse d'alexpods pour le reste.

l3x
la source
5
C'est génial de voir que tous ces gestionnaires de paquets et gestionnaires de versions aident vraiment à supprimer les scripts écrits personnalisés, les hacks et les solutions de contournement pour faire fonctionner techstack xyz. impressionnant.
Michael Trouw
A travaillé pour moi même si j'ai commencé avec npm et brasse les deux
Chris F Carroll
5

Vous devez installer node.js avec nvm, car de cette façon, vous n'avez pas à fournir de privilèges de superutilisateur lors de l'installation de packages globaux (vous pouvez simplement exécuter "npm install -g nom_package" sans ajouter 'sudo').

Brew est cependant fantastique pour d'autres choses. J'ai tendance à être biaisé envers Bower chaque fois que j'ai la possibilité d'installer quelque chose avec Bower.

Rajan Patel
la source
L'installation de node à l'aide de nvm est maintenant mon approche préférée. Pour la raison évidente de pouvoir avoir plusieurs versions de node sur ma machine et aussi je n'ai pas à exécuter npm avec sudo. J'ai écrit un article de blog garywoodfine.com/install-nodejs-nvm-osx expliquant comment installer
Gary Woodfine
4

Je suis d'accord avec noa - si vous avez besoin de plusieurs versions de node, io.jsalors brew n'est pas la solution appropriée.

Vous pouvez aider à la io.jsprise en charge des tests bêta dans nvm: https://github.com/creationix/nvm/pull/616

Si vous voulez simplement io.jschanger de version et ne le faites pas, vous pouvez installer la distribution binaire io.jsde https://iojs.org/dist/v1.0.2/iojs-v1.0.2-darwin-x64.tar.gz ; cela inclut npmet vous n'en aurez pas besoin nvmsi vous ne changez pas de version.

N'oubliez pas de mettre à jour npmaprès l'installation:sudo npm install -g npm@latest

Sam Mikes
la source
3

Voici ce que je fais:

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

Pas de Homebrew pour celui-ci.

nvmbientôt supportera io.js, mais pas au moment de la publication: https://github.com/creationix/nvm/issues/590

Ensuite, installez tout le reste, par projet, avec un package.jsonet npm install.

paulmelnikow
la source
0

Pour installer avec zsh et Homebrew:

brew install nvm

Ajoutez ensuite ce qui suit à ~ / .zshrc ou à votre fichier de configuration de shell souhaité:

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

Ensuite, installez une version de nœud et utilisez-la.

nvm install 7.10.1
nvm use 7.10.1
David Dehghan
la source