快速製作 Debian Package, 單純 Hello world 版, 若要詳細版本可見:
Debain Package 相關資料
- Debian Repository HOWTO - 建立 Debian Repository
- DDP Developers' Manuals - Debain Developer 文件總整理
此為快速製作 deb 簡易版, 主要是包自己的 Package 用, 只寫基本 build package 需要的檔案.
資料準備
- Package name: Tsung-api (Debian package name 不允許底線 => "_")
- Package description: Tsung open api
- 檔案路徑: /tmp/api/
- 檔案列表:
- /tmp/api/lib/hello.php
- /tmp/api/lib/db/db.php
- /tmp/api/web/index.php
- /tmp/api/web/template/index.php
安裝要製作 Package 所需套件
- apt-get install dh-make debhelper fakeroot
Debian Package 所需檔案 (changelog, control, dirs, rules 四個檔案)
- debian/
- debian/changelog
- debian/control
- debian/dirs
- debian/rules
- 此 debian 目錄 含裡面的檔案, 需置於包 Package 的資料夾內, 所以完整路徑會是: /tmp/api/debian
Debian Package 所需檔案的內容 (changelog, control, dirs, rules)
changelog
tsung-api (0.0.1-1) unstable; urgency=low* Initial release
-- Tsung <tsunghao@gmail.com> Sat, 29 Apr 2006 21:13:14 +0800
control
Source: tsung-api
Section: misc
Priority: optional
Maintainer: Tsung <tsunghao@gmail.com>
Build-Depends: debhelper (>= 4.0.0)
Standards-Version: 3.6.2Package: tsung-api
Architecture: all
Depends:
Description: This is Tsung Open API Package
URL: https://blog.longwin.com.tw
API: /usr/share/php/api/
Web: /var/www/api/
dirs
usr/share/php/api
var/www/api
rules
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Tsung.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1clean:
dh_testdir
dh_testroot
dh_cleanbuild:
# Nothing to dobinary: binary-arch binary-indep
# Nothing to dobinary-arch:
# Nothing to do#install: build
# dh_testdir
# dh_testroot
# dh_clean -k
# dh_installdirsbinary-indep:
dh_testdir
dh_installdirs# Custom package commands
cp -r web/* debian/tmp/var/www/api/
cp -r lib/* debian/tmp/usr/share/php/api/# Resuming debhelper scripts
dh_testroot
dh_installchangelogs
dh_installdocs
dh_fixperms
dh_compress
dh_gencontrol
dh_md5sums
dh_builddeb
.PHONY: binary binary-arch binary-indep build clean
rules 內容都先不要管, 只要注意下述兩行:(上述這些檔案, 粗體字的地方請務必修改, 剩下的再自行斟酌修改即可)
- cp -r web/* debian/tmp/var/www/api/
- cp -r lib/* debian/tmp/usr/share/php/api/
這是 Build Package 時, 會自動執行的指令, 安裝時也會安裝到此路徑, 需要知道的就下述幾點:
- Build Package 時, 會執行這些動作. (亦會自動產生 debian/tmp/ 的目錄)
- 請將 debian/tmp/ 當成 / 來看. (安裝時, debian/tmp/ 就等於根目錄的意思, 在此目錄放在何處, 安裝完成就會在哪邊)
- ex: debian/tmp/var/www/api/ => 安裝完成時 /var/www/api/ # 這裡面會有 web/* 的檔案
- 在此所需要的目錄, 於 dirs 裡面一定要寫.
製作 Package
- cd /tmp/api
- dpkg-buildpackage -rfakeroot -b # 即 build package.deb 完成.
Build Package 自動產生的檔案列表
- /tmp/api/debian/tmp/ - 所有檔案都會先暫存於此
- /tmp/api/debian/debhelper.log
- /tmp/api/debian/files
- /tmp/DEBIAN/
- /tmp/DEBIAN/control - Package 描述
- /tmp/DEBIAN/md5sums - 所有檔案的 "md5 <-> filename" 對應
- /tmp/tsung-api_0.0.1-1_i386.changes
- /tmp/tsung-api_0.0.1-1_all.deb # package 產生完成.
安裝
- dpkg -i tsung-api_0.0.1-1_all.deb
移除
- dpkg -r tsung-api # 移除.
懶人包: 直接下載此檔案 debian-package.tgz (上述的檔案整理成一個壓縮檔), 解開後, 將檔案內容改一改, 即可執行建立 Package.
測試懶人包 - 直接包 Package
- apt-get install dh-make debhelper fakeroot
- 下載 debian-package.tgz 到 /tmp
- cd /tmp
- tar zxvf debian-package.tgz
- cd debian-package
- dpkg-buildpackage -rfakeroot -b
- cd /tmp
- ls # 即可找到 tsung-api_0.0.1-1_all.deb
- dpkg -i tsung-api_0.0.1-1_all.deb # 安裝
- dpkg -r tsung-api # 移除