---
hackpadID: uXGJHm1zcgj
hackpadWorkspace: tossug
tags: hackpad-import, tossug
---
# 如何編譯一個 Debian package
###### tags: `Debian packaging workshop`
## Native way
1. 首先利用 lxc 建立一個 Ubuntu 14.04 的 VM 或者你也可以直接使用你的 Debian/Ubuntu 環境
* sudo apt-get install lxc
* sudo MIRROR=[](http://free.nchc.org.tw/ubuntu)http://free.nchc.org.tw/ubuntu lxc-create -t ubuntu -n trusty -- -r trusty -a amd64 # 建立乾淨的VM
* sudo lxc-start -d -n trusty # 啟動vm
* sudo lxc-console -n trusty # 登入VM
1. 安裝必要套件
* sudo apt-get install dpkg-dev devscripts
1. 安裝相依的軟體套件(以 hime 為例)
* sudo apt-get build-dep hime
1. 修改 /etc/apt/sources.list 加入相關的 deb-src lines,例如以下
* deb-src [](http://free.nchc.org.tw/ubuntu)http://free.nchc.org.tw/ubuntu trusty main restricted universe multiverse
* deb-src [](http://free.nchc.org.tw/ubuntu)http://free.nchc.org.tw/ubuntu trusty-updates main restricted universe multiverse
* deb-src [](http://security.ubuntu.com/ubuntu)http://security.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
1. 下載該套件的 Debian source package (以下列出抓取不同來源的方法)
* apt-get source hime # 抓取該 Distribution 上面的版本
* debcheckout hime # 從 Debian version control 上抓 Debian source package
* dget -x -u [](http://dearchive.ubuntu.com/ubuntu/pool/universe/h/hime/hime_0.9.10-3.dsc)http://dearchive.ubuntu.com/ubuntu/pool/universe/h/hime/hime_0.9.10-3.dsc # 指定特定版本抓 Debian source package
1. 準備好姓名與Email
* export DEBEMAIL="your@email.com"
* export DEBFULLNAME="Your Name"
1. 修改 changelog
* dch -R -D trusty Rebuild for trusty.
1. 開始編譯 Debian binary package
* debuild -us -uc -tc
1. 安裝產生出來的 Debian binary package 進行測試
2. 產生 Debian source package
* debuild -S
## Setup sbuild to Build Debian Package
**Setup**
mk-sbuild --arch=<arch> release
**List**
schroot -l
**Update**
schroot -c source:sid-amd64
apt update
apt full-install
**Build**
sbuild -A -d unstable -c chroot:sid-amd64 package.dsc
**autopkgtest**
adt-run package.dsc --- adt-virt-schroot chroot:sid-amd64