web-dev-qa-db-ja.com

Debian Jessieに最新のNodeJSをインストールする方法

推奨されるアプローチを使用して、Debian JessieにNodeJSとNPMをインストールしました。

apt-get install curl
curl -sL https://deb.nodesource.com/setup | bash -
apt-get install -y nodejs

ただし、これはかなり古いバージョンです(ノードv0.10.38およびnpm 1.4.28)。

新しいバージョンをインストールする最も簡単な方法、たとえば現在のノードはv0.12.4、npmは2.7.4に関する提案はありますか?ソースからのインストールが唯一のアプローチですか?

29
MrColes

Node.jsで使用できるセットアップスクリプトがあります( installation insctructions を参照):

# Adapt version number to the version you want
curl -sL https://deb.nodesource.com/setup_0.12 | Sudo bash -
Sudo apt-get install -y nodejs

少しコメント:私の控えめな意見では、それはcurl | Sudo bash非常に悪い考えです。 root権限でチェックしなかったスクリプトを実行しています。スクリプトをダウンロードして読み、悪意のあるコマンドをチェックし、thatの後に実行することをお勧めします。しかし、それはちょうど私の2セントです。

インストールは 手動インストール手順 に続くいくつかのステップで手動で行うことができます:

  • 古いPPAを削除します(該当する場合)
  • ノードリポジトリのSSHキーを追加する
  • ノードリポジトリをsources.listに追加します
  • パッケージリストを更新し、お気に入りのaptツールを使用してインストールする
48
embik

Debianが提供するパッケージ(_4.2.2_)を使用する代わりに、Node(_0.12_) 彼らのウェブサイトから の最新バージョンをダウンロードできます。これはまた、npmの更新バージョンがあることを意味します。

_.tar.gz_をWebサイトからダウンロードし、cdをそのディレクトリにダウンロードします(ファイルの名前は明らかに私のダウンロードに固有です):

_$ tar -xzvf node-v4.2.2-linux-x64.tar.gz
$ cd node-v4.2.2-linux-x64
_

Binフォルダーを確認すると、nodeとnpmに必要なバイナリが表示されます。

_$ ls node-v4.2.2-linux-x64/bin 
node  npm
_

ここで、フォルダの名前を少し追跡しやすい名前に変更します

_$ mv node-v4.2.2-linux-x64 nodejs
_

ノードの更新を維持したくない場合は、このフォルダーをビンの場所の1つに移動し(私は_~/bin_を使用)、次の手順をスキップします。

ノードのバージョンを簡単に更新できるようにしたい場合は、nodejsフォルダーを追跡できる場所に移動します(_~/nodejs_たぶん?)。次に、ビンの場所の1つに symlink を作成して、完全なパスを書き込まなくてもシェルからバイナリを使用できるようにします。

Nodejsフォルダーをホームディレクトリに置いたとすると、次のようになります。

_$ ln -s ~/nodejs ~/bin/nodejs
_

もちろん、これは任意のビンの場所に移動できます。私は自分のホームディレクトリを使用したので、自分だけが使用できますが、簡単に行うこともできます。

_$ ln -s ~/nodejs /usr/local/bin/nodejs
_

これにより、ホームディレクトリのnodejsフォルダからbinディレクトリに symlink が作成されます(つまり、ホームフォルダのディレクトリに対する更新は、 シンボリックリンクを介して他の場所のフォルダに反映されます) )。ここで、nodejsディレクトリを含むbinフォルダーが _$PATH_環境変数 にあることを確認したいので、ホームディレクトリの_~/.profile_ファイルを開きます。これをファイルの最後に追加したい(パスを変更して、_~/bin/_を使用しなかった場合):

_# Set the node PATH if it exists
if [ -d "$HOME/bin/nodejs/bin" ] ; then
    PATH="$HOME/bin/nodejs/bin:$PATH"
fi
_

これにより、ディレクトリが存在するかどうかが確認され、存在する場合は、PATHに追加されます。私はzshを使用しているので、_~/.zshrc_の行を更新しました:

_export PATH="$HOME/bin/nodejs/bin:$PATH"
_

ターミナルを閉じて再度開き、次のように入力して確認します。

_$ node -v
v4.2.2

$ npm -v
2.14.7
_

シンボリックリンクを作成することで、将来的には、新しい_.tar.gz_をNodejs Webサイトからダウンロードし、それを_~/nodejs_に抽出して、_$PATH_ 環境変数 は自動的に更新されます。

12
Luke

私の場合、推奨されるシェルコマンドを実行しました。

curl -sL https://deb.nodesource.com/setup_6.x | Sudo -E bash -
Sudo apt-get install -y nodejs

問題は、bashスクリプトがmy APT= pinningを更新しなかったため、apt-getがnodesource.comからではなく、debian.orgソースからデフォルトの古いDebianパッケージをインストールしたことでした。

これがapt-cache policy nodejsの問題であることを確認してください。 Candidate: 6.10.2-1nodesource1~jessie1ではなくCandidate: 0.10.29~dfsg-2のようなものが表示されます

pinsourceにピンの優先順位を設定するには、/etc/apt/preferences.d/nodeという名前のファイルを追加するか、次の内容のファイルを追加します。

Package: nodejs
Pin: release o=Node Source
Pin-Priority: 1200

apt-get cache updateを保存して実行します。その後、もう一度apt-cache policy nodejsを試してください。候補者が正しいようであれば、通常どおりインストールしますapt-get install nodejs

4
georgiecasey

公式のnode.jsのドキュメントに従ってください パッケージマネージャーを使用して最新バージョンをインストールできます。

Node.js v6:

curl -sL https://deb.nodesource.com/setup_6.x | Sudo -E bash -
Sudo apt-get install -y nodejs

Node.js v7:

curl -sL https://deb.nodesource.com/setup_7.x | Sudo -E bash -
Sudo apt-get install -y nodejs

後者を実行すると、ノードv7.5.0とnpm v4.1.2がシステムにインストールされました。 nodeエイリアスとnodejsエイリアスの両方がNodeに対して自動的に有効になりました。

2
mrkvon

最新のLinuxバイナリ(.tar.gz)を公式サイトからダウンロードして使用できます https://stackoverflow.com/a/23084499/1197421

1
Ivan Rave