Jaki jest sugerowany sposób instalacji brew, node.js, io.js, nvm, npm na OS X?

175

Staram się używać homebrew tak często, jak to możliwe. Jaki jest sugerowany sposób instalacji następujących elementów w systemie OS X?

i miejmy nadzieję, że wspiera rozwój:

ohho
źródło
9
Należy zauważyć, że chociaż poprosiłeś o użycie homebrew. Używanie homebrew do instalacji nvm nie jest zalecane Od github.com/creationix/nvm "Instalacja Homebrew nie jest obsługiwana. Jeśli masz problemy z nvm zainstalowanym przez homebrew, odinstaluj go i zainstaluj zgodnie z poniższymi instrukcjami, przed zgłoszeniem problemu ”.
Eric

Odpowiedzi:

267
  1. Korzystanie z homebrewinstalacji nvm:

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

    Dodaj ostatni rozkaz do .profile, .bashrclub .zshrcplik, aby nie uruchamiać go ponownie na każdym uruchomieniu terminala. Na przykład, aby dodać go do .profilebiegu:

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

    Jeśli masz problemy z instalacją nvmza pomocą brew, możesz zainstalować ją ręcznie (patrz tutaj )

  2. Używając nvminstall nodelub iojs(możesz zainstalować dowolną wersję):

    nvm install 0.10
    # or
    nvm install iojs-1.2.0
    
  3. npmjest dostarczany z node(lub iojs), więc będzie dostępny po zainstalowaniu node(lub iojs). Możesz zaktualizować go do najnowszej wersji:

    $ npm install -g npm@latest

    UPD Poprzednia wersja to npm update -g npm. Dzięki @Metallica za wskazanie właściwej drogi (spójrz na komentarz poniżej).

  4. Korzystanie z npminstalacji ionic:

    npm install -g ionic
  5. A co z ngCordova: możesz go zainstalować za pomocą npmlub bower. Nie wiem, który wariant jest dla Ciebie bardziej odpowiedni, zależy to od menedżera pakietów, którego chcesz użyć po stronie klienta. Więc opiszę je obie:

    1. Używanienpm : Przejdź do folderu swojego projektu i zainstaluj ng-cordovaw nim:

      npm install --save ng-cordova
    2. Zastosowaniebower : zainstaluj altankę:

       npm install -g bower

      A następnie przejdź do folderu projektu i zainstaluj ngCordovaw nim:

       bower install --save ngCordova

PS

  1. Niektóre polecenia mogą wymagać uprawnień administratora
  2. Krótki wariant npm install some_moduletonpm i some_module
