#node.js #docker
#node.js #ubuntu #nvm
Вопрос:
Вероятно, это вопрос новичка, но мне интересно, почему, когда я устанавливаю узел с nvm, он доступен только для этого пользователя (он не «глобальный»).
Допустим, я захожу на сервер с пользователем «admin»:
curl https://raw.githubusercontent.com/creationix/nvm/v0.7.0/install.sh | sh
source ~/.profile
nvm install 0.10.30
nvm use 0.10.30
node -v
# outputs v0.10.30
Узел запущен и работает для этого пользователя, но когда я переключаюсь на корень:
su
node -v
Он отображает:
The program 'node' can be found in the following packages:
* node
* nodejs-legacy
Try: apt-get install <selected package>
Почему это? Есть ли способ установить узел и сделать его доступным для всех пользователей? (Я не хочу переустанавливать его каждый раз, когда мне это нужно для нового пользователя.)
Комментарии:
1. потому что только пользователь root может устанавливать различные файлы в системные каталоги, например, / usr/ bin и еще много чего. как обычный пользователь, вы ограничены тем, где вы можете писать материал, который обычно является только вашим собственным домашним каталогом.
/home/admin/bin
маловероятно, что он находится в $PATH любого другого пользователя.
Ответ №1:
Проблема в том, что NVM устанавливает node.js в локальный каталог пользователя и обновляет .profile этого пользователя.
Вот однострочный скрипт, который может скопировать вашу установку в /usr/local/bin, где каждый может использовать node.js:
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local
Комментарии:
1. Для меня это: n = $ (какой узел); n = $ {n%/bin/ node}; chmod -R 755 $ n / bin / *; sudo cp -r $ n / {bin, lib,share} /usr/