yum rpm 概述
在Linux的日常維護管理中,管理員要不停的和Linux的程序安裝,升級,卸載打交道,這裏面用到最多的兩個命令就是rpm和yum,甚至有時候我們還涉及源程序的編譯安裝,用來更高效利用我們的設備。
Linux上常用的安裝和升級工具主要有yum和apt,其中yum能更好的解決rpm的依存性問題,推薦使用yum。默認沒有安裝yum,需要單獨下載並安裝.
RPM簡介:
RPM 是 Red Hat Package Manager 的縮寫,本意是Red Hat 軟件包管理,顧名思義是Red Hat 貢獻出來的軟件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流發行版本,以及在這些版本基礎上二次開發出來的發行版採用.
RPM包裏面包含可執行的二進制程序,這個程序和Windows的軟件包中的.exe文件類似是可執行的;RPM包中還包括程序運行時所需要的文件,這也和Windows的軟件包類似,Windows的程序的運行,除了.exe文件以外,也有其它的文件.
一個RPM 包中的應用程序,有時除了自身所帶的附加文件保證其正常以外,還需要其它特定版本文件,這就是軟件包的依賴關係;依賴關係並不是Linux特有的, Windows操作系統中也是同樣存在的;比如我們在Windows系統中運行3D遊戲,在安裝的時候,他可能會提示,要安裝Direct 9 ;Linux和Windows原理是差不多的。
RPM包管理的用途
1、可以安裝、刪除、升級和管理軟件;當然也支持在線安裝和升級軟件;
2、通過RPM包管理能知道軟件包包含哪些文件,也能知道系統中的某個文件屬於哪個軟件包;
3、可以在查詢系統中的軟件包是否安裝以及其版本;
4、作爲開發者可以把自己的程序打包爲RPM 包發佈;
5、軟件包簽名GPG和MD5的導入、驗證和簽名發佈;
6、依賴性的檢查,查看是否有軟件包由於不兼容而擾亂了系統。
yncengine-1.0.2-10.fc10.x86_64.rpm
syncengine: 軟件名稱
1.0.2: 版本號
10: 發行號或發行標記,可以使用alpha(A)、debug(D)、beta(B)、release(R)四個版本,某些情況也可以使用test(T)
fc10: 表示對應於Fedor10的發行版的Linux
x86_64: 系統平臺的版本,通常有i386等,如果是noarch則表示對硬件沒有級別限制
rpm: 後綴名稱,如果是以.src.rpm爲後綴的,說明包中還同時帶有軟件的原代碼
查看本機安裝的yum包都有哪些?
~]# rpm -qa |grep yum
安裝一個新的rpm 包
~]# rpm –ivh yum-3.4.3-125.el7.centos.noarch.rpm
配置文件:
/etc/yum.conf 爲所有倉庫提供公共配置
/etc/yum.repos.d/*.repo 爲倉庫的指向提供配置
cachedir=/var/cache/yum #yum下載的RPM包的緩存目錄
keepcache=0 存是否保存,1保存,0不保存。
debuglevel=2 調試級別(0-10),默認爲2
logfile=/var/log/yum.log #yum的日誌文件所在的位置
exactarch=1 更新的時候,是否允許更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。
obsoletes=1 是一個update的參數,具體請參閱yum(8),簡單的說就是相當於upgrade,許更新陳舊的RPM包
gpgcheck=1 是否檢查GPG(GNU Private Guard),一種密鑰方式簽名。
plugins=1 是否允許使用插件,默認是0不允許,但是我們一般會用yum-fastestmirror 個插件。
installonly_limit=5 允許保留多少個內核包。
exclude=selinux* #屏蔽不想更新的RPM包,可用通配符,多個RPM包之間使用空格分離。
安裝:
]#rpm -vih file.rpm
-i install 安裝
-v 顯示詳細信息
vv 顯示更加詳細的信息
-h 使用#顯示安裝進度
查詢:
]#rpm -qa [包名][路徑]
rpm -q 對軟件包查詢
-qa 查詢所有軟件包
-qip 查詢沒有安裝過的軟件包 +包名稱及路徑
-qi 查詢已經安裝的軟件包的詳細信息 +包名
-ql 查詢已安裝過的軟件包位置及安裝生成文件 +包名稱
-qlp 查詢軟件包裏面包含哪些文件 +包名稱及路徑
-qf 查詢某個文件時屬於哪個軟件包 +包名稱及路徑
卸載:
]#rpm -e [包名]
rpm -e 包名
升級:
]#rpm -uvh file.rpm
rpm -uvh 不但可以完成升級還可以完成安裝
-fvh 只可以進行軟件的升級
校驗:
rpm -V 在校驗的時候如果沒有提示任何的信息,說明文件沒有錯誤
yum指令詳解
安裝應用程序
yum install package_name
yum -y : 自動回答爲yes
重新安裝一次,不管是否裝過
yum reinstall package_name
*rpm包的更新
檢查可更新的rpm包
#yum check-update
更新所有的rpm包
#yum update
更新指定的rpm包,如更新kernel和kernel source
#yum update kernel kernel-source
大規模的版本升級,與yum update不同的是,連舊的淘汰的包也升級
#yum upgrade
刪除rpm包,包括與該包有倚賴性的包
#yum remove licq
注:同時會提示刪除licq-gnome,licq-qt,licq-text
*yum暫存(/var/cache/yum/)的相關參數
清除暫存中rpm包文件
#yum clean packages
清除暫存中rpm頭文件
#yum clean headers
清除暫存中舊的rpm頭文件
#yum clean oldheaders
清除暫存中舊的rpm頭文件和包文件
#yum clean或#yum clean all
注:相當於yum clean packages + yum clean oldheaders
*rpm包列表
列出資源庫中所有可以安裝或更新的rpm包
#yum list
列出資源庫中特定的可以安裝或更新以及已經安裝的rpm包
#yum list mozilla
#yum list mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla開頭的rpm包
列出資源庫中所有可以更新的rpm包
#yum list updates
列出已經安裝的所有的rpm包
#yum list installed
列出以bind開頭的所有rpm包
# yum list all bind*
移除所有以bind開頭的所有rpm包
# yum remove bind*
列出已經安裝的但是不包含在資源庫中的rpm包
#yum list extras
注:通過其它網站下載安裝的rpm包
*rpm包信息顯示(info參數同list)
列出資源庫中所有可以安裝或更新的rpm包的信息
#yum info
列出資源庫中特定的可以安裝或更新以及已經安裝的rpm包的信息
#yum info mozilla
#yum info mozilla*
注:可以在rpm包名中使用匹配符,如列出所有以mozilla開頭的rpm包的信息
列出資源庫中所有可以更新的rpm包的信息
#yum info updates
列出已經安裝的所有的rpm包的信息
#yum info installed
列出已經安裝的但是不包含在資源庫中的rpm包的信息
#yum info extras
搜索匹配特定字符的rpm包
#yum search all glibc
搜索有包含特定文件名的rpm包
#yum provides realplay
檢查GPG Key
# rpm -qa gpg-pubkey*
顯示Key信息
#rpm -qi gpg-pubkey-f4a80eb5-53a7ff4b
刪除Key
#rpm -e gpg-pubkey-e42d547b-3960bdf
系統更新(更新所有可以升級的rpm包,包括kernel)
#yum -y update
每天定期執行系統更新
#chkconfig yum on
#service yum start
vim /etc/yum.repos.d/CentOS-Media.repo 光盤使用yum安裝軟件配置文件
vim /etc/yum.repos.d/CentOS-Base.repo 網絡使用yum安裝軟件配置文件