Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 軟件包管理全解析:RPM 與源碼編譯安裝卸載實戰

編輯:Linux 教學

兩大安裝體系對比

維度RPM 二進制包源碼包 (.tar.gz)
文件後綴.rpm (.i386.rpm, .x86_64.rpm).tar.gz / .tar.bz2 / .tar.xz
安裝速度秒級,預編譯分鐘至小時級,需本地編譯
依賴處理自動檢查,需配合 yum/dnf手動解決,configure 階段報錯
定制化程度固定編譯選項完全可控,支持 --prefix、功能裁剪
卸載乾淨度數據庫記錄,乾淨依賴 make uninstall,常有殘留
適用場景生產環境、標準化部署開發調試、特殊優化、無 RPM 發布軟件

源碼包標準安裝流程

# 1. 獲取並解壓
wget https://example.com/software-1.0.tar.gz
tar -xzf software-1.0.tar.gz
cd software-1.0

# 2. 閱讀文檔(關鍵步驟!)
cat INSTALL
cat README
./configure --help  # 查看所有編譯選項

# 3. 配置編譯參數
./configure --prefix=/usr/local/software \
            --enable-feature-x \
            --with-ssl=/usr/local/openssl

# 4. 編譯(可並行加速)
make -j$(nproc)

# 5. 安裝(需 root 權限)
make install

# 6. 清理構建產物
make clean
make distclean  # 連同 configure 生成文件一起清理

關鍵環節詳解

  • configure: 檢測編譯環境、依賴庫版本、生成 Makefile。失敗時仔細閱讀 config.log
  • make: 執行編譯鏈接。報錯多因缺少開發包(-devel/-dev),需安裝對應庫的開發版本
  • make install: 將二進制、庫、頭文件、文檔複製到 --prefix 指定目錄
  • ldconfig: 安裝庫文件後必須執行 ldconfig 更新動態鏈接庫緩存

RPM 包管理核心命令

安裝與升級

rpm -ivh package.rpm          # 安裝顯示進度
rpm -Uvh package.rpm          # 升級/安裝(推薦)
rpm -ivh --nodeps package.rpm # 強制忽略依賴(慎用!)

查詢與驗證

rpm -qa                       # 列出所有已安裝包
rpm -qa | grep kernel         # 過濾查詢
rpm -qi package_name          # 詳細信息
rpm -ql package_name          # 文件列表
rpm -qf /path/to/file         # 反查文件屬於哪個包
rpm -V package_name           # 驗證文件完整性(S.5....T. 代碼含義見 man rpm)

卸載操作

rpm -e package_name           # 標準卸載
rpm -e --nodeps package_name  # 忽略依賴強制卸載(極度慎用,會破壞系統一致性)

進階技巧與最佳實踐

自製 RPM 包

# 使用 rpmbuild 將源碼打包為 RPM
rpmbuild -tb software-1.0.tar.gz
# 生成的 RPM 在 ~/rpmbuild/RPMS/

源碼安裝後的包管理整合

使用 checkinstall 替代 make install,自動生成 RPM/DEB 包並註冊到數據庫:

./configure && make
checkinstall -D --install=yes --fstrans=yes
# 產生 package.rpm 並自動安裝,未來可用 rpm -e 卸載

常見問題排查

  • configure: error: C compiler cannot create executables → 安裝 gcc gcc-c++ make (RHEL) 或 build-essential (Debian/Ubuntu)
  • error while loading shared libraries: libxxx.so.1 → 執行 ldconfig 或將庫路徑加入 /etc/ld.so.conf.d/
  • RPM 數據庫損壞 → rpm --rebuilddb 重建數據庫
Copyright © Windows教程網 All Rights Reserved