[Linux][command] パッケージ管理_dpkg, apt, rpm, yum, dnf, Zypper

# パッケージ管理ツールの種類
|形式|コマンド|対応ディストリビューション|
|:--|:--|:--|
|Debian系|`dpkg`<br>`apt-get`<br>`apt-cache`<br>`apt`|Debian<br>Ubuntu|
|RPM系|`rpm`<br>`yum`<br>`dnf`|CentOS|
|≒RPM系|`zypper`|openSUSE|

# 各コマンドの主な機能一覧
| 機能 | dpkg | apt-get<br>apt-cache<br>apt | rpm | yum<br>dnf | Zypper |
|:--|:--|:--|:--|:--|:--|
| install | `-i`<br>`--install` | `install` | `-i`<br>`--install` | `install` | `in`<br>`install` |
| uninstall | `-r`<br>`--remove` | `remove` | `-e`<br>`--erase`* | `remove` | `rm`<br>`remove` |
| uninstall<br>+ conf file | `-P`<br>`--purge`* | `purge`* | | | |
| upgrade | | `upgrade` | `-F`<br>`--freshen` | `update` | `up`<br>`update`|
| upgrade<br>or install | | | `-U`<br>`--upgrade` | | |
| upgrade<br>system | | `dist-upgrade`<br>`full-upgrade` | | | `dist-upgrade` |
| 検索 |　| `search` | `-q`<br>`--query` | `search` | `se`<br>`search` |
| 詳細表示 | `-s`<br>`--status`*| `show`* | `-qi`<br>`--query --info` | `info` | `info` |
| 詳細・依存表示 | | `showpkg`* | | | |
| 依存表示 | | `depends`* | `-qR`<br>`-q --requires`* | | |
| 一覧表示 | `-l`<br>`--list` | `list` | `-qa`<br>`--query --all` | `list` | |
| 一覧表示<br>- install未完了<br>- update未完了 | `-C`<br>`--audit`* | | | `check-update`* | `lu`<br>`list-updates` |
| repo表示 | | | | `repolist` | `lr`<br>`repos` |
| package repo更新<br>package DB更新 | | `update` | | | `refresh`* |
| package group list | | | | `grouplist`| |
| package group install | | | | `groupinstall`| |
|pacckage from file表示|`-S`<br>`--search`||||
| file from pacckage表示 | `-L`<br>`--listfiles`* | | `-ql`<br>`--query --list` | | |

# Debian系
## `dpkg`
~~~terminal:
$ dpkg [オプション] アクション 
~~~

| オプション | 由来 | 説明 |
|:--|:--|:--|
|default|Debian package|- Debianパッケージ管理ツール。パッケージのインストール、削除、情報取得を行う|
| `-E` | skip if Exists | - 同Ver.のパッケージが存在する場合はインストールしない（`-i`と組み合わせて使う） |
| `-G` | skip if Greater | - 新Ver.のパッケージが存在する場合はインストールしない |
| `-R` | Recursive | - 指定したディレクトリを再帰的にたどり、すべての`.deb`パッケージを操作対象にする（`-i`や`-r`などと一緒に使う） |

`dpkg-reconfigure` は、Debian系Linuxディストリビューションで使用されるコマンドで、すでにインストールされているパッケージの設定を再実行（再構成）するために使われます。下記のフォーマットにあわせて説明します。

## `dpkg-reconfigure`
~~~terminal
$ dpkg-reconfigure [オプション] パッケージ名
~~~

| コマンド | 由来 | 説明 |
|:--|:--|:--|
| default | reconfigure | - すでにインストール済みのパッケージの設定ダイアログを再表示し、設定を変更するためのツール<br>- `debconf` データベースに基づいて設定 |


## `apt-get` `apt-cache` `apt`
- `apt-get`: パッケージのインストール・アンインストール・アップグレードを行うコマンド
- `apt-cache`: パッケージ情報の検索・参照などを行うコマンド
- `apt`: `apt-get`と`apt-cache`コマンドの機能を統合したコマンド

| オプション | 由来 | 説明 |
|:--|:--|:--|
| `remove` | remove | - パッケージ本体を削除 |
| `purge` | purge | - パッケージ本体と設定ファイルを削除する |
| `clean` | clean | - ダウンロード済みの `.deb` キャッシュファイル（インストーラ）を削除する（インストール済みのパッケージには影響なし） |
|`-f install`<br>`--fix-broken install`|fix|- 依存関係の問題や不完全なパッケージを修復する<br>- **パッケージ名の指定は不要**|

# RPM系
## `rpm`

