私はGruntJを使うために私のUbuntu 14.04にnodeJをインストールしようとしています。
Ubuntuのやり方について読みました ( issues? )ので、これをインストールするために行ったことは次のとおりです。
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
しかし、いや、エラーはまだそこにあります:私はgruntをタイプするとき私はまだ/usr/bin/env: node: No such file or directory
を得ます
私は何をすべきか?
答えを見つけました。万が一それが誰かを助けるのであれば、私はそれをここに投稿します:
シンボリックリンクを作成することで問題が解決します:ln -s /usr/bin/nodejs /usr/bin/node
(私の感謝と+1が bodokaiser への投票)。
注:この投稿はブラウザによる質問であるため、この投稿は完全に重複するものではないと思います。
問題はnodeのバージョンにはありません。代わりに、NodeJSがデフォルトでUbuntuにインストールされる方法です。 UbuntuでNodeアプリケーションを実行するときは、nodejs somethign.js
の代わりにnode something.js
を実行する必要があります。
そのため、端末で呼び出されるアプリケーション名はnodejs
であり、node
ではありません。これが、node
として受け取ったすべてのコマンドを単純にnodejs
に転送するためのシンボリックリンクが必要な理由です。
ln -s /usr/bin/nodejs /usr/bin/node
最新のノードバージョンをアップグレードする必要があると思います
Sudo npm cache clean -f
Sudo npm install -g n
Sudo n stable
nodejsコマンドを使用してubuntu端末上のノードにアクセスできる場合、この問題は次のコマンドを使用して簡単に解決できます。
ln -s /usr/bin/nodejs /usr/bin/node
そしてこれは問題を解決するかもしれない
私の場合、 nodejs-legacyのインストール で問題を解決しました。
Sudo apt-get install nodejs-legacy
やるだけ
$ Sudo apt-get install nodejs-legacy
そしてそれは働き始めるでしょう。
パッケージマネージャからインストールする場合、これはnodejsと呼ばれることがあるので、シンボリックリンクを張る必要があるので、これは間違った命名エラーであることがよくあります。
ln -s /usr/bin/nodejs /usr/bin/node
Nodejsが既にインストールされていて(which nodejs
で確認してください)、他のパッケージをインストールしたくない場合は、rootとして実行できます。
update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99
私はGulpを使用していたとき、私はこのエラーを得ました。
~$ gulp
/ usr/bin/env: 'node':そのようなファイルやディレクトリはありません
/ usr/binディレクトリにはすべての権限があることに注意してください。
~$ ln -s /usr/bin/nodejs /usr/bin/node
これは私のために働きます。
これには2つの解決策があります。
a)PATH変数に "/ usr/local/bin"を含めるように設定します。
export PATH="$PATH:/usr/local/bin"
b)すでにPATHにある "/ usr/bin"へのシンボリックリンクを作成してください。
ln -s /usr/bin/nodejs /usr/bin/node
助けになれば幸いです。
ln -s
は明らかに最も簡単な修正ですが、説明の一部です。
他のパッケージとの競合のため、Ubuntuリポジトリからの実行ファイルはnodeではなくnodejsと呼ばれます。あなたがソフトウェアを実行しているとき、これを覚えておいてください。
このアドバイスは、Sudo apt-get install nodejs
をインストールするときに出ます。
そのため、他の既知のツール(それが何をするのかわかりません。ubuntuリポジトリで知られていますが、16.04ではデフォルトでインストールされません)がその名前空間を占有します。
もしUbuntuがこれを「きれいに」修正する方法をアドバイスを提供してくれたならば、それは素晴らしいことでした。 (衝突は衝突のままです。
あなたのノードをどのようにインストールしたかにもよりますが、ほとんどの場合/ usr/bin /にはないかもしれません。
このコマンドを使用してwhich node
パスを見つけましたが、作業を簡単にするためにこのコマンドを実行できます。
nodepath=$(which node); Sudo ln -s $nodepath /usr/bin/node
上記のコマンドはあなたのノードの位置を取得し、あなたのためにリンクを作成します。
Sudo PATH="$PATH:/usr/local/bin" npm install -g <package-name>
これらのコマンドに従って問題を解決してください。
ステップ1.ターミナルを開いて、
Sudo npm cache clean -f
このコマンドはNPMキャッシュ全体を消去します。
それからパスワードを入力してください
ステップ2。
Sudo npm install -g n
ステップ3.
Sudo n stable
このコマンドを使用して、最新の安定版ノードをインストールできます。
これで、最新バージョンのノードがインストールされます。次の方法でバージョンを確認できます。
node -v
私のケースではリンクは でした _ _は_ 仕事 は以下の通り
ln -s/usr/bin/nodejs/usr/bin/node
しかし、rootとして/ usr/local/bin/lesscを開き、最初の行をnodeからnodejsに変更することができます。
- #!/ usr/bin/envノード
+#!/ usr/bin/env nodejs
このコマンドでコマンドまたはファイル名をln -s /usr/bin/nodejs /usr/bin/node
に変更するだけです
私には受け入れられた答えはまだうまくいきませんでした。ここに示唆されているように私は始めました:
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:ブロックスコープ宣言(let、const、function、class)は、ObjectのModule._compile(module.js:374:25)のexports.runInThisContext(vm.js:53:16)で厳密モードの外部ではまだサポートされていません。 Module.load(module.js:344:32)のFunction.Module._load(module.js:301:12)のFunction.Module.runMain()のModule._extensions..js(module.js:417:10) 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 -v
は3.2.1から6.4.1に変更されました。