製作「deb檔」- 範例「aobook」

前言

從這個「討論」看到的範例,剛好用來做練習。 因為還不會製作「Source Package」,所以沒有使用「Source Package」來製作「Binary Packge」。先用目前「會的方式」來製作。

準備工作環境

$ mkdir ~/Downloads/aobook/src -p

下載原始檔

到「這一頁」下載原始檔。

cd ~/Downloads/aobook/src
wget -c http://iij.dl.sourceforge.jp/aobook/62557/aobook-1.0.1.tar.bz2

解開

$ tar xf aobook-1.0.1.tar.bz2

安裝編譯需要的套件

安裝編譯的套件

$ sudo apt-get install build-essential

參考「這篇」,安裝編譯「aobook-1.0.1」相依的套件

$ sudo apt-get install gcc make libX11-dev libXext-dev libfreetype6-dev libfontconfig1-dev zlib1g-dev libpng12-dev libjpeg-dev

編譯

切換到「aobook-1.0.1」

$ cd aobook-1.0.1

configure

$ ./configure --prefix=/tmp/aobook/root/usr

因為等會要製作「deb檔」,所以我把「prefix」設定到「/tmp/aobook/root/usr」。(configure的prefix不能用相對路徑)

執行編譯

$ make

安裝到「/tmp/aobook/root/usr」

$ sudo make install

觀看目錄結構

$ tree /tmp/aobook/root/usr

顯示

/tmp/aobook/root/usr
├── bin
│   └── aobook
└── share
    ├── applications
    │   └── aobook.desktop
    └── icons
        └── hicolor
            ├── 48x48
            │   └── apps
            │       └── aobook.png
            ├── icon-theme.cache
            └── scalable
                └── apps
                    └── aobook.svg

9 directories, 5 files

製作「deb檔」

切換到「/tmp/aobook」

$ cd /tmp/aobook

產生「root/DEBIAN」資料夾

$ sudo mkdir root/DEBIAN -p

產生「control」檔

$ sudo touch root/DEBIAN/control

編寫「control」內容

sudo sh -c "echo 'Package: aobook' > root/DEBIAN/control"
sudo sh -c "echo 'Version: 1.0.1-1demo' >> root/DEBIAN/control"
sudo sh -c "echo 'Architecture: amd64' >> root/DEBIAN/control"
sudo sh -c "echo 'Priority: optional' >> root/DEBIAN/control"
sudo sh -c "echo 'Section: text' >> root/DEBIAN/control"
sudo sh -c "echo 'Maintainer: demo <developer@hell.heaven>' >> root/DEBIAN/control"
sudo sh -c "echo 'Depends: libx11-6, libxext6, libfreetype6, libfontconfig1, zlib1g, libpng12-0, libjpeg8' >> root/DEBIAN/control"
sudo sh -c "echo 'Homepage: http://azsky2.html.xdomain.jp/linux/aobook/' >> root/DEBIAN/control"
sudo sh -c "echo 'Description: 青空文庫テキストビューアです。' >> root/DEBIAN/control"
sudo sh -c "echo ' * freetype による縦書き表示&アンチエイリアスで綺麗に表示できます。 (フォントの描画品質は freetype に依存します) ' >> root/DEBIAN/control"
sudo sh -c "echo ' * 一般的な青空文庫の注記に対応しています。(あまり使わないと思われるものには対応していません) ' >> root/DEBIAN/control"
sudo sh -c "echo ' * UTF-8/Shift-JIS/EUC-JP/UTF16-LE/UTF16-BE に対応しています。' >> root/DEBIAN/control"
sudo sh -c "echo ' * 挿絵を表示することもできます。' >> root/DEBIAN/control"
sudo sh -c "echo ' * ZIP で圧縮されたテキストファイルも読み込めます。(先頭に格納されているファイルのみ) ' >> root/DEBIAN/control"
sudo sh -c "echo ' * しおりを付けることができます。' >> root/DEBIAN/control"
sudo sh -c "echo ' * ツール実行機能や、テキスト行番号で指定してページが表示できるなど、テキスト編集時の確認用としても使えます。' >> root/DEBIAN/control"

觀看「root/DEBIAN/control」內容

$ cat root/DEBIAN/control

顯示

Package: aobook
Version: 1.0.1-1demo
Architecture: amd64
Priority: optional
Section: text
Maintainer: demo <developer@hell.heaven>
Depends: libx11-6, libxext6, libfreetype6, libfontconfig1, zlib1g, libpng12-0, libjpeg8
Homepage: http://azsky2.html.xdomain.jp/linux/aobook/
Description: 青空文庫テキストビューアです。
 * freetype による縦書き表示&アンチエイリアスで綺麗に表示できます。 (フォントの描画品質は freetype に依存します)
 * 一般的な青空文庫の注記に対応しています。(あまり使わないと思われるものには対応していません)
 * UTF-8/Shift-JIS/EUC-JP/UTF16-LE/UTF16-BE に対応しています。
 * 挿絵を表示することもできます。
 * ZIP で圧縮されたテキストファイルも読み込めます。(先頭に格納されているファイルのみ)
 * しおりを付けることができます。
 * ツール実行機能や、テキスト行番号で指定してページが表示できるなど、テキスト編集時の確認用としても使えます。

