ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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 と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?