alexpods
źródło
10
Jeśli aktualizujesz sam npm, NIE używaj polecenia npm update. Zalecanym przez upstream sposobem aktualizowania npm jest: npm install -g npm@latest(od brew info nodei tutaj )
Javad Sadeqzadeh
10
Z bieżącej instalacji brew nvm: „Zwróć uwagę, że firma upstream poprosiła nas, aby jawne zarządzanie nvm przez Homebrew nie było przez nich obsługiwane ...” -> Więc prawdopodobnie właściwą odpowiedzią jest nieużywanie brew dla nvm / node.js / io .js.
Daniel
7
Otrzymałem komunikat o błędzie „nvm nie jest zgodny z opcją„ prefiks ”npm config”. według tej strony ( github.com/creationix/nvm/issues/855#issue-109279804 ), NVM nie jest kompatybilny z Homebrew. „Zważyłem odinstalować nvm” i zainstalować nvm za pomocą polecenia CURL, a teraz komunikat o błędzie zniknął.
YeeHaw1234,
4
Używałem nvm przez brew przez jakiś czas, ale dostałem też komunikat "upstream ... wyraźny ... nieobsługiwany". Dokumenty NVM wyraźnie mówią: „Instalacja Homebrew nie jest obsługiwana. Jeśli masz problemy z nvm zainstalowanym przez homebrew, przed zgłoszeniem problemu należy go odinstalować i zainstalować zgodnie z instrukcjami poniżej”. Więc prawdopodobnie nie powinna to być już akceptowana odpowiedź. Właśnie zacząłem używać n, które działa.
whatsthatitspat
3
Aktualna wersja NVM (v0.33.2) NIE obsługuje instalacji homebrew: Zobacz: github.com/creationix/nvm/tree/v0.33.2#installation
Andrea Carraro
45

Aktualizacja 2019: Użyj NVM do zainstalowania węzła, a nie Homebrew

W większości odpowiedzi zalecanym sposobem instalacji nvm jest użycie Homebrew

Nie rób tego

Na stronie Github dla nvm jest to wyraźnie określone:

Instalacja Homebrew nie jest obsługiwana. Jeśli masz problemy z nvm zainstalowanym przez homebrew, przed zgłoszeniem problemu należy go odinstalować i zainstalować zgodnie z instrukcjami poniżej.

Zamiast tego użyj następującej metody

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

Skrypt klonuje repozytorium nvm do ~ / .nvm i dodaje linię źródłową do twojego profilu (~ / .bash_profile, ~ / .zshrc, ~ / .profile lub ~ / .bashrc).

Następnie użyj nvm, aby zainstalować node. Na przykład, aby zainstalować najnowszą wersję LTS, wykonaj:

nvm install v8.11.1

Czyste i bezproblemowe. Oznaczałoby to również jako domyślną wersję węzła, więc wszystko powinno być ustawione

Abhijit Mazumder
źródło
2
Myślę, że mógłbyś również nvm install --ltsdostać najnowszy LTS
skube
1
Dziękuję za sprowadzenie tego do góry, ja poszedłem straszną dziurę królik z NVM i homebrew i właśnie pojawił ...
cssidy
Dobra odpowiedź! Po wielu czytaniach (instalacje węzłów mogą być polem minowym), po prostu uwarzyłem odinstalowany węzeł, wyczyściłem wszystko i użyłem nvm do zainstalowania węzła na Mojave 10.14.4: stackoverflow.com/q/55735701/123033
Dave Everitt
13

Używam n (zarządzanie wersjami węzła)

Możesz go zainstalować na dwa sposoby

brew install n

lub

npm install -g n

Możesz przełączać się między różnymi wersjami node i io. Oto przykład z mojego aktualnego środowiska env, kiedy dzwonię n bez parametrów:

$ n

  io/3.3.1
  node/0.12.7
  node/4.0.0
  node/5.0.0
ο node/5.10.1 
Serge Seletskyy
źródło
2
Możesz dodać trzeci sposób instalacji, który jest bezbolesny i pozostawia przydatne narzędzie do odinstalowywania, jeśli go potrzebujesz - github.com/mklement0/n-install Ta metoda jest sugerowana w dokumentacji n na github.com/tj/n
whatsthatitspat
1
Należy również wspomnieć, że jeśli planujesz uruchamiać różne wersje węzłów dla różnych projektów jednocześnie (jak w 2 różnych oknach terminali), lepszym wyborem jest nvm, ponieważ przełącza tylko ścieżki do węzła w każdej sesji.
Nilloc
10

Jestem na to bardzo późno, ale nie podobały mi się inne odpowiedzi

Instalowanie Homebrew

Do zaparzania metę

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

Instalowanie node & npm

Ty NIE NALEŻY używać brewdo instalacji węzła i KMP .

Widziałem kilka miejsc zasugerował, że należy użyć, aby zainstalować Homebrew Node (jak alexpods odpowiedzieć w tym zespołu Treehouse wpis na blogu ), ale instalując ten sposób jesteś bardziej podatny na napotkasz zagadnień jak npmi brewto zarówno menedżerów pakietów i zalecana mieć menedżera pakietów zarządzać innym menedżerem pakietów, co prowadzi do problemów, takich jak ten błąd oficjalne problemy z npm Błąd: Odmowa usunięcia: / usr / local / bin / npm lub to Nie można odinstalować modułu npm na OSX

Możesz przeczytać więcej na ten temat w poście DanHerberta Naprawianie npm w systemie Mac OS X dla użytkowników Homebrew , gdzie mówi dalej

Ponadto użycie instalacji npm Homebrew będzie wymagało użycia sudo podczas instalowania pakietów globalnych. Ponieważ jednym z podstawowych pomysłów Homebrew jest to, że aplikacje można instalować bez przyznawania im uprawnień roota, jest to zły pomysł.

Do wszystkiego innego

Użyłbym npm; ale naprawdę powinieneś po prostu postępować zgodnie z instrukcją instalacji dla każdego modułu, postępując zgodnie ze wskazówkami na tamtej stronie internetowej, ponieważ będą bardziej świadomi wszelkich problemów lub błędów, które mają, niż ktokolwiek inny

garrettmac
źródło
Więc sugerujesz po prostu zainstalowanie go z ich pobierania?
Shawn Mclean
6

Jeśli wcześniej zainstalowałeś węzeł przy użyciu brew, będziesz mieć kilka dodatkowych plików, które powinieneś wyczyścić przed zainstalowaniem węzła „we właściwy sposób”. Ponadto musiałem dodać kilka ustawień do mojego skryptu startowego, aby wszystko działało płynnie.

Napisałem skrypt, aby to ułatwić.

# 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"

Napisałem tutaj krótki artykuł , który szczegółowo wyjaśnia, dlaczego jest to „właściwa droga”.

Jeśli chcesz zainstalować iojs, zrób to za pomocą nvm w następujący sposób:

nvm install iojs-v1.7.1

Aby zainstalować napar, po prostu zobacz jego stronę główną .

Zobacz odpowiedź alexpods na resztę.

l3x
źródło
5
Wspaniale jest widzieć, że wszystkie te menedżery pakietów i menedżerów wersji naprawdę pomagają usunąć niestandardowe napisane skrypty, hacki i obejścia, aby umożliwić działanie techstack xyz. niesamowite.
Michael Trouw
Udało mi się, mimo że zacząłem od npm i napar, oba zepsute
Chris F Carroll
5

Powinieneś zainstalować node.js z nvm, ponieważ w ten sposób nie musisz nadawać uprawnień superużytkownika podczas instalowania pakietów globalnych (możesz po prostu wykonać polecenie „npm install -g nazwa pakietu” bez poprzedzania „sudo”).

Napar jest jednak fantastyczny do innych rzeczy. Mam tendencję do tendencji do Bower, gdy mam możliwość zainstalowania czegoś w Bower.

Rajan Patel
źródło
Instalowanie węzła za pomocą nvm jest teraz moim preferowanym podejściem. Z oczywistego powodu, że mogę mieć wiele wersji węzła na moim komputerze, a także nie muszę wykonywać npm z sudo. Napisałem post na blogu garywoodfine.com/install-nodejs-nvm-osx wyjaśniający, jak zainstalować
Gary Woodfine
4

Zgadzam się z noa - jeśli trzeba mieć kilka wersji node, io.jsto brew nie jest odpowiednim rozwiązaniem.

Możesz pomóc w testach beta io.jsw nvm: https://github.com/creationix/nvm/pull/616

Jeśli tylko chcesz io.jsi nie zmieniasz wersji, możesz zainstalować dystrybucję binarną io.jsz https://iojs.org/dist/v1.0.2/iojs-v1.0.2-darwin-x64.tar.gz ; Obejmuje to npmi nie będziesz potrzebować, nvmjeśli nie zmieniasz wersji.

Pamiętaj o aktualizacji npmpo zainstalowaniu:sudo npm install -g npm@latest

Sam Mikes
źródło
3

Oto co robię:

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

Nie ma Homebrew dla tego.

nvmwkrótce będzie obsługiwać io.js, ale nie w momencie publikacji: https://github.com/creationix/nvm/issues/590

Następnie zainstaluj wszystko inne, dla każdego projektu, z rozszerzeniem package.jsoni npm install.

paulmelnikow
źródło
0

Do instalacji z zsh i Homebrew:

brew install nvm

Następnie dodaj następujący plik do ~ / .zshrc lub żądanego pliku konfiguracyjnego powłoki:

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

Następnie zainstaluj wersję węzła i użyj jej.

nvm install 7.10.1
nvm use 7.10.1
David Dehghan
źródło