RPM和YUM的使用
1、rpm包的使用
rpm是由紅帽公司開發的軟件包管理方式,使用rpm我們可以方便的進行軟件的安裝、查詢、卸載、升級等工作。但是rpm軟件包之間的依賴性問題往往會很繁瑣,尤其是軟件由多個rpm包組成時。
rpm包命名格式:
name-major.minor.release-release.arch.rpm
rpm包自己的發行號與源代碼的發行號無關, 僅用於標識對rpm自身的修訂, 有時候release還包含使用的os類型。
例如:httpd-tools-2.4.6-17.e17.x86_64.rpm 這是一個軟件包。
httpd-tools 軟件包的名稱
2.4.6 原廠發布的版本號
17.e17 紅帽給的版本號
x86_64 安裝平臺(還有i386、i686等平臺)。
rpm分包機制:
核心包:包含程序最常用的功能
httpd-2.2.15-39.el6.centos.x86_64.rpm
開發包:包含開發所需要的庫模塊
httpd-devel-2.2.15-39.el6.centos.x86_64.rpm
幫助文檔:
httpd-manual-2.2.15-39.el6.centos.noarch.rpm
工具包:
httpd-tools-2.2.15-39.el6.centos.x86_64.rpm
獲取包的途徑:
1、系統發行光盤或發行版官方站點或官方鏡像站點(以穩定為主, 因此軟件版本相對較老)
2、程序項目官方站點(版本相對較高)
3、第三方組織
Fedora-EPEL: epel
http://rpmfind.net, http://rpm.pbone.net, http://pkgs.org
4、自己制作
註意:在安裝包之前做合法性驗證
1、來源合法性
2、包的完整性
例:#rpm -ivh httpd-tools-2.4.6-17.e17.x86_64.rpm
其中-i表示安裝(install)包,-v表示查看詳細的安裝信息,-h表示顯示安裝進度。後面是包的名稱。
如果在你要安裝一個包時,系統提示你,再安裝此包之前,你還得必須安裝另一個包,只有將那個包安裝完成,你才能繼續安裝你要安裝的包,我們把這種現象稱為包之間的依賴關系。但是如果安裝一個包,但是要依賴好多包,
2、yum工具的使用
yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關系,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
YUM倉庫:
存放了眾多rpm包,以及包的相關元數據的文件(repodata)服務器。
文件服務器:
http://, ftp://, nfs://, file:///
配置文件:
指向倉庫的位置以及各種配置信息,每個yum客戶端可以有多個可用的yum倉庫。
主配置文件:
/etc/yum.conf
子配置文件:
/etc/yum.repos.d/*.repo
倉庫定義:
[repo_id] # 倉庫id應該確保唯一
name=倉庫名稱
baseurl=倉庫路徑 可以是http://, ftp://, nfs://, file:///
enabled={1|0} # 設置是否啟用此倉庫
gpgcheck={1|0} # 設置是否啟用gpg檢查
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 # 配置gpgcheck路徑
cost=num # 定義倉庫的開銷,默認是1000,num越小優先級越高
內置變量:
$releasever # 當前操作系統的發行主版本號 5 6 7等
$arch # 平臺 i486, i586, i686
$basearch # 基礎平臺i386,x86_64
鏡像列表:
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
yum會使用fastestmirror插件找出最快的服務器,並以之作為本次訪問的baseurl
YUM命令的使用:
列出所有可用倉庫:repolist
列出所有程序包:
list {all | installed | available} # 可使用glob匹配
列出所有可用包組:grouplist
緩存管理:
clean{expire-cache|packages|headers|metadata|dbcache|rpmdb|plugins|all} #
清除緩存
makecache # 生成緩存
選項:優先級高於配置文件
--enablerepo=repoidglob # 啟用此倉庫
--disablerepo=repoidglob # 禁用此倉庫
--nogpgcheck # 不做gpg檢查
-y: # 自動回答為yes
安裝:
install
reinstall # 重新安裝包
升級:
checkupdate # 檢查可用升級
update package_name如果有多個版本的升級包可用,可以指定具體版本來升級
降級安裝:
downgrade package_name
卸載:
remove | erase package_name依賴於指定程序包的其他包也會被刪除
查詢:
search # 根據關鍵字模糊查詢包名
provides filepath # 查詢文件由哪個軟件包提供
包組管理:
# 包組有些有空格,因此包組名需要加引號
yum install @"包組" # 安裝一個包組
yum remove @"包組" # 移除一個包組
groupinfo # 查看包組信息
groupinstall # 安裝一個包組
安裝本地rpm文件:
localinstall *.rpm
命令歷史:
yum history
YUM倉庫的構建:
createrepo [options] [directory]
小試牛刀:
1.首先來用rpm裝一個包試試看。
2.再安裝另一個來驗證一下哦。
3.那麽遇到有依賴關系的包用哪個安裝工具更好呢,當然毋容置疑是yum了,哈哈哈!!
4.還有就是能不能提前看一下一個未安裝的rpm包裏存在哪些東西呢?當然可以啦!
5.有時候還想知道某個命令到底是由那個包提供的咋弄?
6.萬一這個文件本身就沒有安裝上哪找去呀?
8.通過這上邊一個一個安裝,同誌們是不是感覺非常麻煩,這個時候一個最最強大的工具就要現身了。
9.當初是你要分開分開就分開........
10.其實自己也可以手動創建一個屬於自己的安裝源哦。
1) 首先進入yum配置文件:cd /etc/yum.repos.d/
2) 創建一個以.repo為後綴的文件,裏邊內容簡單如下:
3) yum clean all && yum repolist # 看看你自己建立的源有沒有出現
RPM和YUM的使用