Linux軟件包管理工具yum詳解

  • yum介紹

  • yum客戶端的使用

    • 配置文件項作說明:

    • 案例repo配置文件。

    • 創建yum源命令(yum-config-manager)

  • yum list相關命令

  • yum安裝

  • yum更新和升級

  • yum查找和顯示

  • yum刪除程序

  • 查看倉庫

  • 實戰演練本地yum倉庫(光盤)

  • YUM內置變量

  • 創建YUM倉庫(http)

yum介紹

yum命令是在Fedora和RedHat以及SUSE中基于rpm的軟件包管理器,它可以使系統管理人員交互和自動化地更細與管理RPM軟件包,能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。

yum提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令,而且命令簡潔而又好記。

yum客戶端的使用

YUM的配置方式是基于分段配置的,yum 客戶端配置文件:

/etc/yum.conf :為所有倉庫提供公共配置
/etc/yum.repos.d/*.repo :為倉庫的指向提供配置

配置文件項作說明:

[ ... ]:        //倉庫的名稱。不能重復。
name:           //對倉庫的描述,該項必須有。
baseurl:        //配置倉庫的路徑。用于指定一個url。
mirrorlist:     //指向一個鏡像列表,里面有多個url。
enabled:        //是否啟用當前倉庫。值為1或0,默認為1。
gpgcheck:       //是否需要gpg校驗。值為1或0,默認為1。
gpgkey:         //驗證RPM包的密鑰文件路徑。該文件可以在遠處服務器上,也可以在本地。
cost:           //代價,其本質是倉庫優先級的配置。值越低,表示訪問的代價越低,也即優先使用。

案例repo配置文件。

[base]
name=CentOS 6.4 x86_64
baseurl=http://172.16.0.1/cobbler/ks_mirror/centos-6.4-x86_64/
enabled=1
gpgcheck=0

創建yum源命令(yum-config-manager)

生成172.16.0.1_cobbler_ks_mirror_CentOS-X-x86_64_.repo

yum-config-manager --add-repo=http://172.16.0.1/cobbler/ks_mirror/CentOS-X-x86_64/
yum-config-manager --disable “ 倉庫名" 禁用倉庫
yum-config-manager --enable “ 倉庫名”  啟用倉庫

yum list相關命令

獲取yum倉庫中所有的包信息。

命令:yum list all

結果說明:

第一列:軟件包名稱.平臺名稱。 
第二列:軟件版本號-release號。 
第三列:安裝情況。

若顯示@則表示該軟件已經通過倉庫安裝。如@anaconda-CentOS-201303020151.x86_64/6.4 表示已經通過naconda-CentOS-201303020151.x86_64/6.4倉庫安裝。 
install,則表示系統已經安裝,未通過倉庫安裝。 
若無@或不是install,則表示尚未安裝。如base,表示未安裝,包位于base倉庫中。updates,表示未安裝,包位于updates倉庫中。

yum安裝

yum install #全部安裝 
yum install package1 #安裝指定的安裝包package1
yum groupinsall group1 #安裝程序組group1

yum更新和升級

yum update #全部更新 
yum update package1 #更新指定程序包package1
yum check-update #檢查可更新的程序
yum upgrade package1 #升級指定程序包package1
yum groupupdate group1 #升級程序組group1

yum查找和顯示

yum info package1 #顯示安裝包信息package1 
yum list #顯示所有已經安裝和可以安裝的程序包
yum list package1 #顯示指定程序包安裝情況package1
yum groupinfo group1 #顯示程序組group1信息
yum search string 根據關鍵字string查找安裝包

yum刪除程序

yum remove | erase package1 #刪除程序包package1 
yum groupremove group1 #刪除程序組group1
yum deplist package1 #查看程序package1依賴情況 清除緩存
yum clean packages #清除緩存目錄下的軟件包
yum clean headers #清除緩存目錄下的 headers
yum clean oldheaders #清除緩存目錄下舊的 headers

查看倉庫

查看當前能夠使用的yum倉庫

命令:yun repo list

顯示所有倉庫

命令:yum repo list all

顯示禁用的倉庫

命令:yum repo list enabled

顯示啟用的倉庫

命令:yum repo list disabled

實戰演練本地yum倉庫(光盤)

yum倉庫又稱為yum源,yum倉庫一般會支持ftp協議(ftp://),http協議(http://),文件協議(file://)。

本地的YUM倉庫

使用系統安裝盤當作YUM倉庫。對于RHEL系列的Linux,其安裝光盤就是一個yum倉庫。掛在上光盤,將yum客戶端的倉庫指向光盤路徑。

1、掛載光盤

Host:BJ_Web_IP:252.97 User:root Dir:~$ >>mount /dev/cdrom /mnt/

2、移動etc/yum.repos.d目錄所有的repo文件

Host:BJ_Web_IP:252.97 User:root Dir:/etc/yum.repos.d$ >>mv * old

3、創建新文件dvd.repo

Host:BJ_Web_IP:252.97 User:root Dir:/etc/yum.repos.d$ >>vim dvd.repo

4、加入以下內容:

[dvd]
name=install dvd
baseurl=file:///mnt
enabled=1
gpgcheck=0

5、刷新 repos 生成緩存

Host:BJ_Web_IP:252.97 User:root Dir:/etc/yum.repos.d$ >>yum makecache

然后就可以使用yum命令安裝你所需要的軟件包了

YUM內置變量

yum內置變量是關于操作系統、CPU平臺的一些信息??捎糜趧討B的配置yum路徑。

Alt text 
說明: 
$releasever:當前操作系統的主版本號。若CentOS6.4 該值為6。 
$arch:當前平臺版本架構。x86_64 或 i386/i586/i686。 
$basearch:當前平臺的基本架構。x86_64 或 i386。 
$YUM0-9:這十個變量分別被 shell 環境中的同名變量的值所替代。如果 /etc/yum.conf 文件中設置了這些變量,而 shell 環境中沒有同名變量,它的值則不被代替。

創建YUM倉庫(http)

創建基于HTTP訪問的yum倉庫 
搭建Web服務器,讓瀏覽器能訪問到相應的yum倉庫目錄,即可通過HTTP訪問yum倉庫。 
使用createrepo命令創建YUM倉庫。該命令系統中默認是沒有的??梢允褂胷pm或yum安裝上該命令。

[root@localhost ~]# mkdir -p /var/www/html/yum_repo/my/Packages  
[root@localhost ~]# cp /mnt/Packages/* /var/www/html/yum_repo/my/Packages/;  
[root@localhost ~]# cd /var/www/html/yum_repo/my/Packages
[root@localhost Packages]# createrepo .  
[root@localhost Packages]# /etc/init.d/httpd start  

該命令會在指定目錄中生成repodata目錄。該目錄中是所有RPM包的信息文件,及其依賴關系的信息文件。以xml文檔和sqllite數據庫文件的形式存儲。

[root@localhost Packages]# cd repodata/
[root@localhost repodata]# ls
0bbdfd6e17cfa0c748811b501d8561a7da1035277ddd6810dc05d5b89167961e-other.sqlite.bz2
377ca12437cb6e66b02b5329f7b41b59dbe178525a491890b2b49605c73ddfd5-filelists.xml.gz
669fda84c4c170d0fa0b974f5fae3d2e65b47892d7aca1cc3362dca0881ad6ff-filelists.sqlite.bz2
8ecfdeda2f598228c77ad7cf2323c2d91f406f55c4eaea6dfa717aa2f97965d3-primary.xml.gz
8f16e9af726dd61d7c991eff8cc19167f5c30821ae0048699fa6797eb2cc56ed-other.xml.gz
a7d3fe72ec1f0670ae7f01f10f05a8b97777b3c29e39988d89a78e959f47384b-primary.sqlite.bz2
repomd.xml

在測試機器上創建新文件/etc/yum.repos.d/my.repo,內容如下

[my]  
name=my  
baseurl=http://<repos_host>/yum_repos/my/Packages  
enabled=1  
gpgcheck=0  
priority=1
//其中 <repos_host> 是 YUM 源的機器名或IP地址。

更新本地 YUM 緩存

[root@localhost ~]# yum clean all  
[root@localhost ~]# yum makecache

如果以后有新包加入需要重新更新yum庫

cd /var/www/html/yum_repo/my/Packages  
createrepo .

在客戶端更新

yum clean all  
yum makecache  

原創文章,作者:M20_he,如若轉載,請注明出處:http://www.www58058.com/43872

(1)
M20_heM20_he
上一篇 2016-09-07
下一篇 2016-09-07

相關推薦

  • N22-第三周博客作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 2、取出最后登錄到當前系統的用戶的相關信息。 3、取出當前系統上被用戶當作其默認shell的最多的那個shell。 4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中。 5、取出當前主機的…

    Linux干貨 2016-08-29
  • 淺談群紅包的實現

    前言:紅包是支付的方式, 也是社交的延伸。群紅包在這兩塊領域串聯得很好, 表現尤為的濃墨重彩. 承接上兩篇技術淺談:1). 淺談接龍紅包的技術實現.2). 淺談微信紅包搖一搖的技術實現.這一次, 讓我們談談群紅包的技術實現. 一為是紅包的分配算法, 二為競搶的技術實現. 分配算法:最初玩群紅包的時候, 并沒有意識到分配算法的難度…

    Linux干貨 2015-03-10
  • http狀態碼大全

    狀態值:100 客戶端應當繼續發送請求。這個臨時響應是用來通知客戶端它的部分請求已經被服務器接收,且仍未被拒絕??蛻舳藨斃^續發送請求的剩余部分,或者如果請求已經完成,忽略這個響應。服務器必須在請求完成后向客戶端發送一個最終響應。 狀態值:101 服務器已經理解了客戶端的請求,并將通過Upgrade 消息頭通知客戶端采用不同的協議來完成這個請求。在發送完這個…

    Linux干貨 2016-11-01
  • MySQL入門命令知識

    簡單介紹下吧,MySQL應用的場景大多數互聯網公司第一次賣身是賣個了sun好像是10億,第二次是連同sun自己,以74億美元被賣給了Orecle~后面MySQL原作者站出來說,MySQL會存在閉源風險,整了個MariaDB~我也是醉了,也不考慮下我們的痛苦!下面簡要介紹下MySQL的入門知識。    一、MySQL有三種定義語言 &nbs…

    2016-12-05
  • 馬哥教育21期網絡班—第四周課程+練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost ~]#cp -rf /etc/skel /home/tuser1[root@localhost ~]#chmod -R g…

    Linux干貨 2016-07-16
  • 磁盤管理1——分區和文件系統的創建

    Linux磁盤及文件系統管理 Disk(硬盤)接口類型:          IDE:并口,133MB/s          SCSI:并口,640MB/s    &nbs…

    Linux干貨 2016-08-27
欧美性久久久久