nodejsとubuntu 12.04のノード


363

私はここに与えられ指示からubuntuにnodejsをインストールしました

node --versionがターミナルで書くとき、私はこれを見ます:
-bash: /usr/sbin/node: No such file or directory

/usr/sbin/ただし、ディレクトリにノードが表示されます。

ライティングnpm --versionショー1.3.5
ライティングnodejs --versionショーv0.10.15

また、/usr/bin/ディレクトリにノードが表示されます。

だから、どうやって仕事を始めるのnodeですか?

また、bashの代わりにzshを使用すると、nodeコマンドが機能します。


1
「/ usr / bin /にノードが表示される」場合、出力はls -l /usr/bin/nodeどうなりますか?
randunel 2013

1
@randunelこの出力を取得しましたlrwxrwxrwx 1 root root 22 Jan 1 2013 /usr/bin/node -> /etc/alternatives/node
ジャティン

シェルrcに変更を加えましたか?
ランデュネル2013

これは編集後のシェルの問題のように見えますが、export | grep PATH使用しない場合は何が出力されzshますか?(/usr/binとりわけ印刷する必要があります)
randunel 2013

1
ソリューション+ここでの説明:stackoverflow.com/questions/21168141/…–
throbi

回答:


599

シンボリックリンクを手動で作成する必要があります/usr/bin/node。bash互換シェルのショートカット:

sudo ln -s `which nodejs` /usr/bin/node

または、非標準のシェルを使用している場合は、次のコマンドで見つけたパスをハードコードしますwhich nodejs

sudo ln -s /usr/bin/nodejs /usr/bin/node

後で編集

あなたが投稿したリンクでこの説明を見つけました

ノードパッケージ(Amateur Packet Radio Node Program)と名前の競合があり、nodejsバイナリの名前がnodeからnodejsに変更されました。/ usr / bin / nodeを/ usr / bin / nodejsにシンボリックリンクする必要があります。そうしないと、競合を回避するためにアマチュアパケットラジオノードプログラムをアンインストールできます。

後で後で編集

私がこれに答えてから久しぶりです。私がここに投稿した解決策は私のために何度かうまくいきましたが、ユーザーはコメントの中でさらにいくつかの解決策を報告しています:

@ user229115から

sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

AskUbuntu(ユーザーleftium)から

sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs

はい!ただし、を使用するzshと、nodeコマンドは機能します。
Jatin 2013

1
また、アマチュアパケットラジオノードプログラムをアンインストールするにはどうすればよいですか?私は試しましたsudo apt-get remove nodeが、それは言うPackage node is not installed, so not removed
ジャティン

これをアンインストールする必要はありません。コメントの後、これはノードパッケージの問題ではなく、シェルの問題のように見えます。
ランデュネル2013

@randunelの答えはうまくいき/usr/bin/env nodeませんでした。@BennyMcBenBenのソリューションは機能しました
francoisrv

2
@Tinoの答えは正しいものnodejs-legacyです。パッケージの説明を参照してください。@BennyMcBenBenによってリンクされた回答も同様の手順で更新されました。
トリカス

88

これだと思います:

sudo update-alternatives --install / usr / bin / node node / usr / bin / nodejs 10

Debianの代替案を使用する。


3
これは、受け入れられた回答よりも優れたオプションのようです。手動で/ usr / bin /フォルダーを変更せず、インフラストラクチャを代替コマンドに使用しています
Dominik Fretz

試したことはありませんが、update-alternativeドキュメントを確認しました。それが本当に機能する場合、それはより良い解決策です:)
randunel

3
これが何をしているのか、もっと具体的に言えますか?
bcorso 14年

@DominikFretzええ 最終結果は、Debian固有のコマンドを使用した場合とPOSIX準拠のコマンドを使用した場合とでまったく同じです。(あなたはそうすることができたでしょうupdate-alternatives --install /usr/local/bin/fribjazt node /usr/bin/nodejs 10。)一人一人に、しかし私は平野を好むln
小次郎2016

2
私がしなければならなかったsource ~/.bashrcこれを有効にするために
iNulty

64

どうやらソリューションはUbuntuのバージョンによって異なります。以下はUbuntu 13.10で私のために働いた:

sudo apt-get install nodejs-legacy

HTH

編集:経験則:

インストールしnodejsたが/usr/bin/nodeバイナリが見つからない場合は、もインストールしnodejs-legacyます。 これは、不足しているソフトリンクを作成するだけです。

私のテストによると、Ubuntu 17.10 /usr/bin/node以降にnodejsは、インストール後に既に互換性ソフトリンクが設定されているためnodejs-legacy、これらのリリースには必要がないため、これらのリリースにはありません。


nodejs-legacyはもう維持されていないようです。最新のビルドは2013
francoisrv 2014年

8
nodejs-legacyあまりメンテナンスは必要ありません それは、sudo ln -s nodejs /usr/bin/node少なくともLTS 14.04のと同様のソフトリンクを追加するだけです
Tino

