Ubuntu 16.04にノード6.xをインストールすると、実際にノード4.2.6がインストールされるのはなぜですか?


78

これらは、Ubuntu 16.04にノードをインストールするための私の手順でした:

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

公式の指示は次のとおりです。

https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

これを実行した後、実行nodejs --versionはを返しますv4.2.6

私が使用しsetup_6.xたとき、私はで始まるバージョン6がインストールされると仮定していましたか?

私はおそらくあるsetup_6.xべきだと思ったがsetup_6.2.1、そのページは404を返します。

https://deb.nodesource.com/setup_6.x(そこにページがあります)

https://deb.nodesource.com/setup_6.2.1(404を返します)

Ubuntu 16.04にノードの最新の安定バージョンをインストールするにはどうすればよいですか?

編集:

これらは実行後の結果sudo apt-get install -y nodejsです:

sudo apt-get install -y nodejs 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  gyp libboost-python1.58.0 libjs-inherits libjs-node-uuid libjs-underscore
  libssl-dev libssl-doc libuv1-dev linux-headers-4.4.0-18
  linux-headers-4.4.0-18-generic linux-headers-4.4.0-21
  linux-headers-4.4.0-21-generic linux-image-4.4.0-18-generic
  linux-image-4.4.0-21-generic linux-image-extra-4.4.0-18-generic
  linux-image-extra-4.4.0-21-generic linux-signed-image-4.4.0-18-generic
  linux-signed-image-4.4.0-21-generic python-configobj python-pycurl
  python-pyexiv2 python-pyexiv2-doc
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  nodejs
0 to upgrade, 1 to newly install, 0 to remove and 0 not to upgrade.
Need to get 0 B/3,162 kB of archives.
After this operation, 13.2 MB of additional disk space will be used.
Selecting previously unselected package nodejs.
(Reading database ... 329473 files and directories currently installed.)
Preparing to unpack .../nodejs_4.2.6~dfsg-1ubuntu4_amd64.deb ...
Unpacking nodejs (4.2.6~dfsg-1ubuntu4) ...
Processing triggers for doc-base (0.10.7) ...
Processing 1 added doc-base file...
Registering documents with scrollkeeper...
Processing triggers for man-db (2.7.5-1) ...
Setting up nodejs (4.2.6~dfsg-1ubuntu4) ...
update-alternatives: using /usr/bin/nodejs to provide /usr/bin/js (js) in auto mode

編集:

の結果apt-cache policy nodejs

apt-cache policy nodejs
nodejs:
  Installed: 4.2.6~dfsg-1ubuntu4
  Candidate: 4.2.6~dfsg-1ubuntu4
  Version table:
 *** 4.2.6~dfsg-1ubuntu4 500
        500 http://au.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
        100 /var/lib/dpkg/status

apt-cache policy nodejsplease の出力のコピーを編集として質問に含めます。
トーマス・ウォード

NodeJS 4.xでシステムがプルされたという事実は、誤ったスクリプトを実行したか、リポジトリがシステムに正しく追加されなかったことを意味します。現状のままなので、多くの問題が発生する可能性があります。apt-cacheデータを提供して、お使いのコンピューターが見ているものがリポジトリに存在することを確認できる場合は、さらにサポートできる場合があります。
トーマス区

@ThomasW。-投稿するデータを追加しました。
user1063287

1
更新されたデータをありがとう。スクリプトは、何らかの理由で想定されていることを実行しなかったようです。以下の回答では、これが事実であり、スクリプトが実行していることを「手動」で行う方法について詳しく説明しています。これを使用して、NodeJSから最新バージョンを取得できます。スクリプトのように素晴らしく、簡単ではありませんが、それは実際にスクリプトがコアで行うことです。
トーマス・ウォード

1
@pipeありがたいことに、破壊可能なVMでスクリプトを実行する私のような人々がいて、それが何をしているのかを見ることができます。これが、答えの指示を導き出した方法です。そのため、「スクリプト」が行うことを手動で行うことができます。
トーマスウォード

回答:


136

核となる理由は、セットアップスクリプトが正しく実行されなかったことです。したがって、これをサポートするOPからの更新データのおかげで、NodeSourceリポジトリからのデータはapt、スクリプトによって適切に構成されていないため、決して見られませんでした。

そのため、スクリプトはディストリビューションを見つけられなかったか、リポジトリの構成時に台無しになった可能性があります。ネットワークの中断、または中断されてジョブを実行しなかった1,000の理由のいずれかがあった可能性があります。

