какой узел дает довольно странный результат - PullRequest
0 голосов
/ 13 февраля 2019

Возможно, это кажется глупым, но когда я запускаю which node сегодня, это дает мне что-то совсем другое, например

/home/hearen/xxx/xxx/node-v0.10.28/bin/node

вместо чего-то вроде

/usr/local/bin/node

Однако, когда я бегу sudo which node:

/usr/local/bin/node

Мне интересно, как это могло произойти?

Мои глупые вопросы

  • как which command работает, чтобы найти путь для команды ;
  • , какой узел точно выбран на основедорожка?как?
  • в моем случае, как я могу использовать /usr/local/bin/node вместо текущего странного /home/hearen/xxx/xxx/node-v0.10.28/bin/node?просто сброс пути поможет?
  • , почему sudo which node дает мне правильный результат?что я пропустил?

Буду признателен за любую помощь:)

Подробнее

nvm

$ nvm --version
0.33.0


$ nvm list
         v6.6.0
         v9.1.0
->     v10.10.0
         system
default -> 6.6.0 (-> v6.6.0)
node -> stable (-> v10.10.0) (default)
stable -> 10.10 (-> v10.10.0) (default)
iojs -> N/A (default)
lts/* -> lts/dubnium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.16.0 (-> N/A)
lts/carbon -> v8.15.0 (-> N/A)
lts/dubnium -> v10.15.1 (-> N/A)

echo $ PATH

/home/hearen/.nvm/versions/node/v10.10.0/bin:/home/hearen/XXX/XXX/oracle-jdk-1.8.0_121/bin:/home/hearen/XXX/XXX/apache-maven-3.3.1/bin:/home/hearen/XXX/XXX/node-v0.10.28/bin:/home/hearen/XXX/XXX/node-v0.10.28/bin:/home/hearen/XXX/XXX/mysql-5.6.39/bin:/home/hearen/XXX/XXX/yosolo-0.0.1-SNAPSHOT:/opt/mozjpeg/bin:/home/hearen/XXX/XXX/git-lfs-2.4.0:/home/hearen/XXX/WorkSpace/Develop/bin:/home/hearen/bin:/usr/local/bin:/usr/bin:/bin:/sbin:/home/hearen/.local/bin:/opt/jdk1.8.0_144/bin:/home/hearen/XXX/XXX/oracle-jdk-1.8.0_121/bin:/home/hearen/XXX/XXX/apache-maven-3.3.1/bin:/home/hearen/XXX/XXX/node-v0.10.28/bin:/home/hearen/XXX/XXX/node-v0.10.28/bin:/home/hearen/XXX/XXX/mysql-5.6.39/bin:/home/hearen/XXX/XXX/yosolo-0.0.1-SNAPSHOT:/opt/mozjpeg/bin:/home/hearen/XXX/XXX/git-lfs-2.4.0:/home/hearen/XXX/WorkSpace/Develop/bin:/home/hearen/bin:/usr/local/bin:/usr/bin:/bin:/sbin:/home/hearen/bin:/home/hearen/.local/bin:/opt/jdk1.8.0_144/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

1 Ответ

0 голосов
/ 13 февраля 2019

Способ работы Node Version Manager и аналогичных пакетов программного обеспечения заключается в добавлении копии и нескольких сценариев-оболочек и / или * 1007.* symlink s в вашем домашнем каталоге пользователя (по умолчанию ~/.nvm) и добавление каталога, содержащего эти сценарии, в переменную среды PATH .Обычно это делается путем изменения сценария запуска оболочки (т. Е. ~/.bashrc или других файлов в зависимости от выбранной оболочки и текущей конфигурации).

Причина, по которой он показывает другой путь при запуске which node с sudo означает, что вы, скорее всего, node.js установлены глобально, а каталог, содержащий эти сценарии-оболочки, не добавлен в root переменную среды пользователя PATH.

В этом можно убедиться, сравнив выходные данные следующих команд:

echo $PATH

И

sudo echo $PATH

Для использования глобально установленногоВ версии узла вы можете удалить строку, которая является источником nvm.sh, из вашего сценария запуска оболочки (а также выйти из системы и снова войти в нее - это навсегда отключит nvm) или сбросить переменную среды PATH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...