程序包的管理器,其功能有打包、後續的包管理(安裝,升級,卸載,查詢及校驗)
deb:debian系列系統
rpm:功能的提高使得rpm包管理器成爲linux主流的標準
程序包的組成四部分:
1.二進制程序:程序的源代碼存放/bin, /sbin,/ /usr/bin, /usr/sbin, node
2.庫文件:某些 二進制程序可能會被多個程序包調用,將這些被多個調用的稱 之爲庫文件存放在/lib64,/usr/lib64
3.配置文件: 大型程序執行過程當中須要許多命令選項,經過配置文件肯定大型程序的工做特性 存放在/etc
4.幫助文件:得到程序的使用幫助 manual, infolinux
包管理器功能:
打包:將程序包組成部分打包成一個單一的歸檔文件中;
安裝:將程序包展開,將每一個部分存放到相應的路徑供系統使用該程序;
卸載
升級
查詢
校驗:查詢程序包安裝完之後相關內容是否被修改
rpm包管理器
打包工具rpmbuild:基於爲每一個應用文件提供的specs文件打包
應用程序包根據應用程序的功能經常使用否分爲
核心包:testapp-VERSION
支包:testapp-devel-VERSION
VERSIOND的格式:major.minor.release
rpm包的命名機制:
包名-應用程序本身的版本號-rpm包本身的release.ARCH(適用的平臺架構).rpm
rpm包是經過rpm打包工具將應用程序包打包所得
包和包以前存在依賴關係。由於一個大型程序由若干小的程序組成
得到rpm包的途徑:
一、發行版的提供鏡像中有一個存放rpm包的文件夾
二、Fedora-EPEL
三、某些項目的應用程序官方網站提供項本身作的的RPM包
四、四、搜索引擎
http://rpmfind.net
http://rpm.pbone.net
http://pkgs.org
最安全可靠的RPM包獲取方法爲掛載各發行版提供的鏡像中RPM包文件
centos識別光盤的文件/dev/cdrom爲標準路徑
RPM命令的使用 實現程序包管理:
安裝:rpm { -i | install} 【install-options】 PACKAGE_FILE。。。
-v:實現詳細過程
-h:顯示過程的進度(用#表示)
經常使用的install-options
--nodeps:忽略包之間的依賴關係安裝rpm包,在包安裝完後可能沒法使用
每一個RPM包都提供一個或多個capabilities,某些RPM包的安裝須要別的包所提供 的capabilities。稱之爲RPM包之間的依賴
--replacepkgs:實現包的重裝centos
示例2:忽略包的依賴關係安裝rpm包安全
升級:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
-Uvh:若是已舊版本的RMP包,則升級到新版本的RPM包;若是沒有安裝過,則安 裝新版本的。過程和進度都顯示出來
-Fvh:若是已舊版本的RMP包,則升級到新版本的RPM包;若是沒有安裝過,就不 作任何操做。過程和進度都顯示出來
升級經常使用到的install-options服務器
--nodeps:忽略依賴關係
--oldpackage:將已安裝的新版本的RPM包降級到老版本的
--force:強制升級,升級的RPM包被其餘包所依賴會被拒絕升級須要強制升級架構
示例:包的存在的前提條件下使用-FVH升級包
app
示例:對已安裝的包降級ide
卸載:
rpm {-e|--erase} [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ... 卸載只須要指定包名便可
--nodeps:卸載一個被依賴的包後 依賴該包的包會失去做用
工具
查詢:
rpm {-q|--query} [select-options] [query-options]
-qa:查詢已安裝的全部rpm包
-qf /PATH/TO/SOMEFILE:查詢此路徑的文件是由哪一個包安裝生產的
-qc:查詢指定rpm包安裝生產了哪些配置文件
-qd:查詢指定rpm包安裝生產了哪些幫助文檔
-qi:顯示指定rpm包的相關信息
-ql:查詢指定rpm包安裝生產了哪些的全部文件列表
-qR::查詢指定rpm包依賴那些個數據包
-p:查詢對象爲未安裝的rpm包
包校驗:
驗證包完整性:經過單向加密(md5|sha1)效驗碼
驗證來源合法:公鑰加密(RSA)
導入製做者的公鑰:CentOS發行商的公鑰在ISO文件 「RPM-GPG-KEY-CentOS-6」
rpm --import 導入祕鑰能進行包校驗(祕鑰必須是來源可靠的)
rpm -K /PATH/TO/RPM_FILE
YUM:
工做原理是由於他抽取了包與包之間依賴關係。依賴外在的yum的rpm包倉庫
本地運行yum程序,它尋找rpm包倉庫(不止一個),在倉庫中找到後下載回本地
倉庫中有大量rpm包 有元數據文件記錄包名 有多少包 以及包的依賴關係。yum程序會先把倉庫的元 數據文件緩存在本地,方便查看。
yum程序的配置文件:
/etc/yum.conf
定義全集配置:對全部倉庫都適用的配置
/etc/yum.repos.d/*.repo
一個.repo文件對應一個或一組rpm包功能相近或相依賴的倉庫
定義一個倉庫指向:
[REPO]
name=指定名字
baseurl=指定路徑 路徑能夠多個隨機抽取每一個必須同樣
使用路徑中有定義倉庫指向可用變
$releasever: 引用當前系統的主版本號;
$basearch: 當前系統的基本架構;
方便指定路徑根據自身當前的系統選擇合適的版本
#mirrorlist
enabled 1表明啓用0不啓用
gpgcheck 1表明啓用0不啓用
cost指明倉庫的開銷,開銷越小越先採起
yum程序的配置文件指定對應服務器訪問方式:
http http://server/path/to/repo
nfs nfs://server/nfs_path
file file:///path/to/repo
yum命令
經常使用選項
安裝:install 所依賴的包一併安裝
卸載:remove 那些依賴要被卸載包的包會被詢問是否卸載
升級:update yum check-update檢查系統已安裝的包有那些包能夠升級
查詢:
info 不管安裝與否均可以查詢rpm包的簡要信息
search KEYWORD 基於包名的關鍵字進行搜索查詢
list all|installed|avail 查詢全部包|已安裝|能夠安裝的
provids /path/to/somefiel: 查詢指定文件是由哪一個包安裝生成的
從新安裝 reinstall
降級:downgra
清理緩存:清理對象能夠指定
手動生成緩存:makecache
包組:
groupinfo 「指明包組名」 查詢一個包組的信息
groupinstall 「指明包組名」整組的安裝包
倉庫:
repolist:列出可以使用的包倉庫
使用光盤當作本地倉庫:
1.掛載光盤
2.建立指向光盤掛載路徑的本地倉庫(爲了優先使用能夠設置較低的開銷值)
DNF:下一代的包管理器功能接近yum,功能更強大
建立本地源
列出可用的yum源