1. 程式人生 > >RPM和YUM的使用

RPM和YUM的使用

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表示顯示安裝進度。後面是包的名稱。

如果在你要安裝一個包時,系統提示你,再安裝此包之前,你還得必須安裝另一個包,只有將那個包安裝完成,你才能繼續安裝你要安裝的包,我們把這種現象稱為包之間的依賴關系。但是如果安裝一個包,但是要依賴好多包,

rpm就不見得有多好了,這種情況下,我們通常使用yum命令。

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的使用