yum程序包管理
Yum是RPM前端軟件包管理器。基於RPM包管理,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟件包。 我們可以使用yum命令對程序包執行安裝、卸載、升級、查詢的工作。
yum的配置文件有兩個
主配置文件:
/etc/yum.conf爲個倉庫指向提供公共默認規則,比如定義調用倉庫資源時默認是不是要檢測程序包合法性的gpgcheck。
各個分倉庫文件的定義:
分倉庫一般是在/etc/yum.repos.d/*.repo中定義的。每個分倉庫文件必須用.repo命名才能生效,且每個文件中可以定義多個庫指向。
文件中通常需要定義以下幾項內容:
[repositoryid]:此ID唯一標識此分庫的指向,必須是整個單詞,不能與別的庫相同;
name=描述信息
mirrorlist=url指向倉庫列表
baseurl=url指向倉庫路徑
url分爲:
本地:file:///生成了repodata目錄倉庫;
ftp路徑:ftp://生成了repodata目錄倉庫;
http路徑:http://生成了repodata目錄的倉庫;
gpgcheck={1|0}:1表示啓用檢測,0表示關閉
enabled={1|0}:1表示啓用該分庫,0表示關閉
由於使用yum命令必須有可用的倉庫,所以我們必須創建一個本地庫
1.我們建立一個http指向的本地倉庫,首先要開啓httpd服務(如果無法開啓則需要安裝httpd包),還要關閉防火牆service iptables stop;
2.我們使用cp命令到掛載的光盤中下載一些程序包到/var/www/html/xen4中,然後使用createrepo命令在此目錄下創建repodata(此命令需要提前安裝createrepo程序包)
3.cd到/etc/yum.repos.d/下創建一個倉庫配置文件
4.使用yum clean命令清理緩存,使用yum makecache命令創建新緩存,使用yum repolist查看可以使用的倉庫
我們已經創建了一個包含許多PHP程序包的本地倉庫,使用http可以訪問,下面我們介紹一下yum對倉庫內程序包的管理。
yum [options] [command] [package ...]
可用選項: -
y: 自動回答爲“yes”
--disablerepo=: 臨時禁用在配置文件中配置並啓用的某repository;
--enablerepo=:臨時啓用指定的某repo;
--nogpgcheck: 禁止做包校驗;
一、查看所有以創建的倉庫配置文件.repo yum listrepo
二、清理緩存文件 yum clean all
三、創建新的緩存 yum makecache
四、程序包查找
yum list [all | glob_exp1] [glob_exp2] [...] 查找所有的程序包文件,後面可以使用glob表達式給定查看條件
yum list {available|updates|installed|extras|obsoletes} [glob_exp1] [...] 查找 可用的/可升級的/已安裝的/更新的/過時的程序包
yum grouplist [hidden] [groupwildcard] [...] 查找包組文件
五、程序包安裝
yum install package1 [package2] [...]
注意: 只需要提供包名;如果某包有在不同倉庫中有多個不同版本,默認會安裝最新版本;如果要安裝指定版本:install PACKAGE-VERSION ...
重新安裝(覆蓋安裝) yum reinstall package1 [package2] [...]
程序包升級 update [package1] [package2] [...]
程序包降級: downgrade package1 [package2] [...]
檢查有哪些升級可用: check-update
七、程序包卸載 yum remove|erase package
所有依賴於此程序包的其他程序包都會被卸載
八、程序包信息查詢
查詢程序的相關簡要信息:info PACKAGE ...
在包名和sumary信息中搜索指定的關鍵字:search KEYWORD ...
查詢指定文件由哪個程序包安裝生成:provides|whatprovides /PATH/TO/SOMEFILE
九、安裝或升級本地程序包
localinstall rpmfile1 [rpmfile2] [...] 用於安裝倉庫中並不存在的程序包文件,這些程序包有可能又依賴於倉庫中的某些程序包;我們可以從其他途徑獲取一些程序包下載到本地目錄,使用此命令安裝。
localupdate rpmfile1 [rpmfile2] [...] 用本地下載的程序包對已安裝的一些包進行升級 十、包組管理:
列出所有包組:grouplist
顯示指定包組詳情:groupinfo group1 [...]
安裝:groupinstall group1 [group2] [...]
卸載:groupremove group1 [group2] [...]
升級:groupupdate group1 [group2] [...]
Note: 可直接用install、remove或update來管理包組:
@GROUP_NAME 例如:# yum install @"Server Platform Development"