Як встановити останню версію Node за допомогою Brew


154

Остання версія NodeJs зараз - 0.4.1

Команда brew install nodeзараз встановлює 0,2.6 - що не ідеально. Мені б хотілося 0.4.1

Я переглянув цей список команд для заварювання і спробувавbrew install --HEAD node

Але це встановлює вузол 0,5 попередньо.

Чому брен не встановлює правильну версію, і як я можу змусити її отримати потрібну?

На цьому етапі виглядає, що насправді було б простіше просто завантажити src та встановити його вручну. Але я хотів би знати, що відбувається з Brew.


Мені цікаво. Яка різниця між встановленням через Homebrew та встановленням із пакету, завантаженого з nodejs.org ?
Йіханго

Відповіді:


126

Ви бігали brew updateпершими? Якщо цього не зробити, Homebrew не може оновити свої формули, а якщо не оновить свої формули, він не знає, як встановити останні версії програмного забезпечення.


2
Правильно, я б спробував "заварити вузол оновлення", але я бачу, що ти маєш рацію. Мені це не прийшло в голову, оскільки доко каже, що "оновлення варіння" оновить програмне забезпечення для заварки - що, здається, не має ніякого значення. Але він згадує «формулу» - це просто (відверто кажучи) дурне слово для того, що в основному це «бібліотека версій програмного забезпечення». Я можу зробити «заварювати інформаційний вузол», щоб дізнатися, яку версію встановити. Він встановлений на 0,4,0, тому я все-таки закінчив установку з src, але це правильно. Дякую.
PandaWood

Коли йдеться про "оновлення програмного забезпечення для пивоваріння", це не означає програмне забезпечення для оновлення, яке встановила пивоварення - це означає саме оновлення варити, а також його бібліотеку формул.
Лілі Баллард

301

Виконайте команди нижче в такому порядку:

brew update
brew doctor
brew upgrade node

Тепер ви встановили оновлену версію вузла, і він, ймовірно, не пов'язаний. Якщо ні, то просто введіть: brew link nodeабоbrew link --overwrite node


1
Продовжуйте отримувати/usr/local/share/doc/node is not writable.
Саба Аханг

@SabaAhang, див.: Виправлення дозволів на / usr / local для Homebrew; ; gist.github.com/rpavlik/768518
AnneTheAgile

3
Помилка: Немає такої кеги: / usr / local / Podlar / node
Hos Mercury

Приємно, що це виправлене збою NPM ("Buffer.alloc не є функцією"), оскільки кег вузла був відключений; необхідні для примусового посилання / перезапису старих файлів.
Дейв

2
brew link --overwrite nodeце дійсно важливо! дякую
hanzichi

136

Після встановлення / оновлення вузла через brew я точно зіткнувся з цією проблемою: команда node працювала, але не команда npm.

Я використовував ці команди, щоб виправити це.

brew uninstall node
brew update
brew upgrade
brew cleanup
brew install node
sudo chown -R $(whoami) /usr/local
brew link --overwrite node
brew postinstall node

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


Дякую! Було точно таке питання, і це вирішило його.
ельсурудо

7
sudo brew postinstall nodeпризведе до помилки, якщо пивом не належить root (не рекомендується). Я не думаю, що це потрібно, якщо ви вже це зробили sudo chown -R $(whoami) /usr/local. Ви повинні вміти просто бігати brew postinstall node.
Сем Фен

2
@SamFen має рацію. sudoне потрібно. Я вперше запустив прийняту відповідь, перш ніж передати цей перелік команд. Опісля я побіг node -vі зараз все здається нормальним.
6754534367

1
Використовуйте sudo chown -R $ (whoami) $ (brew --prefix) / * замість sudo chown -R $ (whoami) / usr / local
Troy DC Thompson

1
Це працювало для мене. Я зробив те, що рекомендував @TroyDCThompson, sudo chown -R $(whoami) $(brew --prefix)/*коли я отримував Operation not permitted.
thurzo101

21

Іноді brew updateна мене виходить з ладу, оскільки один пакет не завантажується належним чином. Таким чином, ви можете просто оновити конкретну бібліотеку, як це:

brew upgrade node

https://gist.github.com/3005832


13

Також спробуйте вимкнути поточну версію вузла після встановлення нової версії вузла. Це мені допомагає.

nvm deactivate

Це видалено /Users/user_name/.nvm/*/bin з $ PATH

А після цього вузол було оновлено

node --version
v10.9.0

9

Мені довелося brew link --overwrite nodeпісля цього brew install nodeоновити з 0,4 до 0,8,18


Помилка: Немає такої кеги: / usr / local / Podlar / node
Hos Mercury

7

Спробуйте використовувати "n" надзвичайно простий менеджер пакетів.

> npm install -g n

Після встановлення "n". Можна витягнути останній вузол:

> n latest

Я успішно використовував його на Ubuntu 16.0x та MacOS 10.12 (Sierra)

Довідка: https://github.com/tj/n


7

Якщо ви встановили поточний вузол через Homebrew, просто використовуйте ці команди.

brew update
brew upgrade node

Перевірте версію вузла до

node -v


3

Щойно використав це рішення з Homebrew 0.9.5, і це здавалося швидким рішенням для оновлення до останньої стабільної версії вузла.

brew update

Це дозволить встановити останню версію

brew install node

Від’єднайте поточну версію використання вузла, node -v, щоб знайти це

brew unlink node012

Це зміниться на найновішу версію вузла.

brew link node

Примітка. Це рішення спрацювало в результаті отримання цієї помилки:

Помилка: Немає такої кег: / usr / local / Cellar / node


2

Я робив це на Mac OSX Sierra. У мене був встановлений Вузол 6.1, але Маріонетку потрібен Вузол 6.4. Ось що я зробив:

brew upgrade node
brew unlink node
brew link --overwrite node@8
echo 'export PATH="/usr/local/opt/node@8/bin:$PATH"' >> ~/.bash_profile

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

node -v
v8.11.2

- overwrite - це потрібно, щоб замінити конфліктуючі файли між node6 та node8


2
  1. node -v покаже вам поточну версію.
  2. npm -v покаже вам поточну версію.
  3. brew link --overwrite --dry-run node примусить посилання та замінить усі конфліктуючі файли.
  4. brew install node зробити свіжу установку.
  5. brew update
  6. brew upgrade node
  7. brew link --overwrite node

    або

    brew link node

Процедура оновлення вузла наведена нижче



0

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


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