概述
Yum是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝並自動處理依賴性關係(即,一次性安裝所有依賴的軟件包,無須多次下載、安裝)。yum提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令,且命令簡潔而又好記。
特點:
1. 配置文件簡潔
2. 自動解決安裝或卸載軟件時遇到的倚賴性問題
3. 可以同時配置多個資源庫
4. 保持與RPM數據庫的一致性
5. 使用方便
yum命令
語法:yum 【操作】 軟件名
常用操作:
命令 | 功能 |
---|---|
yum install yum-fastestmirror | 自動搜索鏡像插件 |
yum install yumex | 安裝圖形窗口插件 |
yum grouplist | 查看可能批量安裝的列表 |
安裝操作
命令 | 功能 |
---|---|
yum install | 安裝全部程序徐 |
yum install 程序名 | 安裝指定的程序 |
yum groupinsall 程序組名 | 安裝程序組 |
示例:
簡單安裝相關軟件
[root@CentOs7 ~]# yum install bzip2
Loaded plugins: fastestmirror
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
。。。。。。
Installed:
bzip2.x86_64 0:1.0.6-13.el7
Complete!
更新操作
命令 | 功能 |
---|---|
yum update | 更新全部程序 |
yum update 程序名 | 更新指定程序 |
yum check-update | 檢查可更新的程序 |
yum upgrade 程序名 | 升級指定程序 |
yum groupupdate 程序組名 | 升級程序組 |
示例:
常見的指定軟件更新操作
[root@CentOs7 ~]# yum update bzip2
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.huaweicloud.com
* extras: mirrors.huaweicloud.com
* updates: mirrors.aliyun.com
No packages marked for update
查找和顯示操作
命令 | 功能 |
---|---|
yum info 程序名 | 顯示目標程序信息 |
yum list | 顯示所有已經安裝和可以安裝的程序 |
yum list 程序名 | 顯示指定程序包安裝情況 |
yum groupinfo | 程序組名 顯示程序組信息 |
yum search string | 根據關鍵字string查找安裝包 |
示例:
查看指定程序的相關信息
[root@CentOs7 ~]# yum info zip
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.huaweicloud.com
* extras: mirrors.huaweicloud.com
* updates: mirrors.aliyun.com
Installed Packages
Name : zip
Arch : x86_64
Version : 3.0
Release : 11.el7
Size : 796 k
Repo : installed
From repo : base
Summary : A file compression and packaging utility compatible with PKZIP
URL : http://www.info-zip.org/Zip.html
簡單顯示指定程序安裝情況
[root@CentOs7 ~]# yum list zip
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.huaweicloud.com
* extras: mirrors.huaweicloud.com
* updates: mirrors.aliyun.com
Installed Packages
zip.x86_64
卸載操作
命令 | 功能 |
---|---|
yum remove 程序名 | 卸載指定程序 |
yum groupremove 程序組名 | 刪除指定程序組 |
yum deplist 程序名 | 查看指定程序的依賴情況 |
示例:
嘗試將剛剛安裝的軟件卸載
[root@CentOs7 ~]# yum remove bzip2
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package bzip2.x86_64 0:1.0.6-13.el7 will be erased
--> Finished Dependency Resolution
。。。。。。。
Removed:
bzip2.x86_64 0:1.0.6-13.el7
Complete!
清除緩存操作
命令 | 功能 |
---|---|
yum clean packages | 清除緩存目錄下的軟件包 |
yum clean headers | 清除緩存目錄下的 headers |
yum clean oldheaders | 清除緩存目錄下舊的 headers |
yum clean all | 清除緩存目錄下的軟件包及舊的header |
示例:
嘗試清除殘餘的安裝文件
[root@CentOs7 ~]# yum clean packages
Loaded plugins: fastestmirror
Cleaning repos: base extras updates
0 package files removed
[root@CentOs7 ~]#
綜合示例
經過上面的學習讓我們建立一個小的腳本來更深入瞭解yum的工作原理
1 #!/usr/bin/python3
2 from requests import request
3 import os
4 import sys
5 packet=sys.argv[1]
6 print("Begin to download {}!".format(packet))
7 URL="https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/{}".format(packet)
8 res= request(method="GET",url=URL)
9 data=res.content
10 with open(packet,"wb") as f:
11 f.write(data)
12 print("Begin to install {}!".format(packet))
13 Cmd="rpm -ivh {}".format(packet)
14 try:
15 os.popen(Cmd)
16 print("Begin to install {} succesful !".format(packet))
17 except Exception as err:
18 print(err)
19
圖例:
接下來讓我們檢驗腳本的實際能力,首先利用yum命令查詢目標軟件包版本
root@localhost Shell]# yum list zip
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Available Packages
zip.x86_64 3.0-11.el7 base
[root@localhost Shell]#
然後利用我們開發的腳本下載,我們可以看到腳本已經下載到文件夾下
[root@localhost Shell]# ./yump zip.x86_64 0:3.0-11.el7
Begin to download zip.x86_64!
Begin to install zip.x86_64!
zip.x86_64 succesful !
[root@localhost Shell]# ls
yump zip.x86_64
注意事項
對於初學者而言,python的使用會存在諸多問題,針對我個人遇到的問題,我將經驗總結如下:
- 如果運行腳本時提示python裏無法導入requests模塊,這是由於python-pip裏沒有安裝requests,需要利用cd命令到/usr/bin目錄下用pip或者pip3命令安裝requests模塊,(即pip3 install requests)安裝完成後重啓即可。
- 如果requests模塊由於網絡原因更新失敗的話,這是由於python裏的源是國外網站的,國內訪問國外有諸多限制,所以可以將python的源改爲阿里的。主要操作方式如下:
- 首先利用cd命令回到用戶目錄下(即cd ~)
[root@localhost Shell]# cd
[root@localhost ~]# ls
anaconda-ks.cfg get-pip.py get-pip.py.1 practicec Shell test
- 然後創建 .pip目錄,並在該目錄下創建pip.conf文件
[root@localhost ~]# mkdir .pip
[root@localhost ~]# cd .pip
[root@localhost .pip]# vim pip.conf
3.利用vim命令在pip.conf裏面輸入下列代碼,保存退出即可
1 [global]
2 trusted-host=mirrors.aliyun.com
3 index-url=http://mirrors.aliyun.com/pypi/simple
4.最後重啓系統並安裝requests包即可