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


85

apt-get installとすべての依存関係を介してノードjsとnpmをインストールしてから、browserifyをインストールしました

npm install browserify -g

プロセスを経て、正しくインストールされているように見えますが、このウォークスルーに従って単純なバンドルを実行しようとすると

エラーが発生します:

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

ここに画像の説明を入力してください


うーん、ノードの実行可能ファイルが/ usr / binまたは/ usb / bin / envにあるかどうかを確認する必要があります。少なくとも、これは操作固有の問題です。browserify localをインストールすることで、これを解決できる場合があります。
bodokaiser 2014年

私のbrowserfy実行可能ファイルは/ usr / local / bin /にありますが、パスが台無しになっている他の何かを呼び出していますか?
エドゥアルドデニス

3
ああ、あなたはnodejsをubuntuのノードにシンボリックリンクする必要があります。Ubuntuはノードをnodejsとしてインストールし、システムがノードとしても検出できるように、「ln -s / usr / bin / nodejs / usr / bin / node」のような操作を行う必要があります
bodokaiser 2014年

1
それはそれを解決しました:-PIは過去1時間これに頭を悩ませてきました、あなたは受け入れるために答えの形式で入れてくれませんか?
エドゥアルドデニス

1
それがうまくいったことをうれしく思います。それが本当にこの問題なのかどうかは
わかり

回答:


246

一部のLinuxディストリビューションは、nodejsを「node」実行可能ファイルとしてではなく「nodejs」としてインストールします。

この場合、「ノード」バイナリの後に多くのパッケージがプログラムされているため、手動で「ノード」にリンクする必要があります。「python」にリンクされていない「python2」でも同様のことが起こります。

この場合、簡単なシンボリックリンクを行うことができます。パッケージバイナリをインストールするLinuxディストリビューションの/usr/bin場合

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

5
はax24-node(nodejsとは無関係)であるため、これはUbuntu14.04のソリューションではありません/usb/sbin/node/usr/bin/node/usr/sbin/node$PATH
Gareth 2014年

8
これを解決する正しい方法は、を使用することupdate-alternativesです。ここに私の答えを参照してくださいstackoverflow.com/a/24592328/454615
airtonix

1
実際にこれについてもっと考えています...このようにバイナリをシンボリックリンクすることは、システムを壊そうとしている場合に採用するのに最適な習慣です。
airtonix 2014年

ええ、私はそれが微妙な方法でそれを壊していることに気づきました、あなたはより良い解決策を見つけましたか?
エドゥアルドデニス

1
@EduardoDennisはい、使用しますupdate-alternatives。それはこれらの正確な状況のために存在します。
airtonix 2015年

52

新しい答え:

  1. システムパッケージマネージャー(dnf、apt-getなど)を介してインストールしたnodejsパッケージをアンインストールし、アップグレードごとに再作成していたばかげたシンボリックリンクを削除します(笑)。
  2. NVMをインストールし、
  3. nvmを使用してnodejsをインストールします:nvm install 6

古い答え:

シンボリックリンクの作成や他のノードパッケージのインストールについての話は偽りであり、持続可能ではありません。

これを解決する正しい方法は次のとおりです。

  1. apt-getを使用してnodejsパッケージをインストールするだけです。
  2. update-alternativesnodejsバイナリが責任があることを示すために使用します#!/usr/bin/env node

そのようです :

sudo apt-get install nodejs
sudo update-alternatives --install /usr/bin/node nodejs /usr/bin/nodejs 100

これは現在、パッケージのアップグレード、dist-upgradesなどを通じて持続可能になっています。


これは私の問題の解決策ですstackoverflow.com/questions/26155795/…–
Alon Carmel

おかげで、素晴らしい解決策、シンボリックリンクのトリックはネット上で最も繰り返されたものですが、私にはうまくいきませんでした。
エミリアティル2015年

現在の実際の正解は、LinuxではNVMを使用し、WindowsではNodistを使用することです。
airtonix 2016年

35

実行しますapt-get install nodejs-legacy

