萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 從原始碼建立 RPM/DEB 套件:CheckInstall 讓編譯安裝可追蹤、可移除

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

CheckInstall 互動介面

安裝 CheckInstall

Debian/Ubuntu

aptitude install checkinstall

RHEL/CentOS (需外部 RPM)

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 並安裝

輸出範例

  • CentOS 7:htop-1.0.3-1.x86_64.rpm
  • Debian 7:htop_1.0.3-1_amd64.deb

套件已安裝於系統,亦可複製 .rpm/.deb 檔分發至其他同架構主機直接 rpm -ivh / dpkg -i 安裝。

進階參數

適用範圍與限制

  • 支援 make install、make install_modules、python setup.py install、perl Makefile.PL && make install 等標準安裝流程。
  • 不支援互動式安裝程式、二進位安裝器、需使用者輸入的安裝流程。
  • 生產環境建議改用官方打包流程 (rpmbuild/.spec、dpkg-buildpackage/debian/ 目錄) 以獲得完整相依關係、檔案驗證、升級路徑。

小結

CheckInstall 為「原始碼安裝 → 套件管理」提供快速橋樑,適合內部工具、測試環境、缺乏官方套件的軟體部署。掌握 checkinstall --install=no 產出可分發套件檔,結合自有 YUM/APT 倉庫,即可實現編譯安裝的標準化管理。

copyright © 萬盛學電腦網 all rights reserved
參數說明
--pkgname=名稱指定套件名稱
--pkgversion=版本指定版本號
--pkgrelease=釋出號指定 release
--pkglicense=授權指定授權條款
--pkggroup=群組指定套件分群
--requires=套件清單指定依賴 (逗號分隔)
--maintainer=維護者指定維護者資訊
--install=no僅打包不安裝
--fstrans=no不使用偽 root 環境 (某些建構系統需關閉)
-D建立 Debian 套件 (強制)
-R建立 RPM 套件 (強制)
-S建立 Slackware 套件