2013年7月13日 星期六

人工封裝 deb 套件

deb 套件基本上是 debian-binary、control.tar.gz、data.tar.gz 三個檔案由 ar 壓起來的壓縮檔。debian-binary 內容為 deb 檔案格式的版本號,通常是 2.0。control.tar.gz 可以解出含有套件資訊的相關檔案,data.tar.gz 則為套件要安裝的內容本身。control 與 data 並不一定要 tar.gz,可以選用其他支援的壓縮格式。

以 Gnome 的 Archive Manager 將 deb 套件解壓縮會直接將 control.tar.gz 解成 DEBIAN 資料夾,並和 data.tar.gz 解出來的東西放在一起。debian-binary 則略過。

如果要解開成原始的三個檔案,可以用原始的 ar 命令:
$ ar x package.deb

壓回去的話要注意 debian-binary 一定要放最前面:
$ ar r package.deb debian-binary control.tar.gz data.tar.gz

更方便的作法是利用 fakeroot 和 dpkg-deb 直接把 DEBIAN 資料夾和要安裝的東西包成 deb 套件:
$ fakeroot dpkg-deb -b [input_dir] [output_deb]