|オプション|併用オプション|説明|
|:--|:--|:--|
|`-i` パッケージ名<br>`--instaall` パッケージ名||パッケージのインストール|
|`-U` パッケージ名<br>`--upgrade` パッケージ名||パッケージのアップグレード（なければインストール）|
|`-F` パッケージ名<br>`--freshen` パッケージ名||パッケージのアップグレード（なければインストールしない）|
||-v|詳細情報の表示|
||-h<br>--hash|進行状況の表示|
||--nodeps|依存関係を無視|
||--test|インストールせずにテスト|
|`-q` パッケージ名<br>`--query` パッケージ名||パッケージがインストールされているか照会|
||`-a`<br>`--all`|インストール済みのすべてのパッケージを表示|
||`-p` パッケージファイル名<br>`--package` パッケージファイル名|照会対象のパッケージ**ファイル**を指定|
||`-l`<br>`--list`|指定したパッケージ内のファイルを表示|
||`-c`<br>`--configfils`|設定ファイルを表示|
||`-f ファイル名`<br>`--file ファイル名`|指定したファイルをインストールしたパッケージを表示|
||`--changelog`|変更履歴を表示|
|`-V` パッケージ名<br>`--verify` パッケージ名||パッケージを検査<br><br>対象:<br>- RPMデータベースに格納されているファイルに関する情報<br>- インストールされたパッケージのファイルに関する情報<br>上記比較して変更（改ざんなど）が無いか検査する<br><br>内容: <br>- ファイルのサイズ、MD5チェックサム、所有ユーザ、所有グループ、タイムスタンプ|
||`-a`<br>`--all`|インストール済みのすべてのパッケージを検査|

## `yum`
- `/etc/yum.conf`: 設定ファイル(キャッシュやログの保存先などの基本設定)
- `/etc/yum.repos.d`: パッケージの取得元(リポジトリ)の設定

|サブコマンド|説明|
|:--|:--|
|`groups list`|パッケージグループを一覧表示する|
|`grouplist`|パッケージグループを一覧表示する|
|`groups install` グループ名|パッケージグループをインストールする|
|`groupinstall` グループ名|パッケージグループをインストールする|

## `dnf`
- `yum`の後継ツール

# ≒RPM系
## `zypper`


