永続的なノード/ usr / bin / env:node:そのようなファイルまたはディレクトリはありません


108

私はnodejsをインストールしました:

apt-get install nodejs

それから私はnpmを使ってインストールしました:

apt-get install npm

そして、私は永遠に使用してインストールしました:

npm install forever -g

今私は私のプロジェクトに行きます /var/www/myproject

そして実行しよう forever start server.js

次に、次のメッセージが表示されます。

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

誰が何が起こっているのか教えてもらえますか?



1
このバグが発生し、Node Version Managerを使用しています。
munchschair 2017

回答:


270

編集:2018年12月の時点で、これは正しい方法ではなくなりました。他の2つの答えを参照してください。

nodejs実行可能ファイルをノードにシンボリックリンクする必要がありますsudo ln -s "$(which nodejs)" /usr/local/bin/node。これは、「apt-get install node」を実行すると、無関係のパッケージがインストールされるため、競合しないように別の名前を選択する必要があるためです。


4
$(which nodejs)とは何ですか?何かを貼り付けるコードです。コピーまたはコピーするだけですか?
Marc Rasmussen

11
"$(which nodejs)"は、nodejs実行可能ファイルのパスを取得します。「$()」の中に何かを置くと、それが実行され、それを含むコマンドに挿入されます
chedabob

2
@chedabob同じ問題に直面しましたが、コマンドを実行しているときにまだ解決していませんでした。lnを取得しました:シンボリックリンク '/ usr / bin / node'を作成できませんでした:ファイルが存在します
DASADIYA CHAITANYA

@ dasadiya-chaitanyaその場合、次のコマンドを実行して、既存のファイルが正しいノード実行可能ファイルを指していることを確認してください。ls -lart / usr / bin / node。シンボリックリンクが正しいバイナリを指していない場合は、その場合は削除してください。そして、以下を再実行します。sudo ln -s "$(which nodejs)" / usr / bin / node
brownmamba

4
DebianとUbuntuにはnodejs-legacy、シンボリックリンクを提供するパッケージがあります。手動で行う必要はありません。apt-get install nodejs-legacy問題を修正する正しい方法です。以下の私の答えを参照してください。
クレマンシュライナー

45

受け入れられた答えは問題を修正しますが、少なくともDebian Jessie and forwardおよびUbuntu 14.4 and forward 1でそれを行う正しい方法は、nodejs-legacyをインストールすることです

apt-get install nodejs-legacy

その理由は、Debianにはすでに/ usr / bin / nodeを提供するパッケージ(ノード)があり、nodejs ノードバイナリを/ usr / bin / nodejsにインストールする必要があったためです。

nodejsレガシーパッケージは、/ usr / binに/ nodejsへの/ usr / binに/ノード(ととの競合からシンボリックリンクを提供するノードパッケージ)。

出典:[CTTE#614907] node / nodejs競合Debianバグ#614907の解決:node:名前がnode.jsインタープリターと競合します


これはDebian / Ubuntu +1での正しい方法であり、OSに精通していない人にとっては素晴らしいコンテキストです。
リゲマー2018

18

最新のノードバージョンに更新することをお勧めします

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