Узел 5.5.0 уже установлен, но узел -v выбирает "v4.2.1" в OS X и homebrew?
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
, он бы сказал вам, что делать