バージョン4.xがインストールされているのを見ているということは、スクリプトが正しく動作しなかったことを意味します。そのため、スクリプトに必ずしも障害があるわけではありません。これは、より難しい方法で潜在的にこれを行う必要があることを意味しています。

私は指摘する必要があります:スクリプトは実際にはインストールを行いません-実行しているDebian / Ubuntuのバージョンを判別し、データを取得するためにリポジトリを設定するだけです。インストール部分は、実際にはsudo apt-get install手動で実行したステップです。


スクリプトに頼るのではなく、スクリプトが従来の方法で行っていることを行うことができます。手作業で、リポジトリ構成をセットアップし、NodeJSをインストールします。

この作業を手動で行う方法は次のとおりです。基本的にはスクリプトが行うことです(ステップ4を除き、正確なバージョンデータを取得することを確認します)。

  1. 新しいファイルを作成します。 /etc/apt/sources.list.d/nodesource.list

    このファイルはsudoで作成する必要がありますが、ファイルを作成するときは次のようにします。

    deb https://deb.nodesource.com/node_6.x xenial main
    deb-src https://deb.nodesource.com/node_6.x xenial main
    

    次に、ファイルを保存します。(新しいNodeバージョンの場合は、またはなどに置き換えnode_6.xてください)node_7.xnode_8.x

  2. リポジトリのNodesourceからGPG署名キーをダウンロードします。そうしないと、NO_PUBKEYエラーが発生する可能性がありますapt-get update(インストールされていないwget場合curlはこのコマンドで使用し、インストールされていない場合はいずれかをインストールします)。

    curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
    
  3. 手動で実行しsudo apt-get updateます。

    これにより、nodesourceリポジトリからのデータが更新され、apt新しいバージョンが存在することがわかります。

    NO_PUBKEYGPGエラーが発生した場合は、手順2に戻ります

  4. apt-cache policy nodejs出力を確認してください。

    これはスクリプトでは行われませんが、出力にこのような内容のエントリが表示されていることを確認する必要があります(ただし、バージョン文字列として6.xを使用していない場合、バージョンは異なる可能性があります。注意点は、nodesourceを介して提供される新しいバージョン番号があることです)。

    Version table:
        6.2.1-1nodesource1~xenial1 500
           500 https://deb.nodesource.com/node_6.x xenial/main amd64 Packages
        4.2.6~dfsg-1ubuntu4 500
           500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
    

    このようなエントリが表示されず、4.2.6のみが表示される場合は、最初からやり直してください。それ以外の場合は、続行します。

  5. nodejsバイナリをインストールします。 システムで6.xが使用可能であることを確認したので、インストールできます。sudo apt-get install nodejs

  6. nodejs --versionv6.2.1出力で表示または同様になります(v6.バージョン6 で始まる場合、6より新しいバージョンを使用している場合、これは4.2.6でない限り、より高いバージョン番号である可能性があります。行って良いはずです)。


4
これに続いて、Tおよび一致したすべてのポイントの動作が説明されています。どうもありがとうございました。
-user1063287

1
@ user1063287どういたしまして!スクリプトが他の人にとってもうまくいかない場合、これが他の人を助けることを願っています!最新のNodeJSをお楽しみください!
トーマス・ウォード

ああ、だからと思ったときに実際にノード6を持っていないので、バージョン6が必要だと文句を言っています。ありがとう!

おかげで、うまくいきました。私/etc/apt/sources.list.d/nodesource.listは、それが無効になっているというコメントがあることに気付きました-古い0.xバージョンもあり、ノード-vで4.xにいました。わかりやすい説明。
-DaveStSomeWhere

1
curlがデフォルトでインストールされていないことを考えると、代わりにwgetを使用することwget -O - https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
です-gerardw

38

古いバージョンのノードがありました。私がする必要があるのは、古いものをパージすることだけでした:

sudo apt-get purge nodejs npm

そしてv=6、それぞれのバージョンの必要に応じて6を7、8、9に置き換えます(公式のインストール手順を参照)。

v=6
curl -sL https://deb.nodesource.com/setup_$v.x | sudo -E bash -

(curlがインストールされていることを確認してください。)

そして最後に、

sudo apt-get install -y nodejs

ブーム、ノードの最新バージョン。


4
または、https://deb.nodesource.com/setup_7.xノードv7の場合。公式ガイドを
ライナス

2
私はまだv4.2.6をインストールします
フリークノルティエ

1
@FreekNortier Linux Mint 18でもこの問題が発生していましたsudo apt-get install python-software-properties。パージして実行した後にバージョン11をインストールできました。tecadmincodebindでこの提案を見つけました。
ベン

