khusamov
@khusamov
ReactJS, NodeJS, TypeScript, Sencha ExtJS

Как установить NVM для всех пользователей?

Как установить NVM (https://github.com/creationix/nvm) для всех пользователей?

Сейчас он устанавливается только в папке root-а (/root/.nvm).
Если попытаться его устанавливать из под какого-либо пользователя, то будет ошибка из-за попытки установки в /root/.nvm которая конечно же недоступна для пользователя.

Вопросы:
1) Как установить NVM для конкретного пользователя?
2) Как установить NVM для root-a таким образом, чтобы node был доступен всем пользователям?

Последнее более желательно конечно же, чтобы не плодить nvm и ноду для всех пользователей.
  • Вопрос задан
  • 1581 просмотр
Решения вопроса 1
khusamov
@khusamov Автор вопроса
ReactJS, NodeJS, TypeScript, Sencha ExtJS
Установка Node.js и NVM для всех пользователей
==============================================

1. Сначала надо установить NVM для root-пользователя.

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | NVM_DIR=/usr/local/nvm bash
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | NVM_DIR=/usr/local/nvm bash


2. Прописать путь к NVM для конкретного пользователя:

export NVM_DIR="/usr/local/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm


В этом случае node и npm будут доступны для пользователя (если заходить через терминал Putty). Но, к сожалению, для shipit эти команды не доступны. Как эту проблему решить пока не знаю.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dev-sasha
Установка Node.js и NVM для всех пользователей

1. Установим NVM для root-пользователя.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.0/install.sh | bash

Так как версии NVM постоянно выходят, смотрим актуальный путь к скрипту тут:
https://nodejs.org/en/download/package-manager/#nvm

ищите "install script"

2. Установим node
nvm install node

3. Даем доступ пользователям на просмотр /root/.nvm
chmod 755 /root
chmod 755 /root/.nvm

4. Заходим под нужным пользователем, например www-data
su www-data

5. Правим .bashrc (я также добавляю 1-ой строчкой путь к node_modules)
vim ~/.bashrc

export PATH=./node_modules/.bin:$PATH 
export NVM_DIR="/root/.nvm"  
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm  
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion


6. Выходим из под текущего пользователя, чтобы перечитался наш измененный баш конфиг файлик.
exit

7. Если мы в докер-контейнере, можем даже выйти из контейнера и перезапустить его.

8. Заходим под нашим пользователем, убеждаемся что нода находиться:
which node
Если не находит, проверьте есть ли доступ на чтение:
ls -la /root/.nvm
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы