これは、NodeJSをインストールするためのクールな(まだ迷惑な)方法です。
tar tf /usr/save/node-v4.2.1-linux-x64.tar.gzファイルで実行すると、次のようなものが表示されます。
node-v4.2.1-linux-x64/
node-v4.2.1-linux-x64/bin/
node-v4.2.1-linux-x64/bin/npm
node-v4.2.1-linux-x64/bin/node
node-v4.2.1-linux-x64/share/
node-v4.2.1-linux-x64/share/man/
node-v4.2.1-linux-x64/share/man/man1/
基本的に、これは、このtarアーカイブを抽出するnode-v4.2.1-linux-x64と、これらのすべてのサブフォルダー(およびノードインストール)が含まれると呼ばれるフォルダーに抽出されることを意味します。実際、この抽出を試してさらに良いアイデアを得ることができます:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz
を実行するlsと、node-v4.2.1-linux-x64フォルダが表示されます。
さて、--strip-components 1抽出プロセスに興味深いことを行います。からman tar:
--strip-components=NUMBER
strip NUMBER leading components from file names on extraction
基本的に、これは、tarがアーカイブを抽出するときに、node-v4.2.1-linux-x64フォルダーが存在しないかのように振る舞うことを意味します。代わりに、抽出するために起こってbin/、share/直接および他のすべてのフォルダ。
実際、あなたはそれを試すことができます:
mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz --strip-components=1
を実行するlsと、node-v4.2.1-linux-x64フォルダがなくなっていることがわかります。それはちょうどだbin/、include/、lib/、およびshare/(すべての偶然でフォルダ/usr/local/)。
2番目のコマンドは、node-v4.2.1-linux-x64フォルダーを抽出しただけなので/usr/local(機能しない場合でも)機能しませんでした。を実行するとls /usr/local、このフォルダがぶら下がっているのを見ることもできます。役に立たないので、で気軽に削除してくださいrm。なぜそれが役に立たないのかについては、読み続けてください...
tarコマンドがどのように機能するかを説明したので、これがどのようにインストールされるかを説明できます。
すべてのLinuxシステムには$PATH変数と呼ばれるものがあり、実行可能ファイルの保存場所を決定します。これらの場所の中にあり/usr/local/binます。内部にそのバイナリを抽出すると/usr/local(インストール手順に書いてあると確信しています)、NodeJSバイナリは/usr/local/bin/node、抽出方法に従って書き込まれます。同様に、すべてのライブラリーがローカルライブラリーフォルダーに追加されており、ほとんどすべてがライブラリーが属している場所に移動します。
さて、警告(そしてこれが厄介なのはなぜですか)は、apt何が起こっているのかを理解したり理解したりできないことです。sudo apt upgradeまたは同様の方法で更新することはできません。アップグレードする場合に備えて、手動で古いNodeJSインストールをクリーンアップし、新しいものをインストールする必要があります。
sudo apt install nodejs-legacy代わりに実行することをお勧めします。痛みが少なく、自動的に更新されます。
jodejsてaptコマンド:sudo apt install nodejs nodejs-legacy。