🍺
パッケージ管理システムとは
【導入】
- パッケージ管理システムとは、パッケージのインストールやアンインストール、アップデートなどの作業を一元管理してくれたり、依存関係を解決を解決してくれるソフトウェアのことで、利用すると手間が省けて楽ができるよっていうだけです。
- 楽しなくてもいい、っていう人は使わずに従来のように公式サイトに行って手動でインストール等しても得られる結果は同じです。
【パッケージマネージャーを利用しない場合】
- このファイルって〇〇パッケージ関連のものだっけ?削除していいんだっけ?という正体不明の消すに消せないファイルが積み重なっていくと容量を圧迫していくし、何よりそれを見分けるのに時間を浪費してしまいます。
インストール時
- 公式サイトを訪れる
- zipファイルをダウンロードする
- 解凍しinstall作業を行う
- 不要になったインストーラ等を削除する
アンインストール時
- アンインストールしたいパッケージに関連するファイルを洗い出す
- 洗い出したファイルを削除する
アップデート時
- アンインストール作業
- インストール作業
依存関係の解決時
- アプリケーション内で必要な「パッケージA」を動かすためには「パッケージB」も必要になる場合、パッケージAはパッケージBに依存していると言えます。
- パッケージAをインストールする
- パッケージAに必要なパッケージBもインストールする
- パッケージBに必要なパッケージCもインストールする
- 続く
【パッケージマネージャーを利用する場合】
- インストール時もアンインストール時もアップデート時も、ターミナルからコマンドを入力するだけです。依存関係の解決も行ってくれます。
【言語系とOS系の違い】
- install先が異なります。
言語系
- 主に開発中アプリケーションのディレクトリの中という限られた特定の狭い範囲に対してパッケージをinstallしたいときに用います。(ローカルにinstallするとき)
- たとえばJavaScriptでアプリケーションを開発しているときにJavaScript製のパッケージ(Express, ejs等)が必要になったとき等です。
OS系
- ある特定のアプリケーションのディレクトリにinstallしたいとき以外こっち
- 例えばHomebrewはMac自体に対してinstallしたい時に用います。
- git, node等のターミナルから普段コマンドで実行しているツールや、ChromeやNotionなどのGUIツールのinstallが該当します。MacOS自体そのもの、という大枠に対してinstallしてるイメージです。
【種類】
言語向け
- JavaScript
- npm
- yarn
- Ruby
- RubyGems
- Python
- pip
OS向け
- Mac
- Homebrew
- Windows
- PackageManagement
- Chocolatey
- Linux
- dpkg
- APT
- RPM
【参考】
Discussion