本文旨在複習Linux上安裝包管理rpm與yum工具前端
知識儲備node
所謂的包管理是指在Linux平臺上查詢、校驗、安裝、升級、卸載以及打包packageapache
不一樣的Distribution Linux上包管理工具各不相同,最主流的有通吃RedHat/CentOS的RPM、YUM、DNF[新一代的前端管理工具],Debian上的APT管理工具centos
一個程序包package通用組成部分緩存
二進制程序:/bin, /sbin,/, /usr/bin, /usr/sbin,安全
庫文件:/lib, /lib64, /usr/lib64架構
配置文件:/etcide
幫助文件:manual, info, readme.txt, install.txt等工具
RPM基礎知識post
● RPM打包機制:基於specs文件的打包,specs這個文件指揮着如何打包,按照何種規則組織包的元數據、包內容等等,可使用rpmbuild命令
● RPM分包機制:有些程序在設計時除了核心功能外還有各類附加小功能,打包者選擇性組合這些功能對源碼程序打包,分爲了核心包和支包,核心包一般名爲software-version,支包一般爲software-devel-version
● RPM包命名機制:5段命名法
● 包依賴關係
一個包B的功能實現須要調用別包A的底層文件、服務、共享對象等,這種狀況下單獨安裝packageB是沒法成功的,須要安裝好A包[能夠強制忽略依賴關係安裝B包,可是功能可能會受影響]
另外依賴關係可能有不少層,好比A包依賴B包C包,而B包又依賴D包等等,有可能無窮無盡也~
● 獲取RPM包
發行版提供的程序包,一般在CentOS-6.4-x86_64-bin-DVD2的Packages目錄下
Fedora-EPEL,爲CentOS提供優秀的包,比較安全、權威,推薦
項目的官方站點,如Apache的官方站點www.apache.org
搜索引擎,如比較權威的http://rpmfind.net http://rpm.pbone.net http://pkgs.org
RPM管理程序包
RPM主要能實現對package安裝、升級、卸載、查詢、校驗等功能,並不能很好地解決依賴關係,須要手工安裝!
安裝與升級
1 |
安裝: |
例:安裝sendmail包,須要依賴,強制忽略依賴關係進行安裝[只作演示,顯示狀況應妥善處理好依賴關係]
卸載和查詢
1 |
卸載: |
例:查詢本機已經安裝的全部package可使用rpm -qa,選擇openssl安裝包查看配置文件
包檢驗
1 |
校驗:
|
例:導入一份密鑰文件,而且驗證/tmp/sendmail該package是否合法完整
RPM幾個要點
1.默認狀況下只可以處理安裝包,而不能解決依賴關係,依賴的包須要依次安裝,有順序
2.包來源請儘可能確保安全,可使用密鑰進行合法性完整性驗證,推薦去較大的mirrors站點下載
3.--nodeps能夠忽略依賴關係安裝,不推薦使用,可能致使若干問題
4.--scripts腳本,某些package安裝、卸載先後可指定一些官方或自定義的腳原本實現定製或自動化
YUM基本知識
● RPM最大缺點是須要手動解決依賴關係,而YUM應運而生,可以自動解決依賴關係,極大方便安裝
● YUM工做的機制依賴於配置文件[即YUM源]、倉庫、倉庫元數據文件,大體以下
● YUM還能擁有插件機制,實現加強功能
● 簡要的yum流程
1.用戶使用yum前,須要在/etc/yum.repos.d/*.repo下指定yum源,就是指定所謂的包倉庫
2.包倉庫有大量rpm包,還有元數據文件,記錄了包列表、依賴關係等,這能夠提供快速查詢、解決依賴
3.使用yum安裝某個包,會去倉庫A的元數據文件中經過列表查找該包及依賴關係,分析後自動安裝解決依賴
4.爲了加速查詢分析依賴[也能夠說省帶寬],一般會將倉庫提供的元數據文件緩存一份到本地,你懂得
YUM相關配置文件
yum的配置文件主要有3類,yum全局配置文件 、倉庫repo配置文件、插件[安全]配置目錄
● /etc/yum.conf 全局配置文件,設置了是否緩存、調試等級、日誌文件、插件開關等,建議不修改
● /etc/yum/ 插件[安全]配置目錄,在pluginconf.d中能夠配置插件,如fastestmirror.conf最快鏡像插件
● /etc/yum.repos.d/*.repo:倉庫配置文件,每個*.repo文件能夠規定一個或者多個倉庫, 語法以下:
repo文件語法
1 |
定義一個倉庫指向: nfs://server/nfs_path |
例:掛載安裝盤DVD2到/mnt目錄下,新建一個yum源指向該倉庫
yum管理程序包
相比RPM,yum在管理程序包很方便,經常使用用法總結以下
yum命令
1 |
Usage: |
例:使用yum安裝tree包[tree包能夠樹狀層級顯示文件目錄結構的],觀察yum流程