程式包管理器功能:編譯好的應用程式的個組成檔案,打包成乙個或幾個程式包檔案,從而更方便快捷地實現程式包的安裝、公升級、解除安裝的管理操作。
rpm 包命名格式:
name-version-release.arch.rpm
version: major.minor.release
release.arch: rpm 包的發行號
archetecture:i386,x64,ppc,noarch
例如:redis-3.0.2.1-centos7.x64.rpm
自動解決依賴關係:
rpm [options] [package_file]
安裝:-i,--install
公升級:-u,--update,-f,--freshen
解除安裝:-e,--erase
查詢:-q,--query
校驗:-v,---verify
資料庫維護:--builddb,--initdb
general options:
-v:verbose,詳細資訊
-vv:更詳細的資訊
rpm [install-options] package_file … (man 文件 29% 左右位置)
~]
# rpm -ivh package_file...
[install-options]:
-h:hash marks 輸出進度條,每個#表示 2% 的進度
--test:測試安裝,檢查並報告依賴關係及衝突訊息
--nodeps:忽略依賴關係,不建議使用
--replacepkgs:重新安裝
rpm [install-options] package_file …
-u 意為公升級或安裝
rpm [install-options] package_file …
-f 只公升級不安裝
--oldpackage:降級
--force:強制公升級
rpm [–allmatches] [–justdb] [–nodeps] [–test] package_name …
--allmatches:解除安裝所有匹配到指定名稱的程式包各版本
--nodeps:忽略依賴關係
--test:測試解除安裝,dry run 模式
rpm 在查詢時是在 /var/lib/rpm/ 目錄下的資料庫檔案中。
rpm [select-options] [query-options]
[select-options]
package_name:查詢指定的程式包是否已經安裝
-a,-all:查詢所有已經安裝的包;可配合 grep 使用
-f file:查詢指定的檔案由哪個程式包安裝生成
-p,--package package_file:用於實現對未安裝的程式包執行查詢操作,檢視 rpm 檔案內容
--whatprovides capablity:查詢指定的 capability 由哪個程式包提供
--whatrequires capability:查詢指定的 capability 被哪個包所依賴
[query-options]
--changelog:查詢 rpm 包的 changelog
-l,--list:程式包安裝生成的所有檔案的列表
-c,--configfiles:查詢指定的程式包的配置檔案
-d,--docfiles:查詢指定的程式包提供的幫助文件
--provides:列出指定的程式包提供的所有 capability
--scripts:檢視程式包自帶的指令碼片斷
練習:查詢系統中以 a 開頭的軟體
~]# rpm -qa | grep 「^a」 | wc -l
通過對比 /var/lib/rpm 目錄下的資料庫檔案,找出目前環境下安裝的軟體。
rpm [select-options] [verify-options]
-v package_name:若該軟體被改動過,則會列出來
-va:查詢系統上所有被改動過的檔案
-vf:某個檔案是否被改動過
例如:首先我們修改/etc/crontab 檔案,新增一行 # new line. 儲存並退出,而後執行命令
rpm -vf /etc/crontab
# 輸出如下
s.5..
..t. c /etc/crontab
解釋說明:中間的 c 代表 configuration,以為配置檔案。前面字元意為:
s file size differs
m mode differs (includes permissions and file type)
5 digest (formerly md5 sum) differs
d device major/minor number mismatch
l readlink(2) path mismatch
u user ownership differs
g group ownership differs
t mtime differs
p capabilities differ
獲取並匯入信任的製作者的秘鑰:對於 centos 發行版來說:rpm --import /etc/pki/rpm-gpg/rpm-gpg-key-centos-7
yum [options] [command] [package …]
先介紹 yum 的命令列選項:
-y:自動回答都為 yes
-q:靜默模式
search:搜尋某個軟體名稱或者是符合描述的字串
list :列出目前 yum 所管理的所有的軟體名稱與版本,類似 rpm -qa
info :同上,不過有點類似 rpm -qai 的執行結果
provides:從檔案去搜尋軟體,類似 rpm -qf 的功能,即檢視指定的特性是由哪個程式包提供
yum install package1 [package2] […]
yum update package1 [package2] […]
yum remove | erase package1 [package2] […]
yum [群組功能] [軟體群組]
選項與引數:
grouplist :列出所有可使用的「軟體群組組」,例如 development tools
groupinfo :後面接 group_name,則可了解該 group 內含的所有軟體名
groupinstall:安裝一整組的軟體群組
groupremove :移除某個軟體群組
Linux程式包管理
centos yum,dnf yum 由yellow dog研發,yellow dog update modifier 檔案伺服器 yum客戶端 倉庫指向的定義 repositoryid name some name for this repository baseurl path to repos...
Linux系列 RPM軟體包管理 YUM包管理
1 linux軟體包形式 tar.gz 絕大多數開源軟體都是以源 形式發布 一般被打包成tar.gz的歸檔壓縮檔案 編譯流程 configure make make install 安裝麻煩,但是相容性,可控制很好。開源軟體一般都會大量使用其他開源軟體功能,所以開源軟體會有大量的依賴關係 2 lin...
Linux程式包管理rpm命令的使用解析
態度決定一切,其實你可以做得更好!今天工作調休,抽空發布一篇博文,和大家一起來學習一下linux下程式包的管理,rpm命令的使用。先來介紹下linux下常見程式包的類別 rpm包 是發行商在相容大眾的開發環境下完成編譯打包並且測試簽名了的,可直接安裝使用。原始碼包 提供了該軟體所有程式源 的發布形式...