#記事を書く背景
yum
とかhomebrew
とかnpm
とか普段何も考えずに使っていたコマンドがどういうものなのか気になり調べたところ、それらはパッケージ管理ツールというものであると判明しました。
じゃあそのパッケージ管理ツールって何なの?となり記事を書き始めました。
#Wikipediaによると
パッケージ管理システム(パッケージかんりシステム)とは、
OSというひとつの環境で、各種のソフトウェアの導入と削除、
そしてソフトウェア同士やライブラリとの依存関係を管理するシステムである。
#簡単にいうと
ソフトウエアをインストールしたり、アップグレードや削除するときに使うツールのこと。
#さらに詳しく
例えば自分のパソコンに「Chrome」をインストールする例を考えてみます。
普通のやり方であればChromeをインストールするURLにアクセスし、
「Chromeをダウンロード」のボタンを押し、そのダウンロードしたファイルを開けばすぐに使えるようになります。
これをパッケージ管理ツールを使わずにコマンドでインストールしようとすると、
Chromeのソースコードを入手しtarで解凍、ソースコードを「./configure」「make」「make install」という3つの手順を使い自分でビルドしなければなりません。
しかしこのやり方だと、依存関係を自分で解決しないといけないという大きな問題があります。
※依存関係
Aというソフトウェアを使えるようにするにはBというソフトウェアの×××のバージョンをインストールしなければ使えないような状態のこと。AはBに依存している。
そこで使うのがパッケージ管理ツールです。
パッケージ管理ツールがChromeをインストールする際に、必要な依存関係を自力で解決してくれます(必要なソフトウェアを自動でインストールしてくれる)。
これによりコマンドで簡単に「Chrome」をインストールすることが可能になります。
例:UbuntuにChromeをインストールする
※実際にインストールする際には下記コマンドの前にリポジトリに追加する作業や公開鍵の登録などの作業があります。
参照:Google Chromeインストール[On Ubuntu 16.04 LTS]
// aptがパッケージ管理ツールです
$ sudo apt-get install google-chrome-stable
#パッケージ管理ツールの種類の例(OSごと)
【Red Hat系Linux】
■rpm
■Yum
【Debian系Linux】
■APT
【macOS】
■Homebrew
【Windows】
■Chocolatey
【Node.js】※これはOSではない?
■npm
#参考文献
Wikipedia
【パッケージ管理システムとは?】Linuxでのパッケージ管理の使い方まとめました
Linuxにソフトウェアをインストールするには?
パッケージ管理の考え方