Який запропонований спосіб встановити brew, node.js, io.js, nvm, npm на OS X?


175

Я намагаюся якомога більше використовувати домашню капусту. Який запропонований спосіб встановити наступне на OS X?

і, сподіваємось, підтримує розвиток для:


9
Слід зазначити, що хоча ви попросили використовувати домашню мову. Використання homebrew для встановлення nvm не рекомендується. З github.com/creationix/nvm "Встановлення домашньої програми не підтримується. Якщо у вас виникли проблеми з встановленим домашнім мовою nvm, видаліть його, видаліть його та встановіть за допомогою наведених нижче інструкцій, перш ніж подавати проблему. . "
— Ерік

Відповіді:


267
  1. Використання homebrewвстановлення nvm:

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

    Додайте останню команду до .profile, .bashrcабо.zshrc файл не запускати його знову на кожному запуску терміналу. Так, наприклад, додати його до .profileзапуску:

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

    Якщо у вас виникли проблеми з установкою nvmвикористанняbrew ви можете встановити його вручну (див тут )

  2. Використовуючи nvmвстановити nodeабо iojs(ви можете встановити будь-яку бажану версію):

    nvm install 0.10
    # or
    nvm install iojs-1.2.0
  3. npmдоставляється з node(або iojs), тому він буде доступний після встановлення node(або iojs). Ви можете оновити його до останньої версії:

    $ npm install -g npm@latest

    UPD Попередня версія була npm update -g npm. Дякуємо @Metallica за вказівку на правильний шлях (дивіться коментар нижче).

  4. Використання npmвстановлення ionic:

    npm install -g ionic
  5. Як щодо ngCordova: ви можете встановити його за допомогою npmабо bower. Я не знаю, який варіант вам більше підходить, це залежить від менеджера пакунків, який ви хочете використовувати для клієнта. Тому я опишу їх обох:

    1. Використанняnpm : Перейдіть до папки свого проекту та встановіть ng-cordovaу ній:

      npm install --save ng-cordova
    2. Використання bower : Встановіть ящик:

       npm install -g bower

      А потім перейдіть до папки свого проекту та встановіть ngCordovaу ній:

       bower install --save ngCordova

PS

  1. Для деяких команд може знадобитися привілей суперпользователя
  2. Короткий варіант npm install some_moduleєnpm i some_module

10
Якщо ви самі оновлюєте npm, НЕ використовуйте команду npm update. Рекомендований спосіб оновлення npm: npm install -g npm@latest(від brew info nodeі тут )
— Javad Sadeqzadeh

10
Із поточної версії nvm install: "Зверніть увагу, що вище за темою попросили нас зробити явне управління nvm через Homebrew, вони не підтримуються ..." -> Тому, ймовірно, правильною відповіддю є не використовувати brew для nvm / node.js / io .js.
— с.Даніель

7
Я отримував повідомлення про помилку "nvm не сумісний із параметром npm config" префікс ". згідно з цим сайтом ( github.com/creationix/nvm/issues/855#issue-109279804 ), NVM не сумісний з Homebrew. Я "заварив видалений nvm" і встановив nvm за допомогою команди CURL, і тепер повідомлення про помилку відсутнє.
— YeeHaw1234

4
Я деякий час використовував nvm через brew, але також отримав повідомлення "вище ... явно ... непідтримується". Документи NVM прямо говорять: "Установка домашньої програми не підтримується. Якщо у вас виникли проблеми з встановленим домашньою мовою nvm, будь-ласка, заваріть видалення та встановіть його, використовуючи наведені нижче інструкції, перш ніж подавати проблему." Тож це, мабуть, більше не повинно бути прийнятою відповідь Я тільки почав використовувати n, який працює.
— щозхатипат

3
Поточна версія NVM (v0.33.2) НЕ підтримує встановлення домашньої програми: Див.: Github.com/creationix/nvm/tree/v0.33.2#installation
— Андреа Карраро

45

Оновлення 2019 року: Використовуйте NVM для встановлення вузла, а не Homebrew

У більшості відповідей рекомендованим способом встановлення nvm є використання Homebrew

Не роби цього

На сторінці Github для nvm чітко викликано:

Встановлення домашнього перекладу не підтримується. Якщо у вас виникли проблеми з nvm, встановленим homebrew, будь-ласка, заваріть видалення та встановіть його, використовуючи наведені нижче інструкції, перш ніж подавати проблему.

Замість цього використовуйте наступний метод

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

Сценарій клонує сховище nvm до ~ / .nvm і додає вихідний рядок до вашого профілю (~ / .bash_profile, ~ / .zshrc, ~ / .profile або ~ / .bashrc).

А потім використовуйте nvm для встановлення вузла. Наприклад, щоб встановити останню версію LTS:

nvm install v8.11.1

Чисті та клопоти безкоштовно. Це також позначить це як вашу версію вузла за замовчуванням, тому вам слід налаштувати все


2
Я думаю, ви також nvm install --ltsмогли отримати останній LTS
— skube

1
Дякую, що ви підняли це, я спустив жахливу кролячу нору з nvm та домашньою мовою і просто з'явився ...
— cssidy

Хороша відповідь! Після великої кількості читання (вузол Установки можуть бути мінним полем), я просто заварити Uninstalled вузла, очищені всі і використовував NVM для установки вузла на Мохаве 10.14.4: stackoverflow.com/q/55735701/123033
— Dave Everitt

