apt チートシート

# はじめに
APTツールのオプション**を紹介します。今回は```apt-cache ```コマンドと```apt-get```コマンドについて紹介します。```apt```コマンドについては、別の記事で紹介しようと思います。

# apt-cacheのオプション

## pkgnames　全てのdebパッケージを表示する

```
# apt-cache pkgnames | head
libdatrie-doc
libfstrcmp0-dbg
libghc-monadplus-doc
librime-data-sampheng
task-estonian
python-pyao-dbg
fonts-georgewilliams
libcollada2gltfconvert-dev
python3-doc8
r-bioc-hypergraph
```

## search　キーワード検索する

```
# apt-cache search apache2 | head
apache2 - Apache HTTP サーバ
apache2-bin - Apache HTTP サーバ (モジュールおよび他のバイナリファイル)
apache2-utils - Apache HTTP サーバ (ウェブサーバ用ユーティリティプログラム)
gitweb - 速く、スケーラブルな分散型リビジョン管理システム (web インタフェース)
libapache2-mod-bw - apache2 用帯域制限モジュール
libapache2-mod-dnssd - Apache 2 向け avahi 経由 Zeroconf サポート
libapache2-mod-perl2 - Apache2 ウェブサーバと Perl の統合
libapache2-mod-rpaf - 'X-Forwarded-For'ヘッダから最新のIPアドレスを取得する Apache2 モジュール
libapache2-mod-wsgi - Apache 用の Python WSGI アダプタモジュール
libapache2-mod-auth-ntlm-winbind - apache2 module for NTLM authentication against Winbind
```

## show 詳細情報を調べる

```
# apt-cache show apache2 | head
Package: apache2
Version: 2.4.25-3+deb9u5
Installed-Size: 578
Maintainer: Debian Apache Maintainers <debian-apache@lists.debian.org>
Architecture: amd64
Replaces: apache2.2-bin, apache2.2-common
Provides: httpd, httpd-cgi
Depends: init-system-helpers (>= 1.18~), lsb-base, procps, perl, mime-support, apache2-bin (= 2.4.25-3+deb9u5), apache2-utils (= 2.4.25-3+deb9u5), apache2-data (= 2.4.25-3+deb9u5), perl:any
Pre-Depends: dpkg (>= 1.17.14)
Recommends: ssl-cert
```

## depends 依存関係を調べる

```
# apt-cache depends apache2 | head
apache2
  先行依存: dpkg
  依存: init-system-helpers
  依存: lsb-base
  依存: procps
  依存: perl
  依存: mime-support
  依存: apache2-bin
  依存: apache2-utils
  依存: apache2-data
```

# apt-getのオプション

## install インストール

```
# apt-get install apache2
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
提案パッケージ:
  www-browser apache2-doc apache2-suexec-pristine | apache2-suexec-custom
以下のパッケージが新たにインストールされます:
  apache2
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 36 個。
```

## upgrade debパッケージのアップグレード

```
# apt-get upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
以下のパッケージは保留されます:
  linux-image-amd64
以下のパッケージはアップグレードされます:
  base-files ca-certificates discover dpkg file gnupg gnupg-agent gpgv libdiscover2 libfuse2 libgcrypt20
  libldap-2.4-2 libldap-common libmagic-mgc libmagic1 libpam-systemd libperl5.24 libprocps6 libsystemd0 libudev1
  libxapian30 linux-image-4.9.0-6-amd64 openssh-client openssh-server openssh-sftp-server perl perl-base
  perl-modules-5.24 procps shared-mime-info systemd systemd-sysv tzdata udev wget
アップグレード: 35 個、新規インストール: 0 個、削除: 0 個、保留: 1 個。
61.4 MB のアーカイブを取得する必要があります。
この操作後に 23.6 kB のディスク容量が解放されます。
続行しますか? [Y/n]
```

## update /etc/apt/sources.listのパッケージ情報をアップデート

```
root@debian-smokeping:/# apt-get update
ヒット:1 http://security.debian.org/debian-security stretch/updates InRelease
無視:2 http://ftp.jp.debian.org/debian stretch InRelease
ヒット:3 http://ftp.jp.debian.org/debian stretch-updates InRelease
ヒット:4 http://ftp.jp.debian.org/debian stretch Release
パッケージリストを読み込んでいます... 完了
```

## remove 削除

```
# apt-get remove apache2
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.2-0
  libnghttp2-14 ssl-cert
これを削除するには 'apt autoremove' を利用してください。
以下のパッケージは「削除」されます:
  apache2
アップグレード: 0 個、新規インストール: 0 個、削除: 1 個、保留: 36 個。
この操作後に 592 kB のディスク容量が解放されます。
続行しますか? [Y/n]
```

# 補足
## apt-get dist-upgrade
ディストリビューションごとアップグレードする。試したことないです。

## インストール済みのdebパッケージを調べる
dpkgコマンドをつかうっぽいです。調べれてないです。