軟件包管理:rpm和yum

今天小編與大家聊聊軟件包管理 的倆大神器:rpmyum,它倆在我們在對軟件進行安裝,查詢,卸載,升級等等方面可給我們帶來了非常,相當,特別多的方便,哈哈,聽到小編說這麼多副詞來形容它們就知道它們非常重要。接下來小編從下面幾個方面來介紹他們,廢話不多,全是乾貨。

1.包管理器的功能

1)將軟件包打包成一個文件,其中包括:
二進制應用程序的組成部分:
1.都有配置文件,通過設置配置文件來改變程序啓動時的運行特徵
2.都具有二進制的程序主體
3.都自帶庫文件,供程序主體進行調用
4.都帶有幫助文件,對程序的使用方法進行說明
2)程序包管理器:
debian:deb文件, dpkg包管理器
redhat: rpm文件, rpm包管理器
rpm: Redhat Package Manager
RPM Package Manager

2.rpm與yum的區別於聯繫

rpm是由紅帽公司開發的軟件包管理方式,使用rpm我們可以方便的進行軟件的安裝、查詢、卸載、升級等工作。但是rpm軟件包之間的依賴性問題往往會很繁瑣,尤其是軟件由多個rpm包組成時。
Yum(全稱爲 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。

3.RPM的用法

CentOS系統上使用rpm命令管理程序包:
安裝、卸載、升級、查詢、校驗、數據庫維護

1.安裝
rpm包安裝
rpm -i [install-options] 包名
-v 顯示詳細信息
-vv 顯示更詳細信息
-h 顯示進度
-ivh rpm包名
–test: 測試安裝,但不真正執行安裝,即dry run模式
–nodeps:忽略依賴關係直接安裝
–replacepkgs | replacefiles 已安裝過的包重裝。
–nosignature: 不檢查來源合法性
–nodigest:不檢查包完整性
–noscripts:不執行程序包腳本
%pre: 安裝前腳本; –nopre
%post: 安裝後腳本; –nopost
%preun: 卸載前腳本; –nopreun
%postun: 卸載後腳本; –nopostun
Rpm2cpio 軟件包名 > name
實例:
1.安裝
這裏寫圖片描述
2 Rpm -iv 軟件名和-ih 軟件名
這裏寫圖片描述
Rpm -ivh 顯示名字和安裝進度
這裏寫圖片描述
-ivvh 軟件名 顯示詳細信息
這裏寫圖片描述
3.rpm -ivh –test 測試安裝,但不真正執行安裝
這裏寫圖片描述
這裏寫圖片描述
4–nodeps:忽略依賴關係直接安裝
這裏寫圖片描述
危害:
這裏寫圖片描述

可以用–replacepkgs | replacefiles (已安裝過的包重新安裝)挽救。
這裏寫圖片描述
這裏寫圖片描述

5–nosignature: 不檢查來源合法性
這裏寫圖片描述
6
這裏寫圖片描述
2.升級
 rpm {-U|–upgrade} [install-options] PACKAGE_FILE…
 rpm {-F|–freshen} [install-options] PACKAGE_FILE…
upgrade:安裝有舊版程序包,則“升級”
如果不存在舊版程序包,則“安裝”
freshen:安裝有舊版程序包,則“升級”
如果不存在舊版程序包,則不執行升級操作
rpm -Uvh PACKAGE_FILE …
rpm -Fvh PACKAGE_FILE …
–oldpackage:降級
–force: 強制安裝
-Uvh 當有舊的版本的包時,則卸載舊包再裝新包,如沒有舊包,直接裝新包。
-Fvh 當有舊的包時,卸載舊包裝新包,無舊包時,nothing
–oldpackage 降級 已有新包,裝舊包。
–force 強制安裝。–replacepkgs –replacefiles –oldpackage
實例:
1 -Uvh 當有舊的版本的包時,則卸載舊包再裝新包,如沒有舊包,直接裝新包。
這裏寫圖片描述
2 對內核進行升級
這裏寫圖片描述
3 降級 –oldpackage 降級 已有新包,裝舊包。
這裏寫圖片描述

3 查詢
包查詢
 rpm {-q|–query} [select-options] [query-options]
 [select-options]
-a: 所有包
-f: 查看指定的文件由哪個程序包安裝生成
-p rpmfile:針對尚未安裝的程序包文件做查詢操作
–whatprovides CAPABILITY:查詢指定的CAPABILITY 由哪個包所提供
–whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴
 rpm2cpio 包文件|cpio –itv 預覽包內文件
 rpm2cpio 包文件|cpio –id “*.conf” 釋放包內文件

-q 軟件包名  查詢已安裝過的軟件包名。
     -qa 列出所有的已安裝過的rpm包
        -qa "name*"
        -qa |grep name
     -qf 查詢一個文件來自於哪一個rpm包 (已安裝的rpm)在數據庫中查詢
     -q --changelog 版本更新日誌
     -qc 查詢軟件包的配置文件(不是所有包都有配置文件)
     -qd 查詢軟件包的幫助文檔
     -qi 查詢![這裏寫圖片描述](https://img-blog.csdn.net/20170818204428639?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvS2V0Y2h1cF8=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)軟件包的詳細信息
     -ql 查詢軟件包所安裝到系統當中的所有文件路徑
     -q --scripts 查詢軟件包自帶的腳本
     -q --provides 查詢自身的功能
     -qR 查詢實現自身的功能需要什麼能力
     -qp[licd] rpm包 查看未安裝的rpm包的各項信息

實例
1.當一個文件找不到時,而你又不知道來自哪個包:
rpm2cpio aide-0.15.1-11.el7.x86_64.rpm |cpio -id ( 解包)
這裏寫圖片描述
這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述
2 -qa 列出所有的已安裝過的rpm包
這裏寫圖片描述
結合正則
這裏寫圖片描述
3 -qf 查詢一個文件來自於哪一個rpm包 (已安裝的rpm)在數據庫中查詢
這裏寫圖片描述

這裏寫圖片描述
4 -q –changelog 版本更新日誌
這裏寫圖片描述
5 -qd 查詢軟件包的幫助文檔
這裏寫圖片描述
6-qi 查詢軟件包的詳細信息
這裏寫圖片描述

  1. -ql 查詢軟件包所安裝到系統當中的所有文件路徑
    這裏寫圖片描述
    這裏寫圖片描述

  2. -q –scripts 查詢軟件包自帶的腳本
    這裏寫圖片描述
    9.-q –provides 查詢自身的功能

這裏寫圖片描述
10 -qR 查詢實現自身的功能需要什麼能力
這裏寫圖片描述
11 -qc 查詢軟件包的配置文件(不是所有包都有配置文件)
這裏寫圖片描述
12用 -qp[licd] rpm包 查看未安裝的rpm包的各項信息

4.校驗
1包來源合法性驗正及完整性驗正
完整性驗正:SHA256
來源合法性驗正:RSA
2 公鑰加密
對稱加密:加密、解密使用同一密鑰
非對稱加密:密鑰是成對兒的
public key: 公鑰,公開所有人
secret key: 私鑰, 不能公開
3 導入所需要公鑰
rpm -K|checksig rpmfile 檢查包的完整性和簽名
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7發行版光盤提供:RPM-GPG-KEY-CentOS-7
rpm -qa “gpg-pubkey*”
–import GPG-KEY…. 導入公鑰
-qa “gpg-pubkey*” 顯示所有已導入的公鑰
-e gpg-pubkey….
-K rpm包 驗證某rpm簽名是否合法
-V驗證
實例
1–import GPG-KEY…. 導入公鑰
這裏寫圖片描述
2 -K rpm包 驗證某rpm簽名是否合法
這裏寫圖片描述
5 數據庫維護
 數據庫重建:
/var/lib/rpm
 rpm {–initdb|–rebuilddb}
initdb: 初始化
如果事先不存在數據庫,則新建之
否則,不執行任何操作
rebuilddb:重建已安裝的包頭的數據庫索引目錄
6 卸載
rpm -e 軟件名
–nodeps 忽略依賴性。強制卸載
這裏寫圖片描述

4.yum的用法

1.yum配置文件
 yum客戶端配置文件:
/etc/yum.conf:爲所有倉庫提供公共配置
/etc/yum.repos.d/*.repo:爲倉庫的指向提供配置
2.yum倉庫
這裏寫圖片描述
倉庫指向的定義:
[repositoryID]
name=Some name for this repository
baseurl=url://path/to/repository/
enabled={1|0}
gpgcheck={1|0}
gpgkey=URL
enablegroups={1|0}
failovermethod={roundrobin|priority}
roundrobin:意爲隨機挑選,默認值
priority:按順序訪問
cost= 默認爲1000
倉庫的實例
這裏寫圖片描述
這裏寫圖片描述
3 yum-config-manage
生成172.16.0.1_cobbler_ks_mirror_CentOS-X-x86_64_.repo
yum-config-manager –add-repo=
http://172.16.0.1/cobbler/ks_mirror/7/
這裏寫圖片描述
對設置進行補充
1. yum-config-manager –disable “倉庫名” 禁用倉庫
2. yum-config-manager –enable “倉庫名” 啓用倉庫
1.這裏寫圖片描述
2這裏寫圖片描述

這裏寫圖片描述
yum命令1
 yum命令的用法:
yum [options] [command] [package …]
 顯示倉庫列表:
yum repolist [all|enabled|disabled]
 顯示程序包:
yum list
yum list [all | glob_exp1] [glob_exp2] […]
yum list {available|installed|updates} [glob_exp1] […]
 安裝程序包:
yum install package1 [package2] […]
yum reinstall package1 [package2] […] (重新安裝)
 升級程序包:
yum update [package1] [package2] […]
yum downgrade package1 [package2] […] (降級)
 檢查可用升級:
yum check-update
 卸載程序包:
yum remove | erase package1 [package2] […]
 查看程序包information:
yum info […]
 查看指定的特性(可以是某文件)是由哪個程序包所提供:
yum provides | whatprovides feature1 [feature2] […]
 清理本地緩存:
清除/var/cache/yum/basearch/ releasever緩存
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
 構建緩存:
yum makecache
1.顯示倉庫列表yum repolist [all|enabled|disabled] 列出repo信息
這裏寫圖片描述
2 安裝程序包yum install package1 [package2] […]
這裏寫圖片描述
這裏寫圖片描述
3.顯示安裝過的程序包:
這裏寫圖片描述
4.顯示沒安裝過的程序包:
這裏寫圖片描述
5.顯示要更新的程序包:
這裏寫圖片描述
6. 檢查可用升級 :
這裏寫圖片描述
7. -e修改之後,在卸載,用rm 刪除,配置文件會另保存
這裏寫圖片描述
8.查看程序包information:
這裏寫圖片描述
9.查看指定的特性(可以是某文件)是由哪個程序包所提供
whatprovides查看某個文件來自那個包
這裏寫圖片描述當文件的名稱也記不全時
這裏寫圖片描述
這裏寫圖片描述

10.清除/var/cache/yum/basearch/ releasever緩存
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
這裏寫圖片描述

yum makecache就是把服務器的包信息下載到本地電腦緩存起來
這裏寫圖片描述
yum命令2
這裏寫圖片描述
4.搜索
yum list 顯示所有已經安裝和可以安裝的程序包
yum list package1 顯示指定程序包安裝情況package1
通過rpm -qa | grep filename去查詢,發現沒有返回。沒返回說明沒裝
yum源裏面有沒有呢?
執行yum list | filename
Search 只是找到相關的軟件包,但是是不是已經安裝了,那可不一定
通過rpm -qa
這裏寫圖片描述
這裏寫圖片描述

2.yum history
info [number] 查看具體那一條
undo [number]
undo - 會撤銷一個指定的事務。
redo - 重複一次指定的事務
這裏寫圖片描述

這裏寫圖片描述

3.查看日誌
這裏寫圖片描述

這裏寫圖片描述
5安裝及升級本地程序包:
yum localinstall rpmfile1 [rpmfile2] […]
(用install替代)
yum localupdate rpmfile1 [rpmfile2] […]
(用update替代)
 包組管理的相關命令:
yum grouplist
yum groupinfo “包組名”
yum groupinstall “包組名”
yum groupremove “包組名” 只刪除包組中的包,不刪除依賴包,可以用yum history undo 操作數字來刪除包含依賴包。
yum groupupdate 更新包組中的包a
實例:
1.yum groupinfo group1 […]
這裏寫圖片描述
2.yum grouplist [hidden] [groupwildcard] […]
這裏寫圖片描述
3.remove和undo刪除的區別
remove可以卸載包本身
undo可以卸載有依賴的包
這裏寫圖片描述
這裏寫圖片描述

這裏寫圖片描述

yum的命令行選項:
–nogpgcheck:禁止進行gpg check
-y: 自動回答爲“yes”
-q:靜默模式
–disablerepo=repoidglob:臨時禁用此處指定的repo
–enablerepo=repoidglob:臨時啓用此處指定的repo
–noplugins:禁用所有插件

1 –nogpgcheck:禁止進行gpg check
這裏寫圖片描述
2靜默模式
這裏寫圖片描述

這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

好了,今天小編就介紹到這 。
這裏寫圖片描述

發佈了33 篇原創文章 · 獲贊 16 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章