13

Я використовую n (керування версіями вузла)

Встановити його можна двома способами

brew install n

або

npm install -g n

Ви можете перемикатися між різними версіями вузла та io. Ось приклад з мого поточного оточення, коли я телефоную n без парам:

$ n

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

2
Ви можете додати третій спосіб встановлення, який є безболісним і залишає зручну утиліту для видалення, якщо вона вам потрібна - github.com/mklement0/n-install Цей метод пропонується в n документах на сайті github.com/tj/n
— whatsthatitspat

1
Слід також зазначити, що якщо ви плануєте одночасно запускати різні версії вузлів для різних проектів (наприклад, у двох різних вікнах терміналів), nvm є кращим вибором, оскільки він перемикає лише шляхи до вузла в кожному сеансі.
— Nilloc

10

Я дуже спізнився з цим, але мені не сподобалися інші відповіді

Встановлення Homebrew

Для заварювання бігайте

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

Встановлення вузла & npm

Ви НЕ ПОВИННІ використовувати brewдля установки вузла і НПМ .

Я бачив у кількох місцях, що пропонують використовувати Homebrew для встановлення вузла (як відповідь alexpods та в цьому блозі Team Treehouse blog ), але встановивши таким чином, ви більш схильні до виникнення проблем, як npmі brewобидва менеджери пакунків, і вам слід мати менеджер пакунків керувати іншим менеджером пакунків, це призводить до проблем, наприклад, ця помилка офіційних проблем npm Помилка: Відмова від видалення: / usr / local / bin / npm або не вдається видалити модуль npm на OSX

Більше про цю тему можна прочитати у публікації DanHerbert Fixing npm on Mac OS X for Homebrew Users , де він продовжує говорити

Крім того, використання Homebrew установки npm вимагатиме використання sudo під час встановлення глобальних пакетів. Оскільки однією з основних ідей Homebrew є те, що програми можна встановлювати, не надаючи їм кореневого доступу, це погана ідея.

Для всього іншого

Я б використовував npm; але ви дійсно повинні просто слідувати інструкції по встановленню для кожного модуля, дотримуючись вказівок на веб-сайті, оскільки вони будуть більш обізнані про будь-яку проблему чи помилку, ніж будь-хто інший


Тож ви пропонуєте просто встановити його з їх завантаження?
— Шон Мклін

6

Якщо ви раніше встановили вузол за допомогою варіння, то у вас з'явиться купа додаткових файлів, які слід очистити перед установкою вузла "правильним способом". Крім того, мені довелося додати кілька налаштувань до мого сценарію запуску, щоб зробити роботу безперебійною.

Я написав сценарій, щоб зробити це легко.

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

Я написав коротку статтю тут , що деталі , чому це «правильний шлях».

Якщо вам потрібно встановити iojs, зробіть це за допомогою nvm так:

nvm install iojs-v1.7.1

Щоб встановити варити, просто перегляньте його домашню сторінку .

Дивіться відповіді алексоподів.


5
Приємно бачити, що всі ці менеджери пакунків та менеджери версій справді допомагають видалити власні написані сценарії, хаки та обхідні шляхи, щоб заставити Techstack xyz працювати. приголомшливий
— Майкл Трув

Працював для мене, хоча я починав з npm і варив обох розбитих
— Chris F Carroll

5

Вам слід встановити node.js за допомогою nvm, оскільки таким чином вам не потрібно надавати привілеї суперпользователя при встановленні глобальних пакетів (ви можете просто виконати "npm install -g ім'я пакета", не попереджуючи "sudo").

Однак Brew є фантастичним для інших речей. Я схильний бути упередженим по відношенню до Bower, коли я маю можливість встановити щось із Bower.


Встановлення вузла за допомогою nvm зараз є моїм кращим підходом. З очевидних причин того, що я можу мати кілька версій вузла на своїй машині, а також мені не потрібно виконувати npm за допомогою sudo. Я написав повідомлення в блозі garywoodfine.com/install-nodejs-nvm-osx, пояснюючи, як встановити
— Gary Woodfine

4

Я погоджуюся з noa - якщо вам потрібно мати кілька версій node, io.jsто варити не є відповідним рішенням.

Ви можете допомогти підтримці бета-тесту io.jsв nvm: https://github.com/creationix/nvm/pull/616

Якщо ви просто хочете io.jsі не перемикаєте версії, то ви можете встановити бінарний розподіл io.jsз https://iojs.org/dist/v1.0.2/iojs-v1.0.2-darwin-x64.tar.gz ; що включає npmі вам не знадобиться, nvmякщо ви не перемикаєте версії.

Не забудьте оновити npmпісля встановлення:sudo npm install -g npm@latest


3

Ось що я роблю:

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

Для цього немає домашнього мовлення.

nvmнезабаром підтримає io.js, але не під час публікації: https://github.com/creationix/nvm/isissue/590

Потім інсталюйте все інше, за проектом, з package.jsonта npm install.


0

Для встановлення з zsh та Homebrew:

brew install nvm

Потім додайте до ~ / .zshrc або потрібний файл конфігурації оболонки:

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

Потім встановіть версію вузла і використовуйте її.

nvm install 7.10.1
nvm use 7.10.1
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.