4
Ubuntu 14.04では、nodejsとnodejs-legacyは同じバージョンのノード(0.10.25)をインストールします。@Tinoへの+1。
Mark E. Haase 2014

Debian Jessieでも動作します。これは物事が意図されている方法であるため、これは受け入れられた答えである必要があります。アマチュア無線パッケージを使用している人だけがこれを行うべきではありません。彼らがchromium-bsuのように無線パッケージの名前を変更しなかったのはなぜだろうと思います。
ジェローム2016年

これにより、システム上にノードの2つのインスタンスが生成され、これは維持されなくなります。代わりにnodejsにリンクすることをお勧めします。
PodTech.io 2018年

30

Ubuntu 14.04でも同じ問題があります。

「nodejs」をインストールして機能しましたが、「nodejs」コマンドを使用した場合のみです。「ノード」を使用しようとしても、何も起こりません。

次の方法でこの問題を修正しました:

  1. nodejs-legacyをインストールする

    sudo apt-get install nodejs-legacy

その後、コマンドラインで「node」と入力すると、「/ usr / sbin / node:No such file or directory」というエラーメッセージが表示されます。

  1. 次に、私がやったことは、「nodejs」のシンボリックリンクです。

    sudo ln -s / usr / bin / nodejs / usr / sbin / node

4
お使いのシステムに変なものがあります。 nodeにではなくにインストールされることになって/usr/bin//usr/sbin/ます。node以前にhamradioからUbuntu パッケージをインストールしたことがあり(packages.ubuntu.com/trusty/all/node/filelistを参照)、hash -rシェルレベルで実行するのを忘れて、シェルがまだ間違ったパスを記憶しているように見えます。2つ目lnも同様に修正されましたが、そのシェルを終了した後は必要ありません。
Tino、

:ところで、でも間違った答えが原因のすべての非常によく似た名前の3つのパッケージにすべての問題を説明するための優れているnode/usr/sbin/node完全に異なる何かのため)、 (nodejs/usr/bin/nodejsnodejs-legacy/usr/bin/node、パッケージに依存しますnodejs)。
Tino

これは私にも起こりました。少し前にソースからノードをインストールしました。 node -v => 0.10.2ながらnodejs -v => 5.5.0。コマンドを実行すると、which node常にこのローカルインストールが指定されます。結局、私はunset NODE_PATHそれを修正するためにローカルインストールを指すようにしなければなりませんでした。この後、node -v => 5.5.0およびnpm install ノード=> 5.0に応じて、パッケージの仕事に始めました。
CHsurfer 2016年

11

これは私にも起こりました。

node -v => 0.10.2
nodejs -v => 5.5.0

問題は、以前にソースからノードをインストールしたことでした。ランニング

which node

常にこのローカルインストールをポイントしました。また、

echo NODE_PATH

ローカルインストールをポイントしました。

ソースのインストールでディレクトリを削除しても役に立たなかった。ノードコマンドを壊しただけです。最後に、NODE_PATH環境変数の設定を解除し、nodejsを削除して再インストールすることでうまくいきました。

unset NODE_PATH
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs

この後、

node -v => 5.5.0

そして、npm installはNode => 5.0に依存するパッケージで機能するようになりました。


これでうまくいきました。私はそれを見つける前に1時間いじりました。
Dustin Fraker、2016

11

ノードバージョンマネージャ(nvm)