4

Ubuntu 16.04.2バージョンのユーザーの場合(Thomas'postから少し変更され、彼に感謝します)

1.ソフトウェアアップデーターを開きます

2.設定

3.その他のソフトウェア

4.ソースを追加しますが、後ですべての新しいソースオプションを選択することを忘れないでください。


deb https://deb.nodesource.com/node_6.x xenial main
deb-src https://deb.nodesource.com/node_6.x xenial main

5.リロード

6。sudo apt-get update

7. apt-cache policy nodejs//新しいバージョンテーブルを取得し、ソースのセットアップが完了したかどうかを確認する

8。sudo apt install nodejs

9。nodejs --version

今ではすべてが設定されています.......

警告:アップデータパネルからnvidiaカードのLinuxデフォルトドライバを変更しないでください....システムがクラッシュします。...!!!


v4.2.6をインストールします。
プラシャント・プラブハカシン

いいね!私のために働いた
-ejaenv

3

同じ問題がありました。しかし、私の場合は、curlコマンドをアップグレードする必要がありました。-Sオプションを指定して実行すると、問題を確認できます。

curl -s -S https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -

問題を示したもの

curl: (1) Protocol "https" not supported or disabled in libcurl
gpg: no valid OpenPGP data found.

そこで、以下を実行してこの問題を修正しました。

sudo apt-get install curl
sudo apt autoremove
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs

問題を解決
SadeepDarshana

1

https。

deb http://deb.nodesource.com/node_8.x xenial main
deb-src http://deb.nodesource.com/node_8.x xenial main

次のステップ:実行

sudo curl -sL http://deb.nodesource.com/setup_8.x | sudo -E bash -

それから

sudo apt-get install -y nodejs

これは、Ubuntu 16.04 LTSの問題を解決したため、更新されたnodejsバージョンとnpmバージョンをインストールすることで問題を解決します...


0

このリンクを見つけて、Nodejs8____https://www.ubuntuupdates.org/ppa/nodejs_7.xをインストールするのに役立ちます。Nojs8httpsをその行に参加させる必要があったのは、3つ以上のリンクを投稿するにはレベル2である必要があると言っていたからです。それはランダムではあるが何でもあると思う。

インストールする前に、コマンドを実行しました:apt-get remove --purge version nodejs

バージョンがインストールされていないことを確認するには、apt-cached policy nodejsまたはnodejs --versionを実行します

7を8に変更するだけでNode js 8をインストールでき、バージョン8.1.3になりました。それを行うために、私は上で投稿したそのページにあるコマンドを実行しましたが、とにかくここにコマンドがあります:

リポジトリキーをダウンロードします。

curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -

次に、リポジトリをセットアップします。

sudo sh -c "echo deb https://deb.nodesource.com/node_7.x zesty main \ > /etc/apt/sources.list.d/nodesource.list"

sudo apt-get update

sudo apt-get install nodejs

繰り返しになりますが、ノードjs 8が必要な場合は、そのコマンドラインの番号7を8に変更してください。


0

バージョン8のhttps://github.com/nodesource/distributionsの指示に従うことを試みましたが、うまくいきませんでした。私が訪れたhttps://deb.nodesource.com/setup_8.xブラウザに直接コピーして自分のシステム上のファイルにスクリプトを貼り付けnodejs.sh。その後、次のコマンドを実行しました

sudo -E bash nodejs.sh
apt-cache policy nodejs
sudo apt-get install nodejs

コマンドapt-cacheは、8をインストールするためのプリファレンスを持つ2つのバージョンを示しました。インストールファイルは後で削除できます。curlコマンドでスクリプトが適切に表示されたため、ファイルをローカルにコピーしたのはなぜかわかりません。


0

Ubuntu 16をお持ちの場合は、この手順を試してください。このプロセスで求められたときはいつでもあなたのアカウントのパスワードも提供してください。

  1. sudo su -c "echo 'deb https://deb.nodesource.com/node_8.x xenial main' >> /etc/apt/sources.list.d/nodesource.list"

  2. sudo su -c "echo 'deb-src https://deb.nodesource.com/node_8.x xenial main' >> /etc/apt/sources.list.d/nodesource.list"

  3. sudo apt-get update

  4. apt-cache policy nodejsリストされているバージョンにノード8があるかどうかを確認します

  5. sudo apt-get install nodejs

  6. nodejs -vインストールされているノードのバージョンを確認します

これにより、nodejsバージョン8がシステムに正常にインストールされます。他のバージョンが必要な場合は、ステップ1および2でバージョンを変更すると正常に動作します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.