51

でノードをインストールしましapt-get install nodejsた。次に、npmをでインストールしましapt-get install npmた。今私が走ろうとするexpressと私は得る

$ express 
/usr/bin/env: node: No such file or directory

このエラーを解決するにはどうすればよいですか?

4

6 に答える 6

106

Ubuntuには、 nodenodejsという同じような名前の2つのパッケージがあります。

nodeこれを行います、

説明-en:アマチュアパケット無線ノードプログラム。ノードプログラムは、TCP / IPおよびパケット無線ネットワーク接続を受け入れ、さまざまなアマチュア無線プロトコルを使用してリモートホストへのゲートウェイ接続を確立できるインターフェイスをユーザーに提供します。

nodejsこれを行います、

説明-ja:Node.jsイベントベースのサーバー側JavaScriptエンジンNode.jsは、RubyのEvent MachineやPythonのTwistedなどのシステムと設計が似ており、影響を受けます。イベントモデルをもう少し進めます。イベントループをライブラリではなく言語構造として提示します。Node.jsには、サーバータスクを処理するための便利なライブラリがいくつかバンドルされています:システム、イベント、標準I / O、モジュール、タイマー、子プロセス、POSIX、HTTP、マルチパート解析、TCP、DNS、アサート、パス、URL、クエリ文字列。

Fedoraも同様のパッケージ命名スキームに従います。このため、のバイナリは元のからnodejs名前を変更する必要がありました。ただし、これは技術的にはコーシャではありません。ほとんどのnodejsプログラム(およびnpmでインストールされたライブラリ)は、ノードのバイナリがであると想定しています。これを回避したい場合、最も簡単な方法は、2つをシンボリックリンクすることです。このルートを使用する場合は、アマチュアパケット無線を処理するパッケージをインストールしないでください。nodejsnodenodenode

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

または、ノードの場合は、を使用nしてインストールしないことをお勧めしnodeます。npm(ノードをインストールします)をインストールしてからnpmを削除し、aptにクリーンアップするように指示します。これを行うには、単に実行します

sudo apt-get install npm
sudo npm install -g n
sudo n latest
sudo apt-get --purge remove npm
sudo apt-get autoremove

のようなシェルスクリプトからでも動作する他のバイナリディストリビューションマネージャーがありますがnvm、私は個人的に好みnます。たった1つのことのaptのように考えてくださいn:それがインストールするノードバイナリ/usr/local/bin

なぜnpmを削除するのですか?そうではなかった。パッケージマネージャーによってインストールされたものだけを削除apt-get --purge removeできます。パッケージマネージャーの外部で動作します。これを行うと、2つのnpmがあります。n latest

  1. を使用してディストリビューション(Debian / Ubuntu)によってインストールされたバージョンapt-get
  2. によってインストールされたバージョンn latest

ディストリビューションの古いバージョンを使用しても意味がありません。さらに悪いことに、そのバージョンが機能する場合、別の場所にインストールされ、Debianインストールディレクトリを想定したDebianの変更が含まれる可能性があります。どちらかまたは両方を使用することをお勧めしますが、両方を使用することはできません。

于 2013-02-16T20:19:30.647 に答える
21

/ usr / bin/nodeから/usr/ bin/nodejsへのリンクを持つnodejs-legacyパッケージをインストールする必要があります

$ sudo apt-get install nodejs-legacy

于 2013-05-05T16:23:29.913 に答える
4

私の場合、PATH環境変数に「〜/ progs / node / bin /」があり、「〜」がenv実際のフルパス( "/ home / myuser / node / bin ")は私の問題を解決しました。

于 2013-03-13T22:35:36.363 に答える
2

このソリューション

export PATH="$HOME/opt/nodejs/bin:$PATH"

この問題を解決しました($ HOME変数が正しく設定されていれば機能するはずです)。また、ホームディレクトリへのパスをハードコーディングする必要がなくなります(たとえば、必要に応じて、.bash_profileを別のアカウント/サーバーで再利用できます)。

于 2015-10-19T17:59:20.987 に答える
0

cmdでこれを行う

sudo apt-get install nodejs-legacy
chmod your folder 700 (optional)
于 2014-09-01T21:49:16.380 に答える
0

免責事項:デプロイメントツールを介して実行されるbashコマンドの場合のみ

注:リモートサーバーでは、ノードコマンドを実行できますが、shipitサーバーなどのデプロイメントツールを介してのようにスローされます/usr/bin/env: ‘node’: No such file or directory。シンボリックリンクを作成すると、エラーが解決されます。

sudo ln -s $(which node) /usr/bin/node
sudo ln -s $(which npm) /usr/bin/npm
sudo ln -s $(which pm2) /usr/bin/pm2
于 2019-11-19T02:37:55.120 に答える