安裝及管理程式,rpm yum
一、Linux應用程式基礎
1、應用程式和系統命令的關係
角色 | 系統命令 | 應用程式 |
檔案位置 | 一般在/bin和/sbin目錄中,或為Shell內部指令 | 通常在/usr/bin、/usr/sbin 和/usr/local/bin、/usr/local/sbin 目錄中 |
主要用途 | 完成對系統的基本管理工作,例如IP配置工具 | 完成相對獨立的其他輔助任務,例如網頁瀏覽器 |
適用環境 | 一般只在字元操作介面中執行 | 根據實際需要,有些程式可在圖形介面中執行 |
執行格式 | 一般包括命令字、 命令選項和命令引數 | 通常沒有固定的執行格式,由程式開發者自行定義 |
2、典型應用程式的目錄結構
型別 | 儲存目錄 | 說明 |
普通的可執行程式檔案 | /usr/bin | 所有使用者可執行 |
伺服器程式、管理程式檔案 | /usr/sbin | 只有管理員能執行 |
應用程式配置檔案 | /etc | 通過rpm或yunm方式安裝的應用程式 |
日誌檔案 | /var/log | 系統日誌 |
應用程式參考文件檔案 | usr/share/doc | 關於應用程式的參考文件等資料 |
應用程式手冊頁檔案 | /usr/share/man | 執行檔案及配置檔案的man手冊頁 |
3、常見的軟體包封裝型別
檔案型別 | 儲存目錄 |
RPM軟體包 | 副檔名為“.rpm” ,適用於RHEL、CentOS等系統 |
DEB軟體包 | 副檔名為“.deb”,適用於Ubuntu、Debian等系統 |
原始碼軟體包 | 一般為“.tar.gz”、“.tar.bz2”等格式的壓縮包 包含程式的原始程式碼,需要編譯安裝 |
附帶安裝程式的軟體包 | 軟體包的副檔名不一,以TarBall格式的居多 在軟體包中會提供用於安裝的可執行程式或指令碼檔案,如install.sh、setup等 安裝時只需允許安裝檔案就可以根據嚮導程式的提示完成安裝操作 |
二、RPM軟體包管理工具
1、概念
RPM軟體包管理器Red-Hat package Manager:
由Red Hat公司提出, 被眾多Linux發行版所採用
建立統-一的檔案資料庫
詳細記錄軟體包安裝、解除安裝、升級等變化資訊
自動分析軟體包依賴關係
2、RPM軟體包
- 軟體素材參考:http://www.rpm.org
2.1RPM包的一般格式為:
name-version-arch.rpm
name-version-arch.src.rpm
例:
httpd-2.2.3-29.el5.i386.rpm
httpd-devel-2.2.3-29.el5.i386.rpm
httpd-manual-2.2.3-29.el5.i386.rpm
system-config-httpd-1.3.3.3-1.el5.noarch.rpm
解析
- name,如:httpd,是軟體的名稱;
- version,如:2.2.3 ,是軟體的版本號。版本號的格式通常為“主版本號.次版本號.修正號”;
- 29,是釋出版本號,表示這個RPM包是第幾次編譯生成的
- i386,表示包的適用的硬體平臺,目前RPM支援的平臺有:i386、i586、i686、sparc和alpha
- .rpm或.src.rpm,是RPM包型別的字尾,.rpm是編譯好的二進位制包,可用rpm命令直接安裝;.src.rpm表示是原始碼包,需要安裝原始碼包生成原始碼,並對原始碼編譯生成.rpm格式的RPM包,就可以對這個RPM包進行安裝了
特殊名稱:
- el* 表示這個軟體包的發行商版本,el5表示這個軟體包是在RHEL 5.x/CentOS 5.x下使用。
- devel:表示這個RPM包是軟體的開發包。
- noarch:說明這樣的軟體包可以在任何平臺上安裝,不需要特定的硬體平臺。在任何硬體平臺上都可以執行。
- manual 手冊文件
3、RPM命令
3.1 概念
rpm命令能夠實現幾乎所有對RPM軟體包的管理功能
執行"man rpm"命令可以獲得關於rpm命令的詳細幫助資訊
3.2 功能
- 查詢、驗證RPM軟體包的相關資訊、
- 安裝、升級、解除安裝RPM軟體包
- 維護重建RPM資料庫資訊等綜合管理操作
4、查詢RPM軟體包資訊
4.1 查詢已安裝的RPM軟體資訊
4.1.1 格式
rpm -q[子選項][軟體名]
4..1.2 常用選項
- rpm-q 軟體名:查詢指定軟體是否安裝
- rpm-qi 軟體名:顯示已安裝的指定軟體的詳細資訊
- rpm-ql 軟體名:顯示已安裝的指定軟體的檔案列表
- rpm-qc 軟體名:列出已安裝的指定軟體的配置檔案
- rpm-qd 軟體名:列出已安裝的指定軟體的軟體包文件所在位置
- rpm-qR 軟體名:列出已安裝的指定軟體的依賴的軟體包及檔案
- rpm-qF 軟體名:查詢已安裝的指定軟體屬於哪個安裝包
- rpm-qa: 顯示當前系統中以rpm方式安裝的所有軟體列表
- rpm-qa | grep -i postfix 查詢postfix是否已安裝
4.1.3 例項操作
4.1.3.1 rpm-q 與rpm -qi 的用法
4.1.3.2 rpm-ql、rpm-qd、rpm-qR、rpm-qF、rpm-qc的用法
4.1.3.3 rpm-qa的用法
此用法可以在不知道確切完整的軟體名稱的情況下使用
rpm-q在查詢軟體是否安裝時軟體必須輸對才能查詢到
4.1.3.4 rpm -qa 結合管道符號查詢數量
4.2查詢未安裝的RPM軟體包檔案中資訊
4.2.1 格式
rpm -qp[子選項] rpm包檔案
4.2.2 常用選項
- rpm -qpi 包檔名:查詢指定軟體包的詳細資訊
- rpm -qpl 包檔名:查詢指定軟體包的檔案列表
- rpm -qpc 包檔名:查詢指定軟體包的配置檔案
- rpm -qpd 包檔名:查詢指定軟體包的軟體包文件的位置
4.2.3 例項操作
rpm包在xshell中查詢
找不到 cd /mnt/Packages 的時候,先掛載,mount /dev/cdrom /mnt,然後就能找到此目錄
4.2.3.1 rpm -qpi的用法
4.3.3.2 rpm -qpl的用法
4.3.3.3 rpm -qpc的用法
4.3.3.3 rpm -qpd的用法
5、RPM軟體包的管理
5.1 格式
rpm [選項] RPM軟體包
rpm -ivh RPM軟體包 #常用安裝軟體包
rpm -evh RPM軟體包 #常用解除安裝軟體包
5.2 常用選項
安裝或升級
-i :安裝一個新的RPM軟體包。
-U :升級某個軟體包,若未安裝過,則進行安裝。
-F :升級某個軟體包,若未安裝過,則放棄安裝。
解除安裝
-e :解除安裝指定名稱的軟體包
輔助選項
-h :在安裝或升級軟體包的過程中,以“#”號 顯示安裝進度。
-v :顯示軟體安裝過程中的詳細資訊。
- -force: 強制安裝某個軟體包,比如要安裝版本更舊的軟體包
- -nodeps: 在安裝或升級、解除安裝一個軟體包時,不檢查與其他軟體包的依賴關係
5.3 例項操作
5.3.1 rpm安裝軟體包
5.3.2 rpm解除安裝軟體包
6、維護RPM資料庫
6.1重建RPM資料庫
當RPM 資料庫發生損壞,可通過重建RPM資料庫修復
格式:
rpm --rebuilddb
rpm --initdb
6.2匯入驗證公鑰
在沒有匯入用於數字簽名驗證的公鑰檔案之前,安裝光碟中的一 部分RPM軟體包時會報錯。需要向RPM資料庫中匯入位於光碟根目錄下的公鑰檔案。
格式:
mount /dev/cdrom /mnt/ #先掛載cdrom
rpm --import /mnt/RPM-GPG-KEY-CentOS-7 #匯入公鑰
7、 解決軟體包依賴關係的方法
7.1 安裝有依賴關係的多個軟體時
被依賴的軟體包需要先安裝
可同時指定多個.rpm包檔案進行安裝
7.2 解除安裝有依賴關係的多個軟體時
依賴其他程式的軟體包需要先解除安裝
可同時指定多個軟體名進行解除安裝
7.3 忽略依賴關係
結合“- -nodeps”選項,但可能導致軟體異常
三、yum軟體包管理工具
1、配置本地yum源倉庫
mount /dev/cdrom /mnt/ #掛載cd
cd /etc/yum.repos.d/
mkdir repos.bak #建立一個目錄
mv *.repo repos.bak/ #把repo檔案全都移入,做備份
cd /etc/yum.respos,d/
vim local.repo
###local.repo 配置如下
[local] #倉庫類別
name=local #倉庫名稱
baseurl=file:///mnt #指定URL 訪問路徑為光碟掛載目錄
enabled=1 #開啟yum源,此為預設項,可省略
gpgcheck=0 #不驗證軟體包的簽名
yum clean all && yum makecache 清空快取表並更新
yum -y install httpd 安裝 httpd
rpm -evh httpd 解除安裝httpd
2、例項操作
3、常用命令
yum -y install軟體名 #安裝、升級軟體包,“-y"選項表示自動確認
yum -y remove 軟體名 #解除安裝軟體包,可自動解決其依賴關係
yum -y update 軟體名 #升級軟體包