Linuxのパッケージ(deb)とパネージャー(apt, apt-get)について徹底解説します
「Linux徹底入門」について
Linuxに対する知識を整理し、LPIC合格にも役立つような記事にすることを目指しています。
debパッケージとは?
Debian パッケージ(通常は .deb ファイル拡張子を持つ)は、Debian ベースの Linux ディストリビューションで使用されるパッケージ形式です。Debian パッケージがあることで、ソフトを”パッケージ”の単位で管理することで、管理を容易にすることができます。
- debパッケージの構造 : debパッケージは以下から構成されます。
- Controlファイルと呼ばれるパッケージの情報を記載したファイル
- インストールされるファイルのアーカイブ
- インストール時に実行されるスクリプトなど
- 依存関係: Debian パッケージは、他のパッケージへの依存を定義できます。必要なパッケージを明確にし、インストール時に依存関係が満たされていることを担保できます。
- パッケージ管理ツール: Debian パッケージは
dpkgツールを使用してインストール、アップグレード、削除されます。また、高レベルのツールとしてaptやapt-getがあり、これらを使用して依存関係を解決し、パッケージを効率的に管理できます。 - パッケージリポジトリ: Debian パッケージは、公式の Debian リポジトリや他のカスタムリポジトリから入手できます。これにより、数千ものパッケージが利用可能で、ソフトウェアの簡単なインストールとアップデートが可能です。
パッケージマネージャーとは?
Debパッケージを管理するツールとして、apt, apt-get, aptitude, dpkg等があります。
これらのうち、主流であるaptとdpkgを中心に解説します。
aptはインターネットからのパッケージの取得や依存関係の解決などの高度な機能を持ったツールです。
dpkgはローカルPC上の単一パッケージを管理する低レベルツールです。
| apt | dpkg | |
| パッケージのインストール&アンインストール | O | O |
| インターネットからのパッケージ取得 | O | X |
| 依存関係の解決 | O | X |
apt, apt-get, aptitudeの違い
aptとよく似たコマンドにapt-get, aptitudeがあります
aptは開発者が直接触ることに適した親切なコマンドです。
apt-getはよりローレベルな制御を可能とするコマンドでツール内に仕込んだりするのに向いています。
aptの使い方
apt コマンドを使用することで、パッケージのインストールやアップデート、リポジトリの管理などが容易に行えます。
基本的なコマンド
パッケージのアップデート
sudo apt update
システムのアップグレード
sudo apt upgrade
パッケージのアップグレード&不要なパッケージの削除
(sudo apt dist-upgradeを使うと、パッケージのアップグレードに伴う必要な依存関係の解決のための新しいパッケージのインストールや古いパッケージの削除をインテリジェントに行うことができます)
パッケージの検索
apt search package-name
パッケージのインストール
sudo apt install package-name
パッケージの削除
sudo apt remove package-name
パッケージ情報の表示
apt show package-name
リポジトリについて
aptのパッケージはリポジトリと呼ばれるデータベースから取得されます。
通常、これは/etc/apt/sources.list, /etc/apt/sources.list.dディレクトリ内に定義されています。
]$ cat /etc/apt/sources.list
deb http://deb.debian.org/debian/ bookworm main
deb-src http://deb.debian.org/debian/ bookworm main
deb http://security.debian.org/debian-security bookworm-security main
deb-src http://security.debian.org/debian-security bookworm-security main
# bookworm-updates, to get updates before a point release is made;
# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
deb http://deb.debian.org/debian/ bookworm-updates main
deb-src http://deb.debian.org/debian/ bookworm-updates main
リポジトリには公式のものとサードパーティのものがあります。
- 公式リポジトリ: Debian ディストリビューション自体に同梱されており、基本的なソフトウェアパッケージを提供します。これらのパッケージは Debian プロジェクトによってメンテナンスされており、セキュリティアップデートなどが提供されます。
- サードパーティリポジトリ: Debian プロジェクト以外の個人、組織、コミュニティが提供するリポジトリです。これらのリポジトリは追加のソフトウェアパッケージを提供し、特定のユーザーや開発者向けのソフトウェアを含むことがあります。
Debの使い方
dpkg コマンドは、Debian ベースの Linux ディストリビューションでパッケージの管理に使用される低レベルのユーティリティです。aptとは違いインターネットからパッケージを持ってくる機能はありません。ローカルPC上のパッケージを管理するツールです。
基本的な使い方
パッケージのインストール
sudo dpkg -i package-file.deb
パッケージの削除
sudo dpkg -r package-name
パッケージと設定ファイルの削除
sudo dpkg -P package-name
インストールされているパッケージのリストアップ
dpkg -l
[応用編] 特定のファイルが所属するパッケージを調べ
特定のファイルがどのパッケージに属しているかを調べるには、dpkg -S コマンドを使用します。
コマンドは次の形式です:
dpkg -S filename
ここで、filename は調べたいファイルの名前です。
例えば、ファイルが /usr/bin/example の場合、次のように検索します:
dpkg -S /usr/bin/example
dpkg はファイルが含まれているパッケージ名を表示します.
また、ファイルが存在しない場合、dpkg は結果を返さずにエラーメッセージを表示します。
[応用編] インストール済みのdebパッケージのファイルリストの表示
dpkg –listでインストール済みのパッケージの一覧を出力できます。
こんな感じ

ここで特定のパッケージに含まれるファイルの一覧を出力するためには
dpkg -L [パッケージ名]と指定します。
例えば、dpkg -L libgtk-4-1

こんな感じ


