linux 下軟件包的安裝
1. linux 下有那些方式安裝軟件包
- 使用 rpm 命令安裝 官方或第三方 封裝的rpm包
- 使用 yum 工具安裝rpm 包.
- 編譯安裝 開源的軟件源碼包.
2. rpm包的安裝和管理
2.1 rpm包命名
此處以httpd 包爲例.
httpd -2.4.6 -15 .el7.centos .x86_64 .rpm
軟件名 軟件版本 發佈次數 系統平臺 架構 包擴展名
# 常見架構
x86: i386, i486, i586, i686
x86_64: x64, x86_64, amd64
2.2 rpm包管理器
rpm 包是封裝好的包, 多數的rpm包應當含有: 二進制文件, 庫文件, 配置文件, 幫助文件 程序包管理器: 將編譯好的應用程序打包成爲一個或多個程序包. 包文件組成: RPM包內文件 元數據, 如名稱, 版本, 依賴性, 描述 安裝或卸載的腳本 數據庫: /var/lib/rpm 程序包名稱以及版本 依賴關係, 功能說明 包安裝後生成的各種文件路徑以及校驗碼
2.3 rpm包獲取源方式
- 系統發行版的光盤 或光盤鏡像
- 軟件項目官網
- 第三方組織, EPEL
- rpm 搜索引擎
- 自己製作的
2.4 光盤內的RPM包
一般常用必備的軟件官方都會有封裝好的rpm包, 並收錄在光盤. 所以我們這裏先將centos的光盤掛載上, 然後從裏面獲取官方的 rpm包.
- 光盤內軟件都在
Pacakages
目錄.
2.5 rpm 命令用法
-
概述 rpm 命令是RPM 軟件包的管理工具, 是RedHatLinux 發行版本用來管理Linux 套件的程序, 遵循了GPL 規則, 且功能強大,
-
語法
rpm [OPTIONS] PACKAGE
-
選項
-a: 查詢所有已安裝的rpm包
-c: 只列出組態配置文件, 需要結合 -l 使用
-d: 只列出文本, 需要結合 -l 使用
-e: --erase: 刪除指定的已安裝包
-f <FILE>: 查詢指定文件的安裝包
-h: --hash 安裝包安裝時顯示標記
-i: 顯示相關軟件包的信息
-i <PACKAGE>: --install 安裝指定的軟件包
-l: 顯示指定軟件包的文件列表
-p <PACKAGE>: 查詢指定的(未安裝)軟件包
-q: 使用詢問模式, 遇到問題時, 會先詢問用戶
-R: 顯示 依賴信息
-s: 顯示文件狀態, 需要結合 -l 使用
-U <PACKAGE>: --upgrade 升級指定軟件包
-v: 顯示指令執行過程
-vv: 顯示更加詳細過程
--test: 測試安裝, 不真正執行安裝
--nodeps: 不檢測依賴性
--force: 強制安裝
--oldpackage: 降級
--replacekgs: 已安裝過的包 重裝
--replacefile: 其他已安裝的rpm包的文件, 與現有文件衝突時 覆蓋
--nosignature: 不檢查來源合法性
--nodigest: 不執行程序腳本
%pre: 安裝前腳本 --nopre
%post: 安裝後腳本 --nopost
%preun: 卸載前腳本 --nopreun
%postun:卸載後腳本 --nopostun
2.6 rpm命令的使用
- 這裏測試使用rpm 命令安裝 vsfptd, 先查看這個包的依賴 rpm -qRp PACKAGE
- 查看這個包的信息 rpm -qip PACKAGE
- 查看這個包的配置文件相關位置
- 安裝
- 嘗試啓動vsftpd, 並查看
- 查看這個包 並 卸載 vsftpd
3. yum 工具
3.1 yum 是什麼
yum 是RadHat, Fedora 以及 CentOS 中常用的前端軟件包管理工具, 基於rpm 包管理, 能夠衝指定服務器上下載PRM包並安裝, 可以自動檔處理依賴關係, 並且一次安裝所有依賴包, 無需單獨下載安裝, yum 還可以查找, 刪除 一個或一組軟件包.
3.2 yum 工具用法
-
語法:
yum [OPTIONS] [GREAM]
-
選項
-h: 顯示幫助信息
-y: 對多有提問回答yes
-c: 指定配置文件
-q: 安靜模式
-v: 顯示詳細信息
-d: 設置調試等級(0-10)
-e: 設置錯誤等級(0-10)
-R: 設置yum 處理命令最大等待時間
-C: 從緩存中運行, 不去下載新的頭文件
- 參數
install: 安裝 rpm包
update: 更新rpm包
check-update: 檢查是否有 更新
remove: 刪除指定的rpm包
list: 顯示軟件包信息
search: 搜索軟件包
info: 顯示指定rpm包的描述信息和概要
clean: 清除yum 過期的緩存
shell: 進入yum 的shell 提示符
resolvedep: 顯示指定rpm的依賴關係
localinstall: 安裝本地的 rpm包
localupdate: 顯示本地rpm 軟件包進行更新
deplist: 顯示rpm 包的所有依賴關係
- 常用操作
#安裝
yum install # 安裝全部
yum install PACKAGE # 安裝指定的 package
yum groupinstall GROUP1 # 安裝程序組 group1
# 更新
yum update # 更新所有包
yum update PACKAGE # 更新指定 rpm 包
yum check-update # 檢查指定程序包
yum groupupdate GROUP1 # 升級指定程序組
# 查找顯示
yum info PACKAGE # 顯示安裝包信息
yum list # 顯示所有可用安裝包
yum list PACKAGE # 顯示指定安裝包
yum groupinfo GROUP1 # 顯示相關組信息
# 刪除
yum remove PACKAGE # 刪除指定的 包
yum groupremove GROUP1 # 刪除指定 程序包組
yum deplist PACKAGE # 查看程序依賴
# 清除緩存
yum clean package # 清除緩存目錄下的 軟件包
yum clean headers # 清除目錄下的 headers
yum clean oldheader # 清除舊的 headers緩存
yum clean all # 清除所有
3.2 yum 搭建本地倉庫
- 掛載光盤
- 備份 yum配置文件, 並添加新的配置文件
文件內容:
- 清理緩存, 並統計軟件數量
- 嘗試使用 yum 安裝 vsftpd
4. 源碼包編譯安裝
1. 概述
-
一般開源項目的源碼包在項目的官網上都會提供下載地址, 如果非特殊原因不要再第三方下載源碼包, 防止源碼包被修改過.
-
大多數開源項目的源碼包都會提供
.tar.gz
或.tar.bz2
一類的壓縮包.
2. 源碼包的優劣勢
-
優勢
- 源碼包是開源的, 比RPM包更加自由, 可以選擇自己想要的功能,
- 所有東西(命令, 文檔, 配置文件)的位置都可以自己定義
- 卸載很方便
- 穩定性更高
-
劣勢
- 源碼包需要編譯, 過程較爲複雜, 容易出錯,
- 編譯安裝過程較爲漫長
- 依賴性問題更加複雜
- 配置項較多, 手動拼寫容易出錯
4. 編譯安裝需要的工具
- 其次需要用到 tar 以及 gzip, bzip2 等壓縮打包工具, 用於解壓源碼包.
- 編譯安裝首先需要, gcc 和 gcc-c++ 編譯器, 用於編譯源碼.
- 還需要用到 make 和 cmake 用於處理用於批處理,自動化編譯所有源碼包.
以上都是必須一些工具, 不同程序的 源碼包, 還需要很多其他的工具以及庫 等等.
5. 編譯安裝演示
這裏我們演示下 httpd2.4 的源碼包編譯安裝.
- 這裏 http2.4 就需要用到 apr 和 apr-util 擴展, 所以都需要提前轉唄準備好.
- 解壓全部並進入httpd 目錄內
- 可以查看 configure 有那些可選項 有 很多的選項
- 嘗試安裝
- 這裏報錯顯示沒有找到 apr.
- 查看指定apr 的選項, 再次嘗試
- 再次報錯, 顯示在 ./srclib 目錄中沒有找到 apr 和 apr-util, 這是我們將之前的apr 和 apr-util拷貝到目錄中, 並去掉版本號, 這時候就沒有問題了.
- 配置完成 且沒有出錯 後就可編譯安裝了, 編譯過程較爲耗時.
- 編譯結束時, 檢查上面信息是否有顯示 error, 如果沒有則一切正常. 就可以正常使用了
- 檢查軟件是否安裝成功
- 嘗試啓動
-正常啓動且可以獲取數據.
END