直接 make install 部署的軟體難以追蹤檔案、無法乾淨移除。CheckInstall 透過攔截安裝過程記錄所有新增/修改檔案,自動打包為原生 RPM (Red Hat 系) 或 DEB (Debian 系) 套件,納入套件管理系統統一管理。本文示範在 CentOS 7 與 Debian 7 上以 htop 原始碼建立套件的完整流程。

aptitude install checkinstall
wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/ikoinoba/CentOS_CentOS-6/x86_64/checkinstall-1.6.2-3.el6.1.x86_64.rpm
yum install checkinstall-1.6.2-3.el6.1.x86_64.rpm
# 1. 準備原始碼
cd /usr/local/src
wget https://hisham.hm/htop/releases/1.0.3/htop-1.0.3.tar.gz
tar xzf htop-1.0.3.tar.gz
cd htop-1.0.3
# 2. 配置 (產生 Makefile)
./configure
# 3. 用 CheckInstall 取代 make install
checkinstall
# 依提示輸入:
# - 套件說明 (輸入描述,空行結束)
# - 確認/修改套件資訊 (名稱、版本、授權、群組、架構、依賴等)
# - 完成後自動產生 .rpm 或 .deb 並安裝
htop-1.0.3-1.x86_64.rpmhtop_1.0.3-1_amd64.deb套件已安裝於系統,亦可複製 .rpm/.deb 檔分發至其他同架構主機直接 rpm -ivh / dpkg -i 安裝。
| 參數 | 說明 |
|---|---|
| --pkgname=名稱 | 指定套件名稱 |
| --pkgversion=版本 | 指定版本號 |
| --pkgrelease=釋出號 | 指定 release |
| --pkglicense=授權 | 指定授權條款 |
| --pkggroup=群組 | 指定套件分群 |
| --requires=套件清單 | 指定依賴 (逗號分隔) |
| --maintainer=維護者 | 指定維護者資訊 |
| --install=no | 僅打包不安裝 |
| --fstrans=no | 不使用偽 root 環境 (某些建構系統需關閉) |
| -D | 建立 Debian 套件 (強制) |
| -R | 建立 RPM 套件 (強制) |
| -S | 建立 Slackware 套件 |