學習筆記(十)——軟件包管理:rpm + yum

1.rpm

rpmRedHat Package Manager)是 RedHat 的軟件包管理工具,由於CentOS 是基於 RedHat Linux的,所以 rpm 對於 CentOS 同樣適用。下面列舉了一些rpm 的常用參數:

[root@localhost ~]# rpm -ivh packagename.rpm         //安裝包
[root@localhost ~]# rpm -e packagename.rpm          //卸載包

如果要卸載 vim-enhanced 包,使用如下命令:

[root@localhost ~]# rpm -e vim-enhanced

通過如下命令查看是否刪除成功:

[root@localhost ~]# echo $?

該命令很常用,如果 $? 值爲 0,則上一條命令執行成功;如果$? 值非0,則命令執行失敗。

安裝 / 卸載包時,經常會有各種互相依賴的關係,使用 --nodeps 可以忽略依賴關係,單獨安裝 / 卸載包:

[root@localhost ~]# rpm -e vim-enhanced --nodeps
[root@localhost ~]# rpm -Uvh packagename.rpm      //更新包

查詢系統安裝的所有包:

[root@localhost ~]# rpm -qa

查詢時,假如一個包的全名如下:

yum-plugin-versionlock-1.1.30-30.el6.noarch.rpm

yum-plugin-versionlock 爲包名,1.1.30-30爲版本號,el6 代表其爲 RedHat 6 系統,noarck 代表該包在 32 位及 64 位操作系統下通用,如果僅適用於 32 位操作系統,則此位置一般爲 i386 i586 i686 等,如果僅適用於 64位操作系統,則此位置一般爲 ix86_x64 等形式(當然,由於操作系統的向下兼容性,適用於32 位的 rpm 包通常也能安裝在 64 位操作系統上,反之則不然)。rpm rpm 包通常的後綴名。

查詢系統安裝的所有包中名稱包含vim 的包:

[root@localhost ~]# rpm -qa *vim*

上條命令與結合使用 grep 效果相同:

[root@localhost ~]# rpm -qa | grep "*vim*"

查看安裝一個包具體多出了哪些文件(此處包名必須完整準確,不能再使用 * 進行通配):

[root@localhost ~]# rpm -ql vim-enhanced

查詢某個包的詳細信息(同樣包名必須完整準確):

[root@localhost ~]# rpm -qi vim-enhanced

查看一條命令是通過安裝什麼包產生的(命令需要絕對的路徑):

[root@localhost ~]# rpm -qf vim

也可以結合反引號來使用:

[root@localhost ~]# rpm -qf `which vim`

rpm 雖然有其作用,但是有些情況下我們在用 rpm 安裝或卸載時會遇到循環依賴的問題,即便使用 --nodeps 也無法解決

 

2.yum

yum 命令可以通過網絡或者本地源來進行安裝、刪除、更新、查詢等操作,解決了 rpm 難以解決的循環依賴問題。

安裝 vim-enhanced 包:

[root@localhost ~]# yum install -y vim-enhanced

卸載 vim-enhanced 包:

[root@localhost ~]# yum remove vim-enhanced

更新 vim-enhanced 包:

[root@localhost ~]# yum update -y vim-enhanced

查看 vim 命令是通過安裝哪個包產生的(類似於 rpm -qf /usr/bin/vim),前提是 yum 源中包含該包:

[root@localhost ~]# yum provides vim

該命令等同於:

[root@localhost ~]# yum whatprovides vim

查看 yum 源中的所有安裝包:

[root@localhost ~]# yum list

除了能對某個包進行操作外,yum 還可以以組爲單位對安裝包進行操作,相關命令如下:

[root@localhost ~]# yum groupinstall
[root@localhost ~]# yum groupremove
[root@localhost ~]# yum grouplist

常用的以組爲單位進行安裝的操作通常爲安裝開發環境(當然安裝桌面也會用到 yum groupinstall):

[root@localhost ~]# yum groupinstall -y "Development tools"

    注:CentOS 默認提供的 yum 源往往只能滿足我們最基本的需求,如果需要通過 yum 安裝其他包(如 nginx 等),必須安裝其他 yum 源進行擴展,比較常用的是epel

[root@localhost ~]# rpm -ivh 
http://www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm

如果是 64 位操作系統:

[root@localhost ~]# 
http://www.lishiming.net/data/attachment/forum/epel-release-6-8_64.noarch.rpm

也可以通過如下簡潔的命令進行安裝:

[root@localhost ~]# yum install -y epel-release

有些時候我們只想下載而不想安裝,或者需要在一臺可以聯網的機器上下載以後拷貝到不能上網的機器上進行安裝。爲了解決這種需求,需要使用 yum 命令的 --downloadonly 選項:

首先,安裝 yum 插件來支持 --downloadonly 選項:

[root@localhost ~]# yum install -y yum-plugin-downloadonly

之後,對已安裝過的包使用 reinstall ,對未安裝過的包使用 install ,假如 vim-enhanced 包未安裝:

[root@localhost ~]# yum install -y vim-enhanced --downloadonly

假如 vim-enhanced 包已安裝:

[root@localhost ~]# yum reinstall -y vim-enhanced --downloadonly

這樣就可以將 vim-enhanced 包下載下來,默認位於 /var/cache/yum/base/packages/目錄下,如果想改變存放目錄,有兩種方法,第一種方法,使用 --downloaddir 臨時指定存放目錄:

[root@localhost ~]# yum install -y vim-enhanced --downloadonly --downloaddir=/usr/local/src/

第二種方法,修改 /etc/yum.conf 配置文件:

[root@localhost ~]# vim /etc/yum.conf

[main]

cachedir=/usr/local/src/

keepcache=1

cachedir 處指定下載目錄,keepcache 1 表示保存下載包,爲 0 則不保存下載包。使用第二種方法時下載包也不是完全位於指定的目錄根目錄下,所以建議使用第一種方法,定位更加準確快捷。

使用網易的 yum 源有時更加方便,從如下網址下載其 .repo 文件:

http://mirrors.163.com/.help/CentOS6-Base-163.repo

傳輸到 Linux 系統中 /etc/yum.repos.d/ 目錄下(備份該目錄下其他文件,並將該目錄清空)。重新生成緩存:

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

 

   關於如何製作本地 yum 源,可以參考之前的博客,地址如下:

   http://xitongjiagoushi.blog.51cto.com/9975742/1621301

 


本文出自 “細桶假狗屎” 博客,請務必保留此出處http://xitongjiagoushi.blog.51cto.com/9975742/1632110

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章