linux程序包管理
程序包:源代碼 –> 目標二進制格式(二進制程序、庫文件、配置文件、幫助文件)–> 組織成一個或有限的幾個包文件
程序包管理器:
debian –> dpkg 以“.deb”結尾
redhat –> rpm 以“.rpm”結尾
rpm:redhat package mamager –> rpm is package manager
rpm包命名格式:
name-VERSION-realease.arch.rpm
VERSION:major,minor,release
release:rpm包的發行號
arch:archetecture,i386,x86_64…
拆包:
主包:name-VERSION-realease.arch.rpm
支包:name-function-VERSION-realease.arch.rpm
rpm包的依賴關系:
有時安裝某應用程序需要依賴于其他應用程序
前端工具:
自動解決安裝程序包的依賴關系
例如:yum
yum
程序包管理前端工具:
yum:rhel系列系統上rpm包管理器的前端工具
apt-get(apt-cache):debian系統上deb包的前端管理工具
獲取程序包途徑:
1、系統發行版光盤或官方文件服務器(或鏡像站點)
2、項目官方站點
3、第三方組織
1)EPEL
2)搜索引擎,pkgs.org | rpmfind.net | rpm.pbone.net
CentOS系統上rpm包的管理命令:
安裝、升級、卸載、查詢、校驗和數據庫維護
rpm [OPTION] [INSTALL_OPTION] PACKAGE_FILE
OPTION:
安裝:-I | –install,與-v,-h聯用。后跟文件名 à rpm –ivh PACKAGE_FILE
-v:顯示詳細信息
-vv:顯示更詳細信息(少用)
-h:顯示進度條
升級:-U,升級或安裝
-F,升級
–oldpackage,降級
–force,強制升級
卸載:-e,后跟包名
查詢:-q
rpm –qa:查詢所有安裝包,常與grep聯用
rpm –qf:后跟文件,查詢該文件由哪個安裝包生成
rpm –ql:后跟安裝包,查詢該安裝包安裝時生成那些文件
rpm –qi:后跟安裝包,查詢該安裝包的詳細信息
rpm –qc:后跟安裝包,查詢該安裝包的詳細信息
rpm –qd:后跟安裝包,查詢該安裝包生成的文檔
rpm –q –provides:后跟安裝包,列出程序包提供的CAPABILITY
rpm –q –whatprovides:后跟安裝包,查詢指定CAPABILITY由哪個程序包提供
rpm –q –whatrequires:后跟安裝包,查詢指定CAPABILITY被哪個程序包依賴
rpm –qp:查看未安裝的程序包信息,與i,l,c等選項聯用
rpm –qpi:查詢該安裝包的詳細信息
rpm –qpl:查詢該安裝包安裝時生成那些文件
rpm –qpc:查詢該安裝包的詳細信息
校驗:-V
數據庫維護:–builddb –initdb
INSTALL_OPTION:
-v:顯示詳細信息
-h:顯示進度條
–test:測試安裝,用來檢測程序包的依賴與沖突關系
–nodeps:忽略依賴關系安裝
–replacepkgs:重新安裝(不能還原修改的配置文件,如需還原,需將配置文件刪除先)
–nosignature:不檢查包簽名與合法性
–nodigest:不檢查包完整性信息
–noscripts:不允許腳本
rpm包來源的合法性與完整性驗證:
導入密鑰:rpm –import RPM-GPG-KEY
手動驗證:rpm –k PACKAGE_FILE
數據庫重建:
rpm管理器數據庫路徑:
/var/lib/rpm
查詢操作是基于此數據庫進行的
命令:
rpm –initdb:無數據時新建,有數據則不執行操作
rpm –rebuilddb:重新構建,重置數據庫
rpm [–initdb|–rebuilddb] –dbpath=/PATH/TO/ 指定新建數據庫路徑
程序包管理前端工具–YUM
yum:yellowdog update modifier
yum工具為CS架構
yum倉庫(yum repository):yum repo
存儲了眾多rpm包,以及包的相關元數據文件
(放置于特定目錄下:ropodata所在路徑)
文件服務器:
ftp://
http://
file:///
yum客戶端:
配置文件
主配置文件:/etc/yum.conf,為所有倉庫提供公共配置
倉庫配置文件:/etc/yum.repos.d/*.conf,為倉庫指向提供配置信息
配置文件定義(文本文件)
[repository ID]
name=
baseurl=URL://(可指向多處)路徑為repodata所在路徑
enabled={0|1}(默認為1)
gpgcheck={0|1}
gpgkey=URL(指向密鑰的路徑)
獲取當前yum源并顯示信息:
yum repolist [all|enanle|disable]
all:顯示全部
enable:顯示可用
disable:顯示不可用
顯示程序包:
yum list [all|available|installed|updates] (支持glob通配符)
all:所有安裝包
available:可用安裝包
installed:已安裝程序包
updates:可升級程序包
安裝程序包:
yum install PACKAGE 安裝程序包
yum reinstall PACKAGE 重新安裝程序包
yum命令行選項:
–nogpgcheck:不進行gpg校驗
-y:自動回答“yes”
-q:靜默模式
升級程序包:
yum update PACKAGE
卸載程序包:
yum remove PACKAGE (會卸載程序包相關的依賴程序包)
查看程序包信息:
yum info PACKAGE
清理本地緩存
yum clean
如何用光盤當做本地yum倉庫:
1)掛載光盤至某目錄
# mount –r –t
2)創建配置文件
[CentOS 7]
name=
baseurl=
gpgcheck=
enabled=
如何創建yum倉庫:
1)createrepo <directory> (directory為rpm包所在目錄)
2)定義配置文件
yum的repo配置文件中可以的變量:
$releasever:當前OS發行版的主版本號
$arch:平臺
$basearch:基礎平臺
http://mirrors.magedu.com/centos/$release/$basrarch/OS
原創文章,作者:Mr.Lee,如若轉載,請注明出處:http://www.www58058.com/38795
軟件包管理器是我們必須掌握的基本技能,需要多加練習,熟練掌握。