nvm、apt-get、make installを使用する場合、または他の方法で を使用する場合、ノードはどこにインストールされますか。
apt-getを使用して、しかしバイナリ、マニュアルファイル、共有ファイル、ログなどを格納するためのUbuntuの規則次のファイルシステム上のすべてのソフトウェアだけでなく、ノードをインストールし、あなたによapt-getを配布リリースサイクルによって決定されるノードの特定のバージョンのみを有する。利用可能なアップデートがある場合、それらはapt-get update; apt-get upgrade
と一緒にインストールされます。ただし、一部のアプリの最新バージョンは、配布に入るまで利用できません。たとえば、ノードv0.x.yは、Ubuntu 13.10が手作業でインストールするための唯一の方法です。 apt-get
または他のシステムパッケージマネージャの優位性は、アップデートとパッケージの削除を管理することです。ソフトウェアパッケージに関するすべてのデータを独自のデータベースに格納します。 apt-get remove node
でいつでもノードを削除することができます。それだけです。
make install
手動でパッケージをインストールしますが、それは有害であるとみなされます。 make install
は主にパッケージを簡単に削除できないため使用しないでください。Makefileを読んで、それによってインストールされたすべてのファイルを手動で削除する必要があります。 make install
を使用する場合は、常にcheckinstall
が利用可能です。ネイティブパッケージを作成してシステムに登録するソフトウェアです。パッケージを削除する場合は、多数のコマンドではなく1つのコマンドでこれを行うことができます。 wiki link; Ubuntu guide on checkinstall
nvm
スクリプトはnode version manager
です。非常に便利で使いやすいです。これにより、複数のバージョンのノードをマシンに並列にインストールして使用することができます。それはmake install
のようなソースからノードをコンパイルしないので、非常に高速です。ディストリビューションのリリースサイクルに依存しないので、現在利用可能なすべてのノードバージョンにアクセスできます。 nvmはプリコンパイルされたバイナリをダウンロードし、一般的な使用に最適です。これは、ノードファイルをローカルの自分のフォルダに保存するので、簡単に行うことができるさまざまなノードバージョン間で何かを比較したい場合に備えてください。
ローカルにノードをインストールすることをお勧めしますか?
nvm
をローカルで使用している場合は、開発とテストに非常に適しています。ソースからインストールされているか、またはプリコンパイルされたバイナリを使用している間に、運用パフォーマンスの影響とメリットが不明です。私は開発のためにnvmを使用し、本番環境ではソースからインストールします。しかし、誰かがこの問題をこれ以上説明できれば、私はもっと学ぶことができてうれしいです。
システム認識可能なbinフォルダにnvmをインストールする代わりに〜/ .profileを変更するのはなぜですか?
nvm
は実行可能ではないためです。これはシェルがソースとし、別々に使用できるbash関数のセットです。 isがあなたのシェルにソースされた後、メインスクリプトなしでnvm_ls
とnvm_ls_remote
などを呼び出すことができます。メインスクリプトがコマンドライン引数を解析し、例えば `nvm_ls_remote 'のような場合に出力をきれいに表示します。
〜/。次の行は、あなたのシェル
に
[[ -s /home/USERNAME/.nvm/nvm.sh ]] && . /home/USERANME/.nvm/nvm.sh # This loads NVM
負荷のすべての機能を追加されたプロファイル私はNVMが互いに並んノードの異なるバージョンをインストールすることができたことを見た - なぜ私はこれをしたいのでしょうか?代わりにローカルにインストールすることはできますか?
インストールし、あなたはmake install
またはcheckinstall
を使用してローカルにインストールできますが、その他node_0.8.1、node_0.8.2、node_0.10.1、のようにそれらのエイリアスを作成する必要があります、あなたは新しいエイリアスを管理する必要がありますすべてのパッケージは、あなた自身が必要でない場合に備えて削除します。これらは、エラーが発生する可能性がある退屈で退屈な作業です。 nvm
は無料でこれらの作業をすべて行います。
ノードのさまざまなバージョンでアプリケーションをテストするには、これを実行する必要があります。たとえば、あなたはv0.8でうまくいき、テストされていますが、v0.10.3の新機能を使いたいのですが、どうやってやっていますか?あなたは、ソースコードをダウンロードし、コンパイルし、エイリアスを作成し、あなたのアプリを実行しなければなりません。ちょうどnvm install 0.10.3
でこれを行い、あなたのアプリを走らせることができます。 ノードの複数のバージョンをサポートする必要がある場合があります。例えば、いくつかのホストされた環境は、最新のリリースと連絡を取っておらず、v0.6しか持っていません。あなたのサーバーアプリケーションを使用しているあなたのクライアントはこのバージョンに特有のバグに遭遇するかもしれません。バグを修正するときは、最初にそれを再現する必要があります。を使用すると、v0.6のインストールは1行30分です。この方法で簡単にすべてのバージョンをチェックすることができます。異なるバージョンの下でコードをテストし、あなたが良いことを確認してください。
npmはどこにパッケージをインストールしますか?私はそれがノードのパッケージaganistのバージョンをチェックすることを見た、ノードがアップグレードされると、これらのパッケージはどうなるの?
あなたがnvm
を使用している場合-g
オプションでグローバルにインストールされているパッケージは、関連するノードのバージョンに関連付けられています。 nvm use 0.x
でバージョンを切り替えるときは、パッケージを再度インストールするか、nvm copy-packages <version>
を使用してパッケージを現在のバージョンから使用する必要があります。パッケージがローカルにインストールされている場合は、それが依存します。 package.json
には、アプリの依存関係に関する情報が含まれているはずです。 node: '0.8'と言い、0.9に更新しただけでは、問題が発生する可能性があります。たとえば、最新のリリースでは0.6と比較して、process.nextTick
の動作が変更されました。ので注意してください。
グローバルインストールまたはローカルインストールを使用する方がよい場合はありますか?どこにパッケージを置くべきですか(そしてデフォルトでどこに置くのですか?)
これは依存しています。開発のために私の意見ではnvm
が優れています。私にとっては、それは便利で簡単です。本番環境では、ご使用のシステムに最適化されていないプリコンパイル済みバイナリ・ファイルを使用する際に、パフォーマンスに影響を及ぼす可能性があります。関連する経験を持つ人々が答えられるように、これを別の質問として尋ねる方が良いでしょう。
npm、nvm、naveの違いは何ですか?
npm
node package manager
である - それは他の人によって開発されたユーザランドパッケージが含まれています>link。これらのパッケージはノードコアの一部ではありません。npmは、コードと依存関係管理の公開に使用されます。あなたのアプリが他の人によって開発された他のアプリを必要とする場合は、npmで公開すると便利です。
nvm
は、node version manager
とは全く別物です。これにより、同じマシン上のノードのバージョンを簡単に切り替えることができ、$PATH
環境変数のすべての変更を管理できます。
操作システムの更新マネージャーとしてnvm
を、このシステムのアプリケーションマネージャーとしてnpm
を検討してください。さて、この比較は正確ではなく、ただ
nave
は基本的にnvm
と同じですが、nvm
がシェルに供給されるスクリプトであるのに対し、それが実行可能である私の心に出くわしました。各システムにはそれぞれ独自の利点があります。ユースケースと相違点について別の質問をすることができます。
私の答えは完全ではなく、多くの主観的な個人的意見を含んでいます。しかし、少なくともいくつかの点を明確にして、より具体的な他の質問を進めることができるようにしたいと思います。 Btw、あなたのこの質問リストは別の質問として尋ねることができます。私はstackoverflowが特定の質問が別々に頼まれ、関連経験を持つより多くの人々が貢献できるときに最良の結果をもたらすと信じています。
それは素晴らしい答えです、ありがとう!私はちょうど混乱していたので、多くの質問をしました。私はいくつかの具体的な質問をするときに私は別にそれを求めます。 – mik01aj
非常に有益な答え! OPによってもたらされたすべてのオプションに関する本当に良い見通し。 – Qcom