產生「build」資料夾

$ sudo mkdir build

製作「deb檔」

$ sudo dpkg -b root build

會顯示

dpkg-deb: building package `aobook' in `build/aobook_1.0.1-1demo_amd64.deb'.

觀看製作完成的deb檔

執行

$ dpkg -I build/aobook_1.0.1-1demo_amd64.deb

顯示

 new debian package, version 2.0.
 size 132398 bytes: control archive=862 bytes.
    1088 bytes,    16 lines      control
 Package: aobook
 Version: 1.0.1-1demo
 Architecture: amd64
 Priority: optional
 Section: text
 Maintainer: demo <developer@hell.heaven>
 Depends: libx11-6, libxext6, libfreetype6, libfontconfig1, zlib1g, libpng12-0, libjpeg8
 Homepage: http://azsky2.html.xdomain.jp/linux/aobook/
 Description: 青空文庫テキストビューアです。
  * freetype による縦書き表示&アンチエイリアスで綺麗に表示できます。 (フォントの描画品質は freetype に依存します)
  * 一般的な青空文庫の注記に対応しています。(あまり使わないと思われるものには対応していません)
  * UTF-8/Shift-JIS/EUC-JP/UTF16-LE/UTF16-BE に対応しています。
  * 挿絵を表示することもできます。
  * ZIP で圧縮されたテキストファイルも読み込めます。(先頭に格納されているファイルのみ)
  * しおりを付けることができます。
  * ツール実行機能や、テキスト行番号で指定してページが表示できるなど、テキスト編集時の確認用としても使えます。

執行

$ dpkg -c build/aobook_1.0.1-1demo_amd64.deb

顯示

drwxr-xr-x root/root         0 2015-05-16 20:43 ./
drwxr-xr-x root/root         0 2015-05-16 20:42 ./usr/
drwxr-xr-x root/root         0 2015-05-16 20:42 ./usr/share/
drwxr-xr-x root/root         0 2015-05-16 20:42 ./usr/share/applications/
-rw-r--r-- root/root       116 2015-05-16 20:42 ./usr/share/applications/aobook.desktop
drwxr-xr-x root/root         0 2015-05-16 20:42 ./usr/share/icons/
drwxr-xr-x root/root         0 2015-05-16 20:42 ./usr/share/icons/hicolor/
-rw-r--r-- root/root      9396 2015-05-16 20:42 ./usr/share/icons/hicolor/icon-theme.cache
drwxr-xr-x root/root         0 2015-05-16 20:42 ./usr/share/icons/hicolor/48x48/
drwxr-xr-x root/root         0 2015-05-16 20:42 ./usr/share/icons/hicolor/48x48/apps/
-rw-r--r-- root/root      2294 2015-05-16 20:42 ./usr/share/icons/hicolor/48x48/apps/aobook.png
drwxr-xr-x root/root         0 2015-05-16 20:42 ./usr/share/icons/hicolor/scalable/
drwxr-xr-x root/root         0 2015-05-16 20:42 ./usr/share/icons/hicolor/scalable/apps/
-rw-r--r-- root/root      9135 2015-05-16 20:42 ./usr/share/icons/hicolor/scalable/apps/aobook.svg
drwxr-xr-x root/root         0 2015-05-16 20:42 ./usr/bin/
-rwxr-xr-x root/root    307040 2015-05-16 20:42 ./usr/bin/aobook

測試安裝

$ sudo dpkg -i build/aobook_1.0.1-1demo_amd64.deb

會顯示

Selecting previously unselected package aobook.
(Reading database ... 947430 files and directories currently installed.)
Preparing to unpack .../aobook_1.0.1-1demo_amd64.deb ...
Unpacking aobook (1.0.1-1demo) ...
Setting up aobook (1.0.1-1demo) ...
Processing triggers for mime-support (3.54ubuntu1.1) ...
Processing triggers for gnome-menus (3.10.1-0ubuntu2) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...

執行

$ dpkg -l aobook

顯示

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                         Version             Architecture        Description
+++-============================-===================-===================-==============================================================
ii  aobook                       1.0.1-1demo         amd64               青空文庫テキストビューアです。

執行

$ dpkg -L aobook

顯示

/.
/usr
/usr/share
/usr/share/applications
/usr/share/applications/aobook.desktop
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/icon-theme.cache
/usr/share/icons/hicolor/48x48
/usr/share/icons/hicolor/48x48/apps
/usr/share/icons/hicolor/48x48/apps/aobook.png
/usr/share/icons/hicolor/scalable
/usr/share/icons/hicolor/scalable/apps
/usr/share/icons/hicolor/scalable/apps/aobook.svg
/usr/bin
/usr/bin/aobook

執行「aobook」

$ aobook

應該會正常啟動程式。