でノードをインストールしましapt-get install nodejs
た。次に、npmをでインストールしましapt-get install npm
た。今私が走ろうとするexpress
と私は得る
$ express
/usr/bin/env: node: No such file or directory
このエラーを解決するにはどうすればよいですか?
Ubuntuには、 nodeとnodejsという同じような名前の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つをシンボリックリンクすることです。このルートを使用する場合は、アマチュアパケット無線を処理するパッケージをインストールしないでください。nodejs
node
node
node
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
apt-get
。n latest
。ディストリビューションの古いバージョンを使用しても意味がありません。さらに悪いことに、そのバージョンが機能する場合、別の場所にインストールされ、Debianインストールディレクトリを想定したDebianの変更が含まれる可能性があります。どちらかまたは両方を使用することをお勧めしますが、両方を使用することはできません。
/ usr / bin/nodeから/usr/ bin/nodejsへのリンクを持つnodejs-legacyパッケージをインストールする必要があります
$ sudo apt-get install nodejs-legacy
私の場合、PATH
環境変数に「〜/ progs / node / bin /」があり、「〜」がenv
実際のフルパス( "/ home / myuser / node / bin ")は私の問題を解決しました。
このソリューション
export PATH="$HOME/opt/nodejs/bin:$PATH"
この問題を解決しました($ HOME変数が正しく設定されていれば機能するはずです)。また、ホームディレクトリへのパスをハードコーディングする必要がなくなります(たとえば、必要に応じて、.bash_profileを別のアカウント/サーバーで再利用できます)。
cmdでこれを行う
sudo apt-get install nodejs-legacy
chmod your folder 700 (optional)
免責事項:デプロイメントツールを介して実行される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