複数のnodejsバージョンをインストールしてそれらを簡単に切り替える場合は、Node Version Mangerを使用することをお勧めします。また、命名の問題も解決します(nodevs nodejs

それは非常に簡単です:

nodejsバージョンをインストールします。

$ nvm install 4.4

これで、すでにインストールされているバージョンに加えてnodejs 4.4があり、nodeコマンドを使用して、新しくインストールされたバージョンに到達できます。

$ node -v    // The new version added by nvm.
v4.4.5
$ nodejs -v  // The OS version is untouched and still available.
v0.10.25

追加のnodejsバージョンをインストールして、それらを簡単に切り替えることができます。

$ nvm install 6.2
$ nvm use 6.2
Now using node v6.2.1 (npm v3.9.3)
$ node -v
v6.2.1
$ nvm use 4.4
Now using node v4.4.5 (npm v2.15.5)

2
これで私の問題は解決しました。おかげで、Ubuntu 14.04サーバーにNode.jsをインストールnvmする方法
Huy Nguyen

1
これでうまくいきました。また、ここで利用可能ガイド:digitalocean.com/community/tutorials/...
公園コルネリス

10

私はこれすべてに不慣れですが、私にとっては簡単なエイリアスが機能しました:

alias node='env NODE_NO_READLINE=1 rlwrap nodejs'

少なくともbashで直接物事を実行し、.jsファイルを実行するため。


なしで働いたrlwrap。ありがとう!
シュリック、2017年

ありがとう@Phill、あなたは素晴らしいです!
Yusril Herlian Syah

9

どのように公式の説明書を使用する方法についてnodejsサイト

v7の場合:

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

v6の場合:

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

v4の場合:

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

私はこれらをWindows bash(Linuxのサブシステム経由-14.04)とraspbian(ARM Debianベース)からテストしました。sudo apt-get install -y nodejs最初にセットアップスクリプトを実行せずに実行すると、ノード0.10になります。

ビルドが必要なネイティブnpmモジュールのインストールを計画している場合は、次も実行します。

sudo apt install -y build-essential

注:これは、すべてのアーキテクチャにわたるDebianベースのディストリビューションの推奨パスです。


7

@randunelの正解に追加します(SOにはまだコメントできません)。

また、/ usr / local / bin / nodeを/ usr / bin / nodejsにシンボリックリンクする必要もありました。

sudo ln -s /usr/bin/nodejs /usr/local/bin/node

どうやら、これは/ usr / bin / nodeコマンドを上書きしていたようです。

それがどのように設定されたかはわかりませんが、上記がうまくいかない理由を理解するのが面倒だったので、それが他の誰かの助けになることを願っています。


7

遅い答えですが、最新情報については...

ノードgithubインストールのreadmeからの推奨方法を使用してnode.jsをインストールする場合は、古いapt-getリポジトリからインストールするのではなく、nodesourceブログ記事の指示に従うことをお勧めします。node.jsは次のnodeコマンドを使用して実行する必要があります。nodejsコマンドと同様に、新しいシンボリックリンクを作成する必要はありません。

この記事の方法は次のとおりです。

# Note the new setup script name for Node.js v0.12
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

# Then install with:
sudo apt-get install -y nodejs

これはv0.12用であり、遠くない将来に古くなる可能性があることに注意してください。

また、企業のプロキシ(私のような)の背後にいる場合は、プロキシに必要な環境変数を保持するために、sudoコマンドに-Eオプションを追加する必要があります。

curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -



4

Ubuntuインスタンスを実行しているAWS EC2インスタンス(Ubuntu 16.xでテスト済み)を使用している場合は、次の手順でうまくいく場合があります。

    sudo apt-get update
    sudo apt-get --purge remove node -y
    sudo apt-get --purge remove nodejs -y
    sudo apt-get --purge remove legacy-node -y
    sudo rm / usr / bin / node
    curl -sL https://deb.nodesource.com/setup_6.x | sudo bash-
    sudo apt-get install nodejs -y
    ノード-v

すべてが正しい場合、最後のコマンドは次のような出力をします:v6.xx

そうでない場合は、以下を実行します。

    sudo ln -s / usr / bin / nodejs / usr / bin / node

うまくいけば、これが役立ちます。それは魔法のように私を助けました(へへ)。


3

同じ問題のシンボリックリンクが役立ちました:sudo ln -s / usr / bin / nodejs / usr / bin / node sudo npm install -g phantomjs-prebuilt

順調に進んだ


2

nodejsをインストールする最良の方法は、NVM(Node Version Manager)を使用することです

以前のバージョンを削除:

$ sudo apt-get purge node
$ sudo apt autoremove

また$ sudo rm -rf node_modules、このフォルダを含むディレクトリにあるすべてのnode_modulesを削除します。

NodeとNodejsは技術的には同じものです。名前だけが変わった。

最初にnvmをインストールまたは更新します

ルートとして実行する

$ sudo su 

その後

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | バッシュ

または

$ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | バッシュ

パスへのnvmをチェックする

$ソース〜/ .profile
$ nvm ls-remote

リストに関するエラーが発生した場合は、gitをインストールしてください。

$ sudo apt-get install git

再実行:

$ nvm ls-remote
または
$ sudo nvm ls-remote

$ nvm install version-you-require 

バージョンの確認

#ノード-バージョン
nvmはversion-you-requireを使用します

情報提供:

https://www.digitalocean.com/community/tutorials/how-to-install-node-js-with-nvm-node-version-manager-on-a-vps


1

シンボリックリンクを作成しましたが、まだ機能していませんでした。

端末(パテ接続)を再起動するのを忘れました。私がそれをシンボリックリンクなしで動かした後:)


1

絶対初心者に役立ちます

答えはわかりましたが、nodeコマンド(パラメーターなし)がREPL read-eval-print-loopモードでノードを開始して未加工のJavaScriptコードを実行することを指摘したいと思います。

nodeコマンドを使用するもう1つの方法はjs、パラメータとしてファイルを提供することです。これが主に使用する方法です。


0

既存のノードとnodejsを削除するかどうかはオプションですが、代わりに最新の7.x nodejsをインストールする必要があります。

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

0

NVM(Node Version Manager)を使用するだけ-https ://github.com/creationix/nvm

Node.jsを管理するための標準になりました。

新しいバージョンが必要な場合:

nvm install NEW_VER
nvm use XXX

何かがうまくいかない場合は、いつでも戻ることができます

nvm use OLD_VER


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