これは、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
。