特定のLinuxディストリビューションでは、node.jsのバイナリ名が変更されており、多くのnode.jsパッケージと互換性がありません。パッケージnodejs-legacyは、これを解決するためのシンボリックリンクを提供します。


2
これは、/usb/sbin/nodeax24-node(nodejsとは無関係)であるため、Ubuntu14.04のソリューションです。/usr/bin/node/usr/sbin/node$PATH
Gareth 2014年

私を助けてくれました。ありがとう!
ラピダス2014年

apt-get installnodejs-legacy。Windowsの場合、ユーザー「apt-get」は内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません。
スウィフト

7

NVMまたはNodejsバージョンマネージャーを使用してNodejsをインストールすることもできます。バージョンマネージャーを使用することには多くの利点があります。そのうちの1つは、この問題について心配する必要がないことです。


指示:


sudo apt-get update
sudo apt-get install build-essential libssl-dev

前提条件のパッケージがインストールされたら、プロジェクトのGitHubページからnvmインストールスクリプトをプルダウンできます。バージョン番号は異なる場合がありますが、通常、次の構文でダウンロードしてインストールできます。

curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | sh

これにより、スクリプトがダウンロードされて実行されます。それはあなたのホームディレクトリのサブディレクトリにソフトウェアをインストールします~/.nvm。また、~/.profileファイルを使用するために必要な行をファイルに追加します。

nvm機能にアクセスするには、ログアウトして再度ログインする必要があります。または、現在のセッションが変更を認識できるように〜/ .profileファイルを入手することもできます。

source ~/.profile

nvmがインストールされたので、分離されたNode.jsバージョンをインストールできます。

インストール可能なNode.jsのバージョンを確認するには、次のように入力します。

nvm ls-remote
. . .

v0.11.10
v0.11.11
v0.11.12
v0.11.13
v0.11.14

ご覧のとおり、この記事の執筆時点での最新バージョンはv0.11.14です。次のように入力してインストールできます。

nvm install 0.11.14

通常、nvmは、最後にインストールされたバージョンを使用するように切り替わります。次のように入力することで、ダウンロードしたバージョンを使用するようにnvmに明示的に指示できます。

nvm use 0.11.14

nvmを使用してNode.jsをインストールする場合、実行可能ファイルはノードと呼ばれます。次のように入力すると、シェルで現在使用されているバージョンを確認できます。

node -v

完全なチュートリアルはここにあります


はい、それに加えて環境バージョンマネージャー用に1つ。私たちがこれを行う正しい方法であるにもかかわらず、間違いなく私のよりもはるかに良い答えです。nvmは、本番サーバーではなくインタラクティブワークステーションを対象としていると言えます(ただし、なぜそこで使用できなかったのかわかりません)...個人的には本番でDockerイメージを使用する傾向があります。
airtonix 2015年


0

Linuxでatomをビルドするときも、同じ問題が発生するようです。

sudo apt-get install nodejs-dev

私の質問を修正してください。お役に立てば幸いです。


0

シンボリックリンクしたくない場合は、これを行うことができます。Ubuntuで動作します

#!/usr/local/bin/node --harmony

ハーモニータグは、新しいECMAscriptハーモニー用です


0
  1. コマンドを実行するとwhich node、結果は何かになります

    /home/moh/.nvm/versions/node/v8.9.4/bin/node

  2. 上記のパスをコピーしてから、手順3のコマンドを実行します。

  3. ln -s /home/moh/.nvm/versions/node/v8.9.4/bin/node /usr/bin/node


-1

「node」ではなく「nodejs」を呼び出す必要があります。これを確認するnode -vには、シェルに入力しnodejs -vます。何も見つからない場合は、を試してください。それがバージョン番号を表示する場合、使用すべきコマンドはであり、ではnodejsありませんnode。したがって、スクリプト内のbrowserifyの呼び出しnodenodejs(以下に示すように)からに変更する必要があります。replace

#!/usr/bin/env node

#!/usr/bin/env nodejs

また、スーパーユーザーとしてスクリプトを開く必要がある場合もあります。

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