1. 程式人生 > 實用技巧 >程式包管理之yum

程式包管理之yum

yum命令引數使用詳解


一、yum的簡介

yum,是Yellow dog Updater, Modified 的簡稱,是杜克大學為了提高RPM 軟體包安裝性而開發的一種軟體包管理器。起初是由yellow dog 這一發行版的開發者Terra Soft 研發,用python 寫成,那時還叫做yup(yellow dog updater),後經杜克大學的[email protected] 開發團隊進行改進,遂有此名。yum 的宗旨是自動化地升級,安裝/移除rpm 包,收集rpm 包的相關資訊,檢查依賴性並自動提示使用者解決。yum 的關鍵之處是要有可靠的repository,顧名思義,這是軟體的倉庫,它可以是http 或ftp 站點,也可以是本地軟體池,但必須包含rpm 的header,header 包括了rpm 包的各種資訊,包括描述,功能,提供的檔案,依賴性等。正是收集了這些header 並加以分析,才能自動化地完成餘下的任務。

yum的理念是使用一箇中心倉庫(repository)管理一部分甚至一個distribution 的應用程式相互關係,根據計算出來的軟體依賴關係進行相關的升級、安裝、刪除等等操作,減少了Linux 使用者一直頭痛的dependencies 的問題。這一點上,yum 和apt 相同。apt 原為debian 的deb 型別軟體管理所使用,但是現在也能用到RedHat 門下的rpm 了。

yum主要功能是更方便的新增/刪除/更新RPM 包,自動解決包的倚賴性問題,便於管理大量系統的更新問題。

yum可以同時配置多個資源庫(Repository),簡潔的配置檔案(/etc/yum.conf),自動解決增加或刪除rpm 包時遇到的依賴性問題,保持與RPM 資料庫的一致性

二、yum的配置

配置檔案:

/etc/yum.conf:為所有倉庫提供公共配置

/etc/yum.repos.d/*.repo:為倉庫的指向提供配置

倉庫指向的定義:

[repositoryID]

name=Some name for this repository這個倉的名稱

baseurl=url://path/to/repository/

enabled={1|0}是否啟用此倉庫

gpgcheck={1|0}是否檢查完整性及來源合法性

gpgkey=URL金鑰檔案路徑連結

enablegroups={1|0}是否在此倉庫上支援使用組,來批量管理程式包

failovermethod={roundrobin|priority按順序}

預設為:roundrobin,意為隨機挑選;

cost= 開銷

預設為1000

教室裡的yum源:http://172.16.0.1/cobbler/ks_mirror/CentOS-6.6-x86_64/

CentOS 6.7 X84_64 epel:http://172.16.0.1/fedora-epel/6/x86_64/

三、yum命令的用法:

顯示程式包:

list

# yum list [all | glob_exp1] [glob_exp2] [...]

# yum list {available|installed|updates} [glob_exp1] [...]

圖示:


安裝程式包:

install package1 [package2] [...]

reinstall package1 [package2] [...] (重新安裝)

wKioL1Z6QeTBboYiAAAgqmkHLm0026.png

升級程式包:

update [package1] [package2] [...]

downgrade package1 [package2] [...] (降級)

檢查可用升級:

check-update

wKioL1Z6Qj6j74F1AAAJjvZ3iiA711.png

解除安裝程式包:

remove | erase package1 [package2] [...]

wKiom1Z6Qm2xM_dmAAAbkI8OPpk308.png

檢視程式包information:

info [...]

wKioL1Z6QrDT4ggDAAAmZd2WWl4090.png

檢視指定的特性(可以是某檔案)是由哪個程式包所提供:

provides | whatprovides feature1 [feature2] [...]

清理本地快取:

clean [ packages | metadata 元資料| expire-cache過期資料 | rpmdb | plugins | all ]

構建快取:

makecache

搜尋:

search string1 [string2] [...]

以指定的關鍵字搜尋程式包名及summary資訊;

檢視指定包所依賴的capabilities:

deplist package1 [package2] [...]

檢視yum事務歷史:

history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

wKioL1Z6QvuCNc9SAAAXv-vDbbQ005.png

安裝及升級本地程式包:

* localinstall rpmfile1 [rpmfile2] [...]

(maintained for legacy reasons only - use install)

* localupdate rpmfile1 [rpmfile2] [...]

(maintained for legacy reasons only - use update)

包組管理的相關命令:

* groupinstall group1 [group2] [...]

* groupupdate group1 [group2] [...]

* grouplist [hidden] [groupwildcard] [...]

* groupremove group1 [group2] [...]

* groupinfo group1 [...]

如何使用光碟當作本地yum倉庫:

(1) 掛載光碟至某目錄,例如/media/cdrom

# mount -r -t iso9660 /dev/cdrom /media/cdrom

(2) 建立配置檔案

[CentOS 6]

wKioL1Z6P-iBbeUNAAARTusXYlo314.png

yum的命令列選項:

--nogpgcheck:禁止進行gpg check;

-y: 自動回答為“yes”;

-q:靜默模式;

--disablerepo=repoidglob:臨時禁用此處指定的repo;

--enablerepo=repoidglob:臨時啟用此處指定的repo;

--noplugins:禁用所有外掛;

yum的repo配置檔案中可用的變數:

$releasever: 當前OS的發行版的主版本號;

$arch: 平臺;

$basearch:基礎平臺;

$YUM0-$YUM9

http://mirrors.magedu.com/centos/$releasever/$basearch/os

四、建立yum倉庫:

createrepo [options] <directory>

1、建立本地repo目錄

[[email protected]]#mkdir -p /yum/repo

2、到遠端伺服器下載rpm到本地

wKiom1Z6pFnRN0JiAAAMVKviSZs686.png 3、執行createrepo命令,建立repodata

wKiom1Z6pjXA2cmkAAAOLXmdpJk932.png

4、yum源建立完成

wKiom1Z6pvCT6AD2AAAeCGaK7QY309.png

5、配置本地yum源

wKioL1Z6qHDiWlfRAAAQQexrm7s388.pngwKiom1Z6qN_ymJh9AAAULPwlXzs329.png

轉載於:https://blog.51cto.com/liaodijin/1727533