debパッケージとは何か?(その2)

1 min read読了の目安(約1200字

前回までのあらすじ

適当に.debなファイルを落としてきて展開すればわかります。やってみましょう。

どうやって?という人も居るかもしれないので、apt downloadコマンドでパッケージ名指定すればいいですよ、と。

$ sudo apt update
$ apt download fonts-vlgothic 
取得:1 http://debian-mirror.sakura.ne.jp/debian bullseye/main amd64 fonts-vlgothic all 20200720-1 [2,240 kB]
2,240 kB を 2秒 で取得しました (1,339 kB/s)

fonts-vlgothicパッケージを指定したらこんな感じでした。ちなみにパッケージ名はtab補完が効くので、途中まで入力したらtabで一気に入れちゃいましょう。

$ ls
fonts-vlgothic_20200720-1_all.deb
$ ar -x fonts- (ファイル名も↓のようにtab補完しましょう)
$ ar -x fonts-vlgothic_20200720-1_all.deb
$

結果は何も出力されていませんが、ファイルは展開されてます。

$ ls
control.tar.xz  data.tar.xz  debian-binary  fonts-vlgothic_20200720-1_all.deb

ほらね。

  1. control.tar.xz
  2. data.tar.xz
  3. debian-binary

の3つが.debファイルから展開されてます。tarball2つと謎のdebian-binaryファイル。さて、この中身は何でしょう?

control.tar.{xz,gz} ?

こいつは「パッケージメタデータ」です。依存関係とか、パッケージの説明文とかそういうのが含まれてたりします。

data.tar.{xz,gz} ?

こいつがインストールされる「パッケージデータ」の本体です。

debian-binary ?

.debパッケージ形式のバージョンのメタデータです。ファイル名ではbianryとかいてありますが、単なるテキストファイルです。

$ file debian-binary 
debian-binary: ASCII text
$ cat debian-binary
2.0

こいつは今の所流通しているパッケージ全てで「2.0」です。