web-dev-qa-db-ja.com

NVMとNode.js-すべてのユーザーに推奨されるインストール

すべてのユーザーが使用できるようにnvmの推奨インストールはありますか?これに関してウェブ上で何かを見つけることができません。

これは私がやったことです

  • 共通ディレクトリにnvmをインストールしました
  • すべてのユーザーの.profileにnvm.shスクリプトの場所を配置します
  • nvm/aliasディレクトリを作成しました(これが他のユーザーに対してここにない場合、nvmは不平を言います)

各ユーザーは、「nvm use」を実行するか、デフォルトでプロファイルに配置する必要があります

より良い方法があるかどうかわからない?

ありがとう

54
jadent

ここに私がやったことがあります:

  1. /opt/nvmにルートとしてnvmをインストールしました。適切な場所のように思えた。

    # git clone [email protected]:creationix/nvm.git /opt/nvm
    
  2. ディレクトリ/usr/local/nvmを作成しました。これはダウンロードが行われる場所です($NVM_DIR

    # mkdir /usr/local/nvm
    
  3. ディレクトリ/usr/local/nodeを作成します。これがNPMのグローバルなものの行き先です。

    # mkdir /usr/local/node
    
  4. 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"
    
  5. シェルセッションに再ログインし、デフォルトのノードバージョンを設定します。

    # nvm install 0.10
    # nvm alias default 0.10
    

これで、次回シェルセッションにログインしたときに、すべてのユーザーのノードバイナリがPATHにあるはずです。 NPMは/usr/local/nodeプレフィックスにグローバルなものをインストールします。

50
Tim Smart

他のユーザーがアクセスできるように、ノードのコピーをグローバルに1つインストールするのが最善です。これを行うには、次のコマンドを実行します(プロンプトでユーザーのパスワードを入力します):

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

この賞賛は、nvmを介してアクティブにしたノードのバージョンを/usr/local/ディレクトリおよびすべてのユーザーがアクセスできるように権限を設定します。

動作することを確認するには、rootユーザーになり、別のwhichコマンドを実行して、そのノードが/usr/local/bin

Sudo -s
which node

システム全体にインストールされているノードのバージョンを変更する場合は、vXX.XX.XXを使用して別のnvmを実行し、ユーザーのノードを目的のバージョンに切り替えてから、上記の最初のコマンドを再実行してシステムディレクトリ。

30
Glowin
  1. ルートとしてログイン:Sudo -s
  2. Nvmをインストール: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
  4. /etc/profile.d/nvm.shを実行します
  5. インストールノード:nvm install node
  6. オプションで、npmを次のように更新します:npm install -g npm
15
Biscar

LJHarbはこれをグローバルにインストールしないことを推奨しているため、サーバーにログインするときにnvmをインストールするスクリプトを作成することにしました。 may loginという複数のユーザーが設定されていたが、pm2へのアクセスが必要であったため(アプリケーションの1つを監視するため)、これが必要でした。

/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'
3
matth

グローバルな使用のために設計された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を使用してグローバルノード環境を管理するさまざまな方法を試しましたが、常に問題が発生したEdgeのケースに遭遇しました。最後に、私にとって最適なのは、いくつかのバージョンのノードをWebサイトからダウンロードし、/ usr/localに解凍することでした。次に、希望するバージョンでパスを更新します。例えば.

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

注:ノードパスをchmod 777するか、1人のユーザーを管理する必要があります。

1
Brendon