Узел 5.5.0 уже установлен, но узел -v выбирает "v4.2.1" в OS X и homebrew?

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

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 (The node-v6.1.0 каталог в вашем доме и .tar.gz могут быть удалены или сохранены для последующего использования).

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

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

Ваш путь содержит /usr/local/bin до /usr/local/Cellar, С версии node вы используете это homebrew во-первых, исправить это с помощью:

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

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

Другие вопросы по тегам