【Linux】 パッケージ管理コマンドまとめ(ディストリビューション別)

Linuxパッケージ管理コマンドを全オプション/サブコマンドを全ディストリビューション、目的ごとにまとめます。
まだ完全ではないですが勉強するごとに徐々に項目を追加していきます。
LPICなどの資格勉強や業務で使う際に役立てて頂けたら幸いです。

## RedHat系
RedHat、CentOSで使うコマンドは主に以下2つ。コマンド/目的別にオプションを記載します。

###rpmコマンド
依存関係を考慮することなく、パッケージ管理を行うコマンド。yumコマンド(後述)とは違いオプション指定でコマンドを実行する。

例) rpm -ih パッケージファイル名
　→進行状況を表示しながらインストール

■インストール編
インストールのオプションで指定する引数はパッケージ名ではなく、パッケージファイル名(~.rpmなど)指定であることに注意。

debian系(後述)など他のディストリビューションでも依存関係を考慮せずに実行するコマンドのインストールオプションはパッケージファイル名を指定するのは共通。

|オプション|結果| 
| -----------| ------------|
| -i(--install) パッケージファイル名| パッケージのインストール。|
|-U(--upgrade) パッケージファイル名|パッケージのアップグレード。アップグレード時にパッケージがない場合はインストール。|
| -F(--freshen) パッケージファイル名| パッケージのアップグレード。アップグレード時にパッケージがない場合はインストールしない。-Uとややこしいので自分は今のパッケージを新鮮(freshen)にする=ないものは新鮮にできないと覚えました。|
|-e(--erase) パッケージ名|パッケージのアンインストール|
|併用オプション(上記オプションと併用)| 
|-v|パッケージの詳細情報表示。|
|-h(--hash)|インストールの進行状況を#で表示。-eとは併用不可。|
|-t(--test)|テストを実施(実際にはインストールしない)。|
|-nodeps|依存関係を無視。|

■検査・参照編
既存のパッケージに対し、検査・参照する場合はパッケージ名を指定。
パッケージの検査はRPMデータベースのファイルに関する情報とパッケージファイルを比較して検査する。
主にファイルサイズ、チェックサム、所有ユーザ/グループ、タイムスタンプにより判断。

|オプション|結果| 
|-----------| ------------|
| -q(--query) パッケージ名|指定パッケージがインストールされているか参照。|
|-V(--verify) パッケージ名|パッケージ検査。併用オプションは-a(--all)と--nomd5のみ。|
|併用オプション(上記オプションと併用)| 
|-a(--all)|全パッケージ表示。| 
|-l(--list)|パッケージに含まれるファイルを表示。|
|-i(info)|パッケージそのものの詳細情報を表示|
|-l(list)|パッケージ一覧表示(バージョン、インストール有無)|
|-f(--file) ファイル名|指定ファイルがどのパッケージからインストールされているか表示|
|-p(--package)|パッケージを指定|
|-changelog|パッケージの変更履歴|
|-c(--configfiles)|設定ファイルを一覧表示|
|-nomd5|MD5によるファイルの改竄をチェックしない。|

###yumコマンド
インターネット経由、もしくはその他メディアを通じて依存関係を考慮しながらパッケージ管理を行うコマンド。サブコマンド(-をつけない)を指定してコマンドを実行する。

debian系(後述)など他のディストリビューションでも依存関係を考慮しながら実行するコマンドは-をつけずにサブコマンドでパッケージを指定する。
インストールでもパッケージ名指定でOK。

例) yum [-y] install php
　→phpパッケージをインストール。

■インストール・参照編

|オプション|結果| 
|-----------| ------------|
|install パッケージ名|パッケージインストール。|
|update パッケージ名|パッケージのアップデート。パッケージ名を指定しない場合、全パッケージをアップデートする。|
|remove パッケージ名|パッケージアンインストール|
|info|パッケージそのものの詳細情報を表示|
|search キーワード|キーワードを指定してパッケージを検索|
|check-update |アップデート可能なパッケージを表示|
|grouplist|パッケージグループの一覧表示|
|groupinstall|パッケージグループのインストール|


## Debian系
Debian、Ubuntuで使うコマンドは主に以下3つ。コマンド/目的別にオプションを記載します。

###dpkgコマンド
依存関係を考慮することなく、パッケージ管理を行うコマンド。apt-getコマンド(後述)とは違いオプション/アクション指定でコマンドを実行する。

例) dpkg -Ei パッケージファイル名
　→同バージョンのパッケージがなければインストール。

■インストール編
インストールのオプションで指定する引数はパッケージ名ではなく、パッケージファイル名(~.debなど)指定であることに注意。

|オプション|結果| 
|-----------| ------------|
|-E|インストール対象パッケージと同バージョンがインストール済みの場合、インストールしない。自分はEqualなら実行しないと覚えました。|
|-G|インストール対象パッケージより新しいバージョンがインストール済みの場合、インストールしない。自分はGreaterなら実行しないと覚えました。|
|-R|ディレクトリを再起的に処理。|
|アクション||
|-i(--install) パッケージファイル名|パッケージインストール|
|-r(--remove) パッケージ名|設定ファイルを残してアンインストール。|
|-P(--purge) パッケージ名|設定ファイルごとアンインストール。-rとややこしいため歴史好きな自分は丸ごと追放をイメージしやすいred purge(赤狩り)を思い浮かべて記憶しています。|
|-l(--list) 検索パターン|インストール済みパッケージを検索。|
|-L(--listfiles)|パッケージからインストールされたファイルを一覧表示。-lとややこしいので自分は"長大なもの(オプションが長くて大文字から)はファイル参照"と覚えました。|
|-s(--status) パッケージ名|インストール済みパッケージの詳細情報|
|-S(--search) 検索パターン|どのパッケージから指定ファイルがインストールされたかを表示。|
|-C(--audit)|インストールが不完全なパッケージ表示|

###apt-getコマンド、apt-cacheコマンド
インターネット経由、もしくはその他メディアを通じて依存関係を考慮しながらパッケージ管理を行うコマンド。サブコマンド(-をつけない)を指定してコマンドを実行する。
インストールでもパッケージ名指定OK。

インストールはapt-get、参照はapt-cacheコマンドで対応する。
インストールでもパッケージ名指定でOK。

例)apt-get install パッケージ名
　→パッケージインストール

■インストール編(apt-get)

|オプション|結果| 
|-----------| ------------|
|install パッケージ名|パッケージインストール/アップグレード。|
|remove パッケージ名|パッケージアンインストール。|
|upgrade|インストール済み全パッケージのアップグレード。|
|dist-upgrade|ディストリビューションを最新版にアップグレード。|
|update|パッケージのデータベースを最新版へアップデート。|
|clean|過去に取得したパッケージファイルを削除。|

例)apt-cache showpkg パッケージ名
　→依存関係も含めてパッケージ情報を表示。

■参照編(apt-cache)

|オプション|結果| 
|-----------| ------------|
|search キーワード|キーワードを含んだパッケージを参照|
|show パッケージ名|パッケージ情報を表示|
|showpkg パッケージ名|依存関係を含めてパッケージ情報を表示|
|depends パッケージ名|指定パッケージに依存しているパッケージを表示|


#最後に
ツイッターで日々の勉強内容を発信しておりますのでフォロー、閲覧していただけると幸いです。
何かアドバイスなどございましたらコメントください。

ツイッター
https://twitter.com/Picko_Engineer