NodeJをインストールできません:/ usr / bin / env:node:そのようなファイルまたはディレクトリはありません


302

GruntJを使用するために、Ubuntu 14.04にnodeJをインストールしようとしています。

私はUbuntuの異なる方法問題?)について読んだので、これをインストールするために私がやったことは次のとおりです:

sudo apt-get install npm

sudo npm install -g grunt-cli

その後に入力すると、エラーが発生します。

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

だから、私は試しました:

curl -sL https://deb.nodesource.com/setup | sudo bash -

sudo apt-get install -y nodejs

sudo apt-get update

そして再試行してもエラーが発生するので、私は試してみました:

sudo add-apt-repository https://launchpad.net/~chris-lea/+archive/node.js/

sudo apt-get install -y nodejs

私はこのメッセージを持っています:

nodejs is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.

念のためにクリーンアップを試みました:

sudo apt-get autoremove

しかし、いいえ、エラーはまだそこにあります。 /usr/bin/env: node: No such file or directory

私は何をすべきか?

回答:


794

シンボリックリンクを実行すると、問題が解決します。

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

ボドカイザーの回答に対する私の感謝と+1投票)。


97
sudo apt-get install nodejs-legacyこのリンクも作成します
。packages.debian.org/ sid / nodejs

1
symlinkは問題を解決し、開発時間を大幅に節約しました。ありがとう!
Farzad YZ、2015

この修正は真剣に命の恩人です。特に、ここで修正権限ガイドに従っている場合は、docs.npmjs.com / getting
Josh Frankel

ありがとうございました!これにより、Google Cloud Linuxでノードアプリを設定しようとする私の午後を節約できました。
jovan

1
which nodeノードへの正しいパスを取得するために使用する必要があります。したがって、コマンドは次のようになりますln -s "$(which node)" /usr/bin/node
technogeek1995

117

問題はノードのバージョンではありません。代わりに、UbuntuにNodeJSがデフォルトでインストールされる方法です。UbuntuでNodeアプリケーションを実行するときは、nodejs somethign.js代わりに実行する必要がありますnode something.js

したがって、ターミナルで呼び出されるアプリケーション名はであり、ではnodejsありませんnode。単に前方として受け取ったすべてのコマンドへのシンボリックリンクが必要とされている理由はここにあるnodeのはnodejs

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

6
「ln:シンボリックリンク '/ usr / bin / node'を作成できませんでした」エラーが発生した場合、sudoを使用してこのコマンドを実行する必要があります
Suraj Dubey

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

54

最新のノードバージョンをアップグレードする必要があると思います

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

1
ヒントにすぎません。コードの行を4つのスペースでインデントします;)また、nNode.JSに関連付けられているコマンドではありません。
Qix-モニカは2014年

NPMのパッケージの説明に基づく@David :「すべてのノードバージョンをインタラクティブに管理」
frdmn

私の問題を解決しました
criticerz

私はコピーlaravelからプロジェクトをwindows機にubuntu 16.04してlaravel mixとの問題を抱えていたnpm run watchし、このソリューションは、私のために働いたと今で問題がなくなって
AN

29

nodejsコマンドを使用してubuntu端末のノードにアクセスできる場合、この問題は-jsを使用してnodejsとノードのシンボリックリンクを作成することで簡単に解決できます。

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

そしてこれは問題を解決するかもしれません




9

これは多くの場合、誤った命名エラーであることがわかりました。パッケージマネージャーからインストールした場合、binはnodejsと呼ばれる可能性があるため、次のようにシンボリックリンクする必要があります。

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

1
否定的なフィードバックを追加する代わりに、コメントのここで何が問題なのかを知らせてください。そうすれば、私がお手伝いします。特に物事をよりよく管理するのに役立つ場合は、シンボリックリンクの作成に問題はありません。
Ahmad Awais

1
私自身はこのアプローチを好みます。きれいです。
Muhammad Gelbana 16年

8

nodejsがすでにインストールされており(で確認which nodejs)、別のパッケージをインストールしたくない場合は、rootとして次のようにできます。

update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99

これは適切なDebianの方法です。
Tonin

6

gulpを使用していたときに、このエラーが発生しました。

~$ gulp

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

これは、次のコマンドを実行することで削除されました。/usr/binディレクトリにはすべての権限があることに注意してください。

~$ ln -s /usr/bin/nodejs /usr/bin/node

これは私のために働く。


5

ノードのインストール方法にもよりますが、ほとんどの場合、/ usr / bin /にない可能性があります。私の場合、nvmを使用してインストールしたため、ノードは./nvm/versionsにありました。

このコマンドwhich nodeを使用してパスを見つけましたが、作業を簡単にするためにこのコマンドを実行できます。

nodepath=$(which node); sudo ln -s $nodepath /usr/bin/node

上記のコマンドは、ノードの場所を取得し、リンクを作成します。


5

これには2つの解決策があります。

a)「/ usr / local / bin」を含むようにPATH変数を設定します

export PATH="$PATH:/usr/local/bin"

b)PATHにすでにある「/ usr / bin」へのシンボリックリンクを作成します。

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

お役に立てば幸いです。


4

しばらくはln -s明らかに最も簡単な修正は、説明の一部です:

別のパッケージとの競合のため、Ubuntuリポジトリからの実行可能ファイルは、nodeではなくnodejsと呼ばれます。ソフトウェアを実行しているときは、このことを覚えておいてください。

をインストールするときに、このアドバイスが表示されsudo apt-get install nodejsます。

そのため、他のいくつかの既知のツール(私はそれが何をするのかわかりません。ubuntuリポジトリには知られていますが、デフォルトでは16.04にインストールされていません)はその名前空間を占有します。

Ubuntuがこれを「クリーン」に修正する方法をアドバイスした場合は、手作業で行わないとパッケージがどうなるかを考えれば、良かったでしょう。(衝突は衝突のままです... if +いつ発生するか)


1
@ tom-haleの答えは、Ubuntuの方法です。代替案を使用して正しいノードを指定します
kervin


2

私の場合、リンク 次のように機能ません でした

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

ただし、ルートとして/ usr / local / bin / lesscを開き、最初の行をnodeからnodejsに変更できます。

-#!/ usr / bin / envノード

+#!/ usr / bin / env nodejs


2

これらのコマンドに従って問題を修正してください。

ターミナルで:

  1. NPMキャッシュ全体をクリーンアップします。

    $ sudo npm cache clean -f
  2. sudo npm install -g n
  3. Node.jsの最新の安定バージョンをインストールします。

    sudo n stable

これで、Node.jsの最新バージョンがインストールされました。次を使用してバージョンを確認します。

node -v


0

私にとって受け入れられた答えはまだ機能しませんでした。私はここで提案されているように始めました:

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

これを行った後、次のエラーが発生しました:

/usr/local/lib/node_modules/npm/bin/npm-cli.js:85 let notifier = require( 'update-notifier')({pkg})^^^

SyntaxError:オブジェクトのModule._compile(module.js:374:25)のexports.runInThisContext(vm.js:53:16)の厳密モード以外では、ブロックスコープ宣言(let、const、function、class)はまだサポートされていません。 Module.load(module.js:344:32)at Function.Module._load(module.js:301:12)at Function.Module.runMain( module.js:442:10)起動時(node.js:136:18)、node.js:966:3

解決策は、https://nodejs.org/en/download/から最新バージョンのノードをダウンロードすることでした。

それから私はしました:

sudo tar -xf node-v10.15.0-linux-x64.tar.xz --directory /usr/local --strip-components 1

更新がついに成功しました:npm -v3.2.1から6.4.1に変更されました

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