ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
要点
- DEB(.deb)は、Debian および Debian 系ディストリビューション(Ubuntu、Linux Mint、Raspberry Pi OS など)で用いられるバイナリパッケージ形式。
- 実体は Unix の
arアーカイブで、内部にdebian-binary、control.tar.*、data.tar.*の三つのメンバを持つ。 - 低レベルでは
dpkg、高レベル(依存関係解決付き)ではapt/apt-get/aptitudeが扱う。 - 厳密なメタデータ(
control)と依存関係グラフによって、システム全体の整合性を保つ仕組みが組み込まれている。
概要
DEB は 1993 年に Ian Murdock が始めた Debian プロジェクトとともに整備された、Linux 黎明期から続くソフトウェア配布の標準形式のひとつである。Ubuntu の急速な普及により、現在では世界で最も広く使われているパッケージ形式と言ってもよい。
DEB ファイルは「ソフトウェア本体のファイル群」と「インストールに必要なメタデータ・スクリプト」を一つのアーカイブにまとめたものであり、対応するパッケージマネージャに渡せば、配置先のパス、所有者、パーミッション、依存パッケージの解決まで自動で行われる。
同種の形式である RPM(.rpm) と比較されることが多いが、設計思想・ツール体系ともに大きく異なる。詳細は「関連形式との比較」で扱う。
内部構造
DEB は Unix ar アーカイブであり、file コマンドで見ると Debian binary package (format 2.0) と表示される。ar t package.deb で内容を一覧でき、典型的には次の三つのメンバが含まれる。
- debian-binary — フォーマットバージョン(通常は
2.0)を書いたテキストファイル - control.tar.{gz,xz,zst} — メタデータ群。
control(パッケージ名・バージョン・依存・説明)、md5sums、preinst/postinst/prerm/postrm(インストール前後・削除前後に走るシェルスクリプト)など - data.tar.{gz,xz,zst} — 実際にシステムへ展開されるファイル群(
/usr/bin/、/usr/share/などのパスを含むディレクトリツリー)
control ファイルの中身は RFC 822 風の「キー: 値」形式で、次のようなフィールドを持つ。
Package: hello
Version: 2.10-2
Architecture: amd64
Maintainer: Example <dev@example.org>
Depends: libc6 (>= 2.34)
Description: The GNU Hello program
produces a familiar, friendly greeting.
圧縮アルゴリズムは時代とともに gzip → xz → zstd と移ってきており、Debian 12 / Ubuntu 24.04 では zstd の採用が広がっている。
主な用途
- OS 標準ソフトウェアの配布 — apt リポジトリにある数万のパッケージはすべて DEB 形式。
- サードパーティ製アプリの配布 — Google Chrome、Slack、VS Code、Zoom などはベンダーが
.debを直接配布している。 - 自社製品のインストーラ — 業務システム、エージェント、ドライバなど、Debian/Ubuntu サーバへ配布するための公式手段。
- 独自リポジトリ運用 —
repreproやaptlyでプライベート apt リポジトリを構築し、CI で生成した.debを配信する運用が広く行われている。
関連形式との比較
- vs RPM — RPM が cpio + ヘッダ構造なのに対し、DEB は
ar+ 二つの tar というシンプルな入れ子。メタデータ形式も RPM は専用バイナリヘッダ、DEB はテキスト。dpkg と rpm でデータベースの持ち方も異なる(dpkg は/var/lib/dpkg/statusのテキスト DB)。 - vs AppImage — AppImage は 1 ファイル完結でディストリ非依存、システムへの統合は最小限。DEB はシステムに「インストール」する形式で、依存関係を OS と共有する。
- vs Snap / Flatpak — Snap / Flatpak はサンドボックス化された配布形式。DEB はサンドボックスなしで、システム全体の信頼境界に入る。
- vs アーカイブ・圧縮形式 — 単なる tar.xz と異なり、DEB はメタデータ + ライフサイクルスクリプトを内包する点が決定的に違う。
コマンド・ツール
dpkg -i package.deb— 単一の.debをインストール(依存は解決しない)dpkg -I package.deb— control 情報の表示dpkg -c package.deb— 含まれるファイル一覧dpkg -L <pkg>— インストール済みパッケージのファイル一覧dpkg -S /path/to/file— どのパッケージに属するか逆引きapt install ./package.deb— 依存解決込みでローカル.debをインストール(apt 1.1 以降)apt-get update / upgrade / install— リポジトリ経由の通常運用dpkg-deb -b builddir package.deb— ディレクトリから.debを組み立てる(個人ビルド用)debuild/dpkg-buildpackage— 公式ルールに従って.debを生成する(メンテナ向け)lintian package.deb— Debian Policy への準拠を機械チェック
注意点
- 依存地獄を避ける。
dpkg -iだけだと依存が落ちて壊れた状態になりうる。apt -f installで復旧する流れを覚えておくと安心。 - ディストリビューションとアーキテクチャの一致。Ubuntu 22.04 用
.debを 18.04 へ入れると glibc バージョンの違いでクラッシュすることがある。amd64/arm64/armhfの取り違えにも注意。 - postinst スクリプトはルート権限で走る。アーカイブ・圧縮形式と違って、信頼できる配布元からのみインストールすること。ベンダー配布の
.debは必ず公式サイト・公式 GPG 鍵で署名検証する。 - サードパーティリポジトリの放置に注意。
/etc/apt/sources.list.d/に追加した古い PPA がディストリアップグレード時に競合を起こすことがあるので、不要になったら削除する。 - ファイル名規約は
<name>_<version>_<arch>.deb。アンダースコア区切りであり、ハイフン区切りの RPM と紛らわしいので注意。
関連リンク
- 実行ファイル・パッケージ(親カテゴリ)
- ファイル拡張子とは(概論)
- RPM(.rpm)(Red Hat 系の対抗形式)
- AppImage(.appimage)(Linux ポータブル配布)
- EXE(.exe)(Windows 実行ファイル)
- DMG(.dmg)(macOS 配布イメージ)
- アーカイブ・圧縮形式(tar / xz / zstd を内部で利用)
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?