Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Unix/Linux 軟件安裝全攻略:從源碼編譯到二進制包管理

編輯:Linux 系統常見問題解答

一、源碼碼編譯安裝

1.1 手動 GCC 編譯鏈接

gcc -c main.c -o main.o   # 編譯為目標文件gcc -c haha.c -o haha.ogcc -c sin_value.c -o sin_value.o# 鏈接生成可執行文件,鏈接數學庫gcc -o main main.o haha.o sin_value.o -lm -L/usr/lib -L/lib

適用於極簡項目;大型項目需構建系統管理依賴與增量編譯。

1.2 Autotools 標準三步走

./configure  # 檢測環境:編譯器、庫、頭文件、OS 特性 → 生成 Makefilemake        # 按 Makefile 編譯、鏈接make clean  # 清理舊產物 (可選,保證乾淨)make install # 安裝到默認前綴 (/usr/local)

configure 核心檢測項:

  1. 是否有合適編譯器 (C/C++/Fortran…)。
  2. 依賴庫/頭文件是否存在 (如 libxml2、openssl)。
  3. OS/內核版本、POSIX 特性支持。
  4. 安裝路徑前綴 (--prefix) 等用戶選項。

原理:同源碼在不同平台 (CentOS/SUSE/Debian) 因庫路徑、內核版本、編譯器版本差異,**二進制不可直接移植**,必須在目標機重新編譯。

二、預編譯二進制分發

2.1 通用二進制包

廠商針對特定 OS/架構預編譯,用戶解壓即用 (如 Go、Node.js、JDK 官方 tarball)。缺點:無依賴管理、無統一卸載、難以統一升級。

2.2 RPM 套件管理

rpm -ivh package.rpm      # 安裝 (檢查依賴、寫入本地 RPM DB)rpm -e package            # 卸載rpm -q package            # 查詢rpm -V package            # 驗證文件完整性rpm2cpio package.rpm | cpio -idmv  # 解包不安裝
  • 包頭含依賴信息,安裝前自動校驗。
  • 安裝後註冊到 /var/lib/rpm,支持查詢/驗證/回滾。
  • 非跨平台:構建機環境必須與目標機一致 (同發行版、同主版本)。

2.3 SRPM (源碼 RPM)

package.src.rpm 含源碼 + .spec 構建腳本。用戶可 rpmbuild --rebuild package.src.rpm 在本機重新編譯生成適配當前環境的二進制 RPM,解決跨版本兼容問題。

三、高級包管理器 (推薦生產環境)

發行版系列前端工具後端特點
Debian/Ubuntuapt / apt-get / aptitudedpkg (.deb)依賴解決強、源豐富、PPA 支持
RHEL/CentOS/Fedoradnf / yumrpm (.rpm)企業級穩定、模塊化倉庫、模組流
Arch/Manjaropacman.pkg.tar.zst滾動更新、AUR 用戶倉庫極豐富
openSUSEzypperrpmSAT 解依賴、Btrfs 快照回滾

最佳實踐:優先使用發行版官方倉庫,缺失版本或定制需求時再考慮源碼編譯或第三方倉庫 (PPA/Copr/AUR)。

Copyright © Windows教程網 All Rights Reserved