Я пытаюсь обновить свой nodejs v4.2.1 до последней версии и успешно получил это. Но node -v по-прежнему дает мне "-v4.2.1".

enter image description here

enter image description here

-1
Sam Su 12 Май 2016 в 10:48

2 ответа

Лучший ответ

Вероятно, более старый узел находится в вашем PATH раньше, чем новый. Вы можете запустить в своей оболочке:

which node

Чтобы увидеть, где находится двоичный файл Node, который запускается по умолчанию (v4.2.1 в вашем случае). Вы можете увидеть ваш PATH, запустив:

echo $PATH

Будет показано что-то вроде:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Это каталоги, в которых выполняется поиск по порядку всякий раз, когда вы вводите «узел» или любую другую команду. Если в вашем PATH нет каталога, в котором установлен ваш новый узел, или если он находится после каталога, в котором находится старый узел, новый узел не будет запущен. Устранить проблему можно так же просто, как запустить:

PATH="/usr/local/bin:$PATH"

Если ваш новый узел установлен в /usr/local/bin (или по другому пути, если он установлен где-то еще). Вам нужно добавить эту строку в .profile или .bashrc в вашем HOME, чтобы правильно настраивать PATH каждый раз, когда вы входите в систему, запускайте новую оболочку.

Чтобы проверить, правильная ли у вас версия узла в /usr/local/bin, запустите:

/usr/local/bin/node -v

Обновить

Глядя на ваш комментарий и обновленный ответ, я уверен, что вы установили Node 4.2.1 вручную (не с brew), и теперь brew не обновляет двоичный файл в / usr / local / bin.

Я бы рекомендовал установить его вручную и контролировать версии. Я покажу вам команды для загрузки исходного кода, настройки, сборки и установки в версионном каталоге и обновления PATH.

Согласно странице загрузки узла, текущая версия - v6.1.0, но если вы хотите конкретно 5.5. 0 или любой другой версии (последняя версия 5.x - v5.9.1), а затем просто измените приведенные ниже команды на нужную вам версию. (Все версии перечислены здесь.)

# change dir to your home:
cd ~
# download the source:
curl -O https://nodejs.org/dist/v6.1.0/node-v6.1.0.tar.gz
# extract the archive:
tar xzvf node-v6.1.0.tar.gz
# go into the extracted dir:
cd node-v6.1.0
# configure for installation:
./configure --prefix=/opt/node-v6.1.0
# build and test:
make && make test
# install:
sudo make install
# make a symlink to that version:
sudo ln -svf /opt/node-v6.1.0 /opt/node

И, наконец, добавьте PATH="/opt/node/bin:$PATH" в ваш .profile или .bashrc (каталог node-v6.1.0 в вашем ДОМЕ и .tar.gz можно удалить или сохранить для дальнейшего использования).

На этом этапе which node должен вернуть /opt/node/bin/node, и версия будет той, которую вы хотите (6.1.0 в этом примере). Если вы хотите протестировать другую версию, установите ее в другой каталог в / opt / node-vXXX и обновите символическую ссылку. Вам не нужно обновлять PATH, только символическую ссылку.

Это больше работы, чем с brew, но вы полностью контролируете, что и где будет установлено. Что мне нравится в этом решении, так это то, что ваши версии никогда не смешиваются или не путаются, и вы можете устанавливать / удалять версии в любое время и быстро устанавливать любую версию по умолчанию.

0
rsp 12 Май 2016 в 16:51

Ваш путь содержит /usr/local/bin перед /usr/local/Cellar. Поскольку версия node, которую вы используете, является версией homebrew, исправьте это с помощью:

PATH="/usr/local/Cellar:$PATH"

В следующий раз, когда у вас возникнут проблемы с пивом, запустите brew doctor, он скажет вам, что делать

0
Thomas Ayoub 12 Май 2016 в 09:14