製作「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
應該會正常啟動程式。