Debianでのパッケージ管理:aptツールの使用方法
aptツールの概要
Debianでは、パッケージ管理システムを管理するためにaptツールセットが使用されます。その中でも、apt-get
は一般的なコマンドラインツールの一つです。また、コマンドラインとGUIの両方をサポートするツールとして、有名なaptitude
があります。さらに、Linuxパッケージ管理コマンドは、apt-get
、apt-cache
、apt-config
という3つのコマンドに分散されています。
2014年に初めて安定版がリリースされ、Ubuntu 16.04にも導入されたapt
コマンドは、これらの分散したコマンドの問題を解決しました。apt
コマンドには、apt-get
コマンドで最もよく使われる機能オプション、ならびにapt-cache
やapt-config
コマンドの機能も含まれています。これにより、ユーザーはパッケージ管理に必要な基本的なオプションを利用でき、apt-get
からapt-cache
やapt-config
へと移動する必要がありません。
apt
は、apt-get
、apt-cache
、apt-config
の最も一般的なコマンドオプションを集約したものと言えます。apt
はより精簡ですが、十分なコマンドオプションを備えており、オプションの整理方式も効率的です。さらに、進捗バーの表示や、アップグレード可能なパッケージ数の提示などの便利な機能も含まれています。ただし、apt
とapt-get
のコマンドオプションは一部似ていますが、完全な下位互換性はありません。
aptコマンドと置き換えられたコマンド一覧
aptコマンド | 置き換えられたコマンド | コマンドの機能 |
---|---|---|
apt install | apt-get install | パッケージのインストール |
apt remove | apt-get remove | パッケージの削除 |
apt purge | apt-get purge | パッケージと設定ファイルの削除 |
apt update | apt-get update | リポジトリインデックスの更新 |
apt upgrade | apt-get upgrade | アップグレード可能なパッケージの全てをアップグレード |
apt autoremove | apt-get autoremove | 不要なパッケージの自動削除 |
apt full-upgrade | apt-get dist-upgrade | アップグレード時に依存関係を自動処理 |
apt search | apt-cache search | アプリケーションの検索 |
apt show | apt-cache show | インストール詳細の表示 |
aptコマンドの使い方
apt [options] command
主なオプション
-
-h | --help
:ヘルプを表示 -
-v | --version
:バージョンを表示 -
-y | --yes
:自動的にyes
と回答 -
-q | --quiet
:静かモード
主なコマンド
-
list
:名前によるパッケージリスト表示 -
search
:パッケージ説明の検索 -
show | info
:パッケージの詳細表示 -
install
:パッケージのインストール -
remove
:パッケージの削除 -
autoremove
:不要な自動インストール済みパッケージの削除 -
update
:パッケージリストの更新(インデックスファイルの更新) -
upgrade
:システムの更新(インストール/アップグレード) -
full-upgrade
:システムの完全更新(削除/インストール/アップグレード) -
edit-sources
:ソース情報ファイルの編集
破損したパッケージの修復インストールコマンド
apt --fix-broken install
パッケージ一覧表示
すべてのパッケージをリスト
root@ubuntu22:~# apt list
インストール済みのパッケージをリスト
root@ubuntu22:~# apt list --installed
アップグレード可能なパッケージをリスト
root@ubuntu22:~# apt list --upgradeable
使用例:特定のパッケージ名またはワイルドカード指定
root@ubuntu22:~# apt list redis*
Listing... Done
redis-redisearch-doc/jammy 1:1.2.2-4 all
redis-redisearch/jammy 1:1.2.2-4 amd64
redis-sentinel/jammy 5:6.0.16-1ubuntu1 amd64
redis-server/jammy 5:6.0.16-1ubuntu1 amd64
redis-tools/jammy 5:6.0.16-1ubuntu1 amd64
redis/jammy 5:6.0.16-1ubuntu1 all
root@ubuntu22:~# apt list --installed redis*
Listing... Done
使用例:検索
パッケージ名と説明情報で検索
root@ubuntu22:~# apt search nginx
正規表現での検索
root@ubuntu22:~# apt search "^ngin*"
パッケージ名のみで検索
root@ubuntu22:~# apt search --names-only nginx
使用例:パッケージの詳細情報クエリ
root@ubuntu22:~# apt info nginx
Package: nginx
Version: 1.18.0-6ubuntu14.1
Priority: optional
Section: web
Origin: Ubuntu
......
すべてのバージョンを表示
root@ubuntu22:~# apt show nginx -a
Package: nginx
Version: 1.18.0-6ubuntu14.1
Priority: optional
Section: web
Origin: Ubuntu
......
Package: nginx
Version: 1.18.0-6ubuntu14
Priority: optional
Section: web
Origin: Ubuntu
......
使用例:パッケージのインストール
root@ubuntu22:~# apt install nginx
複数のパッケージを同時にインストール
root@ubuntu22:~# apt install nginx redis -y
特定バージョンのパッケージをインストール(デフォルトでは最新版をインストール)
root@ubuntu22:~# apt install nginx=1.14.0-0ubuntu1
インストール済みの場合はアップグレードしないオプション
root@ubuntu22:~# apt install nginx --no-upgrade
既にインストールされている場合のみアップグレード
root@ubuntu22:~# apt install nginx --only-upgrade
使用例:パッケージの削除
特定パッケージの削除
root@ubuntu22:~# apt remove -y nginx
依存関係のある不要なパッケージの自動削除
root@ubuntu22:~# apt autoremove nginx
使用例:更新とアップグレード
情報の更新(実際の更新は行わない)
root@ubuntu22:~# apt update
Hit:1 https://mirrors.aliyun.com/ubuntu jammy InRelease
Get:2 https://mirrors.aliyun.com/ubuntu jammy-updates InRelease [114 kB]
Get:3 https://mirrors.aliyun.com/ubuntu jammy-backports InRelease [99.8 kB]
......
......
Fetched 1,853 kB in 4s (425 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
32 packages can be upgraded. Run 'apt list --upgradable' to see them.
インストール済みのすべてのパッケージをアップグレード
root@ubuntu22:~# apt upgrade
特定パッケージのアップグレード
root@ubuntu22:~# apt install --only-upgrade nginx
使用例:ソースの編集
root@ubuntu22:~# apt edit-sources
root@ubuntu22:~# vim /etc/apt/sources.list
使用例:キャッシュ情報
現在のシステムにインストールされているパッケージの統計情報を表示
root@ubuntu22:~# apt-cache stats
Total package names: 115071 (3,222 k)
Total package structures: 102921 (4,529 k)
Normal packages: 67637
......
指定ソフトウェアのすべてのバージョンを表示
root@ubuntu22:~# apt-cache madison nginx
nginx | 1.18.0-6ubuntu14.1 | https://mirrors.aliyun.com/ubuntu jammy-updates/main amd64 Packages
nginx | 1.18.0-6ubuntu14.1 | https://mirrors.aliyun.com/ubuntu jammy-security/main amd64 Packages
nginx | 1.18.0-6ubuntu14 | https://mirrors.aliyun.com/ubuntu jammy/main amd64 Packages
使用例:依存関係
パッケージの依存関係を確認
root@ubuntu22:~# apt-cache depends nginx
nginx
|Depends: nginx-core
|Depends: nginx-full
......
Breaks: <libnginx-mod-http-lua>
パッケージが何に依存されているかを確認
root@ubuntu22:~# apt-cache rdepends nginx | head
nginx
Reverse Depends:
nginx-core
nginx-light
nginx-full
nginx-extras
libnginx-mod-stream-geoip
nginx-core
nginx-extras
APTパッケージインデックス設定ファイル
設定ファイルを更新した後、apt update
を実行する必要があります。
/etc/apt/sources.list
/etc/apt/sources.list.d/
使用例:設定ファイルの構成
設定ファイルフォーマット説明
deb URL section1 section2
フィールド説明
-
deb
:固定開頭、これはバイナリパッケージのリポジトリを示します。deb-src
で始まる場合はソースコードリポジトリを示します。 -
URL
:リポジトリのURLは、ネットワークアドレスでもローカルミラーアドレスでもかまいません。 -
section1
:Ubuntuバージョンのコードネームを指定します。lsb_release -sc
コマンドを使用して確認できます。またはcat /etc/os-release
でも確認できます。 -
section2
:ソフトウェアのカテゴリを指定します。main
(完全なフリーソフトウェア)、restricted
(不完全なフリーソフトウェア)、universe
(コミュニティサポートのソフトウェア)、multiverse
(非自由ソフトウェア)。
使用例:リポジトリの設定
root@ubuntu22:~# cat /etc/apt/sources.list
deb https://mirrors.aliyun.com/ubuntu jammy main restricted # 主リポジトリのmainおよびrestrictedのソースを使用
# deb-src https://mirrors.aliyun.com/ubuntu jammy main restricted
deb https://mirrors.aliyun.com/ubuntu jammy-updates main restricted
# deb-src https://mirrors.aliyun.com/ubuntu jammy-updates main restricted
Ubuntuリポジトリの重要ディレクトリ
Ubuntuリポジトリには、dists
と pool
という2つの重要なディレクトリがあります。
-
dists
にはリポジトリのメタデータが含まれます。これには、パッケージの名前、対応するアーキテクチャ、バージョン番号、依存関係などが含まれます。
root@ubuntu22:~# tree /cdrom/dists/
/cdrom/dists/
├── jammy
│ ├── main
│ │ ├── binary-amd64
│ │ │ ├── Packages.gz
│ │ │ └── Release
│ │ ├── binary-i386
│ │ │ ├── Packages.gz
│ │ │ └── Release
│ │ └── source
│ ├── Release
│ ├── Release.gpg
│ └── restricted
│ ├── binary-amd64
│ │ ├── Packages.gz
│ │ └── Release
│ ├── binary-i386
│ │ ├── Packages.gz
│ │ └── Release
│ └── source
├── stable -> jammy
└── unstable -> jammy
aptコマンド操作のログファイル
/var/log/dpkg.log