Linux 軟體安裝方式多樣,各有優劣。本文系統整理原始碼編譯、RPM/DEB 二進制套件、YUM/DNF/APT 倉庫管理三大體系,並以 Apache Httpd 原始碼安裝為實戰案例。
| 副檔名 | 類型 | 適用發行版 | 特點 |
|---|---|---|---|
| .tar.gz/.tar.bz2/.tgz | 原始碼包 | 通用 | 需編譯、高度客製化、無相依自動解析 |
| .rpm | 二進制套件 | RHEL/CentOS/Fedora/SUSE | 預編譯、相依管理、資料庫追蹤 |
| .deb | 二進制套件 | Debian/Ubuntu/Mint | 同上,工具為 dpkg/apt |
| .bin/.run | 商業軟體安裝程式 | 通用 | 互動式/靜默安裝、通常閉源 |
# 1. 下載解壓
wget https://example.com/foo-1.0.tar.gz
tar zxvf foo-1.0.tar.gz && cd foo-1.0
# 2. 閱讀文檔(關鍵!)
cat README INSTALL
# 3. 環境檢測與配置
./configure --prefix=/opt/foo-1.0 --enable-feature-x
# 4. 編譯
make -j$(nproc)
# 5. 安裝(需 root)
make install
# 6. 環境變數
echo 'export PATH=/opt/foo-1.0/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Makefile 與 config.hmake 執行增量編譯--prefix 路徑# 下載
wget https://dlcdn.apache.org/httpd/httpd-2.4.58.tar.bz2
tar jxvf httpd-2.4.58.tar.bz2 && cd httpd-2.4.58
# 配置:啟用 DSO、大多數模組共享、Proxy/SSL/重寫
./configure \
--prefix=/opt/apache-2.4.58 \
--enable-so \
--enable-mods-shared=most \
--enable-ssl=shared \
--enable-proxy=shared \
--enable-proxy-http=shared \
--enable-proxy-balancer=shared \
--enable-rewrite=shared \
--with-pcre=/usr/local/pcre \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util
# 編譯安裝
make -j4 && make install
# 管理腳本
/opt/apache-2.4.58/bin/apachectl start|stop|restart|graceful
nginx-1.24.0-1.el9.x86_64.rpm
│ │ │ │ └─ 架構:x86_64/i686/noarch
│ │ │ └─ 發行版:el9/fc38
│ │ └─ 發布次數:修訂版本
│ └─ 版本號:上游版本
└─ 軟體名稱
| 操作 | 指令 | 常用參數 |
|---|---|---|
| 安裝 | rpm -ivh pkg.rpm | --test(試裝) --nodeps(忽略相依) --prefix(重定向) |
| 升級 | rpm -Uvh pkg.rpm | --oldpackage(降級) |
| 查詢 | rpm -q pkg | -a(全部) -i(資訊) -l(檔案清單) -c(設定檔) -d(文檔) --scripts(腳本) |
| 驗證 | rpm -V pkg | 檢查檔案大小/權限/MD5/擁有者/類型 |
| 移除 | rpm -e pkg | --nodeps --test |
# 安裝 SRPM
rpm -ivh nginx-1.24.0-1.el9.src.rpm
# 檔案釋放至 ~/rpmbuild/{SPECS,SOURCES}
# 修改 SPEC 檔(如調整編譯參數)
vim ~/rpmbuild/SPECS/nginx.spec
# 重建二進制 RPM
rpmbuild -ba ~/rpmbuild/SPECS/nginx.spec
# 產出:~/rpmbuild/RPMS/x86_64/nginx-*.rpm
# 常用指令
yum search keyword # 搜尋
yum info pkg # 詳細資訊
yum install pkg # 安裝(自動解析相依)
yum update [pkg] # 更新全部/指定
yum remove pkg # 移除
yum list installed # 已安裝清單
yum provides */foo.h # 反查檔案屬於哪包
yum history # 交易歷史/回滾
# 第三方倉庫:EPEL、Remi、ElRepo
yum install -y epel-release
# dpkg 底層工具
dpkg -i pkg.deb # 安裝
dpkg -l | grep pkg # 查詢
dpkg -L pkg # 檔案清單
dpkg -S /path/to/file # 反查
dpkg -r pkg # 移除
# APT 高階工具
apt update # 更新索引
apt search keyword
apt show pkg
apt install pkg
apt upgrade
apt autoremove # 清理孤兒套件
apt list --installed
# 修復相依
apt --fix-broken install
/opt/name-version,避免汙染 /usr/localmake install 2>&1 | tee install.log掌握三大體系,面對任何 Linux 軟體部署場景皆能游刃有餘。