はじめに
どのOSに、どんなパッケージ管理ソフトがあるのか、知りたい。
でもマイナーなのも含めるとまとめきれないので、聞く頻度が高いやつだけ並べる。
RedHat系Linux
(CentOSとかもここだね)
- rpm
- Yum
- DNF
rpm
RedHat系Linux用のパッケージを管理する最初期のやつ。
依存関係を自動で解決しない。
Yum
rpmに依存関係を自動で解決する機能を付与したみたいなの。
ていうかパッケージDL等の機能はrpmを使用してる。
rpmをラップして使いやすくしたのがこれ。
Python 2でしか動かないのと、改修めんどくさいからDNFが生まれたらしい。
2015年あたりで標準じゃなくなった。
けどたぶん2018年中は現役っしょ(古いCentOS使いつつ)。
DNF
2015年あたりで標準になった子。
Python 2,3両方で動く子。
文法はYumから引き継いでいるから、YumをDNFに替えるだけでいい。
Debian系Linux
(Ubuntuとかもここだね)
- dpkg
- APT
dpkg
ローカルにあるパッケージを管理するだけ。
パッケージのDL等の機能は無い。
でもマイナーチェンジがあり、APTとの差別化は図られている。
APT
パッケージのDLや、依存関係の解消等までこなす。
普通に使うならdpkgの上位互換。
APTにも色々マイナーチェンジがある。
apt-get
古いやつ。古いOSならこっちしかないかも。
RedHat系で言うとYumの立ち位置。
apt
新しいやつ。apt-getの完全上位互換なので普通はこっち使ってね。
RedHat系で言うとDNFの立ち位置。
Arch Linux
- pacman
- yaourt
pacman
公式のパッケージを管理する。
地味にWindowsのUnixライクなシェル環境「MSYS2」で使うパッケージ管理もこれ。
yaourt
非公式なパッケージを管理する。
Windows
- Nuget
- chocolatey
Nuget
VisualStudio(以下VSと略す)のパッケージ管理ソフトとして有名。VS2012から標準で居る。
でもNugetのバージョン上限がVSのバージョンに依存するという仕様により、VS2012のNugetじゃDL出来ないパッケージが地味にある。
そういう場合はVSとは関係なくNuget単体をDLしてインストールして、コマンドプロンプトで欲しいパッケージをDLして、VS側のパッケージ参照を手動で入れる必要がある。
常に最新のVSを使う場合なら問題ないけど、大人の事情でVS2012で止まってるとかの場合、わりかし苦労する。
- GUI = VS版Nuget
- CUI = Nuget
chocolatey
この子が扱うパッケージの形式自体はNugetのパッケージだが、Windowsでの開発環境構築に関する実行ファイルを含んだNugetパッケージを対象にしている。
クロームとか、ファイヤーフォックスとか、スカイプとか、Gitとか、nodejsとか、VisualStudioCodeとか、VisualStudioとか、とにかく見慣れたモノから、見慣れないモノまで色々。
Windowsでの開発環境をぽんぽこ構築&破壊する際、いちいち公式サイト行くのめんどいとか、
アップデート確認が超絶めんどいとか、毎回Yesとか押すのめんどいとかいう時に有効。
PHP
- Composer
Composer
PHP開発でパッケージを利用する場合、依存関係とか諸々解決してくれる。
さらにオートローダーも吐いてくれる優れもの。
- GUI = Composercat
- CUI = Composer