# 参考リンク
- [まとめ】Linuxパッケージ管理のチートシート(yum,dnf,apt,rpmなど)](https://www.infra-manual.com/package-cheatsheet/#index_id10)
- [【初心者でもわかる】yumコマンドの使い方とリポジトリの追加方法](https://eng-entrance.com/linux-package-yum)

# Ping-t
## `dpkg`
- [3023_dpkg -i, --install](https://mondai.ping-t.com/question_subjects/31/question_sessions/32400859/progressing_questions/496444394)
- [3024](https://mondai.ping-t.com/question_subjects/31/question_sessions/30188717/progressing_questions/462490500)
- [3025_dpkg -P --purge](https://mondai.ping-t.com/question_subjects/31/question_sessions/31064787/progressing_questions/476028295)
- [3027_dpkg -L, --listfiles](https://mondai.ping-t.com/question_subjects/31/question_sessions/32606675/progressing_questions/499591047?result=true)
- [3028_dpkg -s, --status]()
- [3029_dpkg -S --search](https://mondai.ping-t.com/question_subjects/31/question_sessions/31064787/progressing_questions/476028294)
- [3030_dpkg -C, dpkg --audit](https://mondai.ping-t.com/question_subjects/31/question_sessions/30356928/progressing_questions/465072544)
- [3202_dpkg -Ei, -E --install](https://mondai.ping-t.com/question_subjects/31/question_sessions/32400859/progressing_questions/496444383)
- [3204_dpkg -Gi, -G --install](https://mondai.ping-t.com/question_subjects/31/question_sessions/32375836/progressing_questions/496046634)
- [3430_dpkg-reconfigure](https://mondai.ping-t.com/question_subjects/31/question_sessions/32477286/progressing_questions/497681648)

## `apt-get` `apt-cache` `apt`
`apt-get`
- [2995_apt-get upgrade, apt-get update](https://mondai.ping-t.com/question_subjects/31/question_sessions/32477286/progressing_questions/497681637)
- [3034_apt-get update](https://mondai.ping-t.com/question_subjects/31/question_sessions/31357762/progressing_questions/480478554)
- [3205_apt-get clean](https://mondai.ping-t.com/question_subjects/31/question_sessions/32448701/progressing_questions/497231335)
- [3429_apt-get](https://mondai.ping-t.com/question_subjects/31/question_sessions/30188717/progressing_questions/462490497)
- [34631_apt-get dist-upgrade](https://mondai.ping-t.com/question_subjects/31/question_sessions/31216102/progressing_questions/478329129)
- [35647_apt-get -f install, apt-get --fix-broken install](https://mondai.ping-t.com/question_subjects/31/question_sessions/32725104/progressing_questions/501357405)

`apt-cache`
- [3037_apt-cache search](https://mondai.ping-t.com/question_subjects/31/question_sessions/32375836/progressing_questions/496046636)
- [3038_apt-cache show](https://mondai.ping-t.com/question_subjects/31/question_sessions/30356928/progressing_questions/465072543)
- [3039_apt-cache showpkg](https://mondai.ping-t.com/question_subjects/31/question_sessions/31593536/progressing_questions/484113877)
- [3040_apt-cache depends](https://mondai.ping-t.com/question_subjects/31/question_sessions/32400859/progressing_questions/496444384)

`apt`
- [3678_apt](https://mondai.ping-t.com/question_subjects/31/question_sessions/30188717/progressing_questions/462490493)


## `rpm`

- [3331_rpm -V, rpm --verify](https://mondai.ping-t.com/question_subjects/31/question_sessions/32581786/progressing_questions/499228202?result=true)
- [3043_rpm -U, rpm --upgrade](https://mondai.ping-t.com/question_subjects/31/question_sessions/32581786/progressing_questions/499228239)
- [3043_rpm -F, rpm --freshen](https://mondai.ping-t.com/question_subjects/31/question_sessions/31216102/progressing_questions/478329136)
- [3044_rpm -U, --upgrade](https://mondai.ping-t.com/question_subjects/31/question_sessions/30588067/progressing_questions/468636449)
- [3045_rpm -i --test, rpm --install --test]()
- [3046_rpm -e --nodeps, rpm --erase --nodeps](https://mondai.ping-t.com/question_subjects/31/question_sessions/32375836/progressing_questions/496046627)
- [3047](https://mondai.ping-t.com/question_subjects/31/question_sessions/30188717/progressing_questions/462490499)
- [3049_rpm --query --list --package](https://mondai.ping-t.com/question_subjects/31/question_sessions/30356928/progressing_questions/465072542)
- [3050_rpm -ql, rpm --query --list](https://mondai.ping-t.com/question_subjects/31/question_sessions/31593536/progressing_questions/484113876)
- [3052_rpm -qi, rpm --query --info](https://mondai.ping-t.com/question_subjects/31/question_sessions/32448701/progressing_questions/497231304)
- [3054_rpm -q --package --changelog](https://mondai.ping-t.com/question_subjects/31/question_sessions/30356928/progressing_questions/465072541)
- [3056_rpm --query --configfiles --package]()
- [3057_rpm --query --configfiles](https://mondai.ping-t.com/question_subjects/31/question_sessions/32581786/progressing_questions/499228226?result=true)
- [3058_rpm --verify, -V](https://mondai.ping-t.com/question_subjects/31/question_sessions/30356928/progressing_questions/465072540)
- [3059_rpm --verify --all](https://mondai.ping-t.com/question_subjects/31/question_sessions/30873040/progressing_questions/472962318)
- [3233_rpm -ih, -i --hash](https://mondai.ping-t.com/question_subjects/31/question_sessions/32400859/progressing_questions/496444387)
- [3352_rpm --query --requires --package, rpm -qRp](https://mondai.ping-t.com/question_subjects/31/question_sessions/32527688/progressing_questions/498427198)

## `yum`
- [3061_yum remove](https://mondai.ping-t.com/question_subjects/31/question_sessions/31593536/progressing_questions/484113875)
- [3062_yum update](https://mondai.ping-t.com/question_subjects/31/question_sessions/30873040/progressing_questions/472962317)
- [3063_yum info](https://mondai.ping-t.com/question_subjects/31/question_sessions/31064787/progressing_questions/476028292)
- [3064_yum list](https://mondai.ping-t.com/question_subjects/31/question_sessions/32448701/progressing_questions/497231345)
- [3065_yum search](https://mondai.ping-t.com/question_subjects/31/question_sessions/31538033/progressing_questions/483250168)
- [3066_yum check-update](https://mondai.ping-t.com/question_subjects/31/question_sessions/30356928/progressing_questions/465072539)
- [3067_yum grouplist](https://mondai.ping-t.com/question_subjects/31/question_sessions/30873040/progressing_questions/472962316)
- [3068_groupinstall](https://mondai.ping-t.com/question_subjects/31/question_sessions/32477286/progressing_questions/497681641)
- [34836_/etc/yum.repos.d, /etc/yum.conf](https://mondai.ping-t.com/question_subjects/31/question_sessions/32400859/progressing_questions/496444375)

## zypper
- [3344_zypper in, install](https://mondai.ping-t.com/question_subjects/31/question_sessions/30588067/progressing_questions/468636448)
- [3345_zypper rm, remove](https://mondai.ping-t.com/question_subjects/31/question_sessions/30588067/progressing_questions/468636447)
- [3346_zypper up, update](https://mondai.ping-t.com/question_subjects/31/question_sessions/30588067/progressing_questions/468636446)
- [3347_zypper info](https://mondai.ping-t.com/question_subjects/31/question_sessions/31216102/progressing_questions/478329134)
- [3348_zypper se, search](https://mondai.ping-t.com/question_subjects/31/question_sessions/31064787/progressing_questions/476028291)
- [3349_zypper lu, list-updates]()
- [3350_zypper lr, repos](https://mondai.ping-t.com/question_subjects/31/question_sessions/30356928/progressing_questions/465072538)
- [3351_zypper refresh](https://mondai.ping-t.com/question_subjects/31/question_sessions/31064787/progressing_questions/476028290)