Подтвердить что ты не робот

NVM & Node.js - Рекомендуемая установка для всех пользователей

Есть ли рекомендуемая установка для nvm, чтобы все пользователи могли ее использовать? Я не могу найти что-либо в Интернете относительно этого.

вот что я сделал

  • установлен nvm в общем каталоге
  • поместите файл nvm.sh script locationin.profile для всех пользователей
  • создал каталог nvm/alias (nvm жалуется, если это не для других пользователей)

то каждый пользователь должен либо запустить "nvm use", либо поместить его в свой профиль по умолчанию

Не уверен, есть ли лучший способ?

спасибо

4b9b3361

Ответ 1

Вот что я сделал:

  • Установлен nvm в /opt/nvm как пользователь root. Казалось, что это подходящее место.

    # git clone [email protected]:creationix/nvm.git /opt/nvm
    
  • Создал каталог /usr/local/nvm. Здесь будут загружаться загрузки ($NVM_DIR)

    # mkdir /usr/local/nvm
    
  • Создайте каталог /usr/local/node. Вот где будет идти глобальный материал NPM:

    # mkdir /usr/local/node
    
  • Создал файл с именем nvm.sh в /etc/profile.d со следующим содержимым:

    export NVM_DIR=/usr/local/nvm
    source /opt/nvm/nvm.sh
    
    export NPM_CONFIG_PREFIX=/usr/local/node
    export PATH="/usr/local/node/bin:$PATH"
    
  • Перейдите в сеанс оболочки, затем установите версию node по умолчанию.

    # nvm install 0.10
    # nvm alias default 0.10
    

Теперь двоичные файлы node должны быть в PATH для всех пользователей при следующем входе в сеанс оболочки. NPM установит глобальные вещи в префикс /usr/local/node.

Ответ 2

Лучше всего установить одну копию node в глобальном масштабе, чтобы другие пользователи могли получить к ней доступ. Для этого запустите следующую команду (введите свой пароль пользователя в командной строке):

n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local

Это commend копирует любую версию node, которую вы активировали через nvm, в каталог /usr/local/ и устанавливаете разрешения, чтобы все пользователи могли получить к ним доступ.

Чтобы проверить, что это работает, станьте пользователем root и выполните другую команду, чтобы убедиться, что node теперь установлен на /usr/local/bin:

sudo -s
which node

Если вы когда-либо захотите изменить версию node, установленную на системной основе, просто используйте другое приложение nvm vXX.XX.XX, чтобы переключить пользователя node на нужную вам версию, а затем повторно запустить первый чтобы скопировать его в системный каталог.

Ответ 3

  1. Войдите в систему как пользователь root: sudo -s
  2. Установите nvm: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | NVM_DIR=/usr/local/nvm bash curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | NVM_DIR=/usr/local/nvm bash
  3. Создал файл с именем nvm.sh в /etc/profile.d со следующим содержимым: #!/usr/bin/env bash export NVM_DIR="/usr/local/nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm #!/usr/bin/env bash export NVM_DIR="/usr/local/nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
  4. Запустите /etc/profile.d/nvm.sh
  5. Установить узел: nvm install node
  6. При необходимости обновите npm с помощью: npm install -g npm

Ответ 4

Так как LJHarb рекомендует не устанавливать это глобально, я решил создать script для установки nvm при входе на сервер. Мне это нужно, так как у меня было несколько пользователей, которые могли войти в систему, но нуждались в доступе к pm2 (для мониторинга одного из наших приложений).

Создайте script в файле/etc/profile.d/(например, с именем nvm.sh):

#!/bin/bash
NODE_VER=6.2.2
if [ ! -f ~/.nvm/nvm.sh ]; then
    # May need to be updated with the latest nvm release
    wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
fi
source ~/.nvm/nvm.sh
if ! command -v node | grep -q $NODE_VER; then
    echo "Node is not installed"
    nvm install $NODE_VER
    nvm alias default $NODE_VER
fi

Для нашего приложения нам понадобилось pm2, разделяемое между пользователями:

if ! command -v pm2 &>/dev/null; then
    echo "pm2 not installed"
    npm install -g pm2
fi
# Share pm2 configuration between users
alias pm2='env HOME=/opt/sora pm2'

Ответ 5

Существует также этот форк nvm, предназначенный для глобального использования: https://github.com/xtuple/nvm

wget -qO- https://raw.githubusercontent.com/xtuple/nvm/master/install.sh | sudo bash

sudo chown -R $USER /usr/local/nvm

nvm install 8

Обновление: я пробовал различные способы использования xtuple nvm, а также n для управления глобальной средой узлов, и я всегда сталкивался с крайними случаями, когда возникали проблемы. В конце концов, для меня лучше всего было загрузить несколько версий узла с их сайта и распаковать их в /usr/local. Затем обновите мой путь до версии, которую я хочу. например

export PATH=/usr/local/node-v7.10.1-linux-x64/bin:$PATH

Примечание: вам, вероятно, придется chmod 777 путь узла или выделить одного пользователя для управления им.