yum

yum:

Yellowdog Updater Modified

Yellowdog是一款發行版linux,使用rpm作爲默認的程序包管理工具


URL: yum定位軟件倉庫及倉庫中程序包文件的主要標識方式;

schema://[username@]hostname[:port][/PATH/TO/DOCUMENT][parameters][method]

web站點:

http/https

http://www.163.com


yum是C/S架構的模型,其中服務器也稱爲軟件倉庫(yum repository),客戶端需要書寫URL以指定服務器及程序包路徑;


在服務器上,軟件倉庫其實就是一個目錄,在目錄中包含了程序包文件及元數據文件;

元數據文件統一的存放於repodata的目錄中;也可以說,repodata目錄所在的路徑即爲軟件倉庫的路徑;


createrepo命令:

createrepo - Create repomd (xml-rpm-metadata) repository

createrepo [options] <directory>

<directory>:存放程序包的目錄


客戶機的使用:

yum程序包

yum的主配置文件:/etc/yum.conf

ini風格的配置信息模式:分段式配置內容

[repositoryid]

statements


注意:所有的配置語句,其生效的範圍是從一個[]開始,到下一個[]結束

例如:

[repo1]

statements 


[repo2]

statements


注意:

1.repositoryid必須全局唯一

2.repositoryid不能包括除了.和_之外的任何特殊字符,可以包含字母和數字,字母嚴格區分大小寫機制;


/etc/yum.conf文件的內容

[main]

cachedir=/var/cache/yum/$basearch/$releasever

keepcache=0

debuglevel=2

logfile=/var/log/yum.log

exactarch=1

obsoletes=1

gpgcheck=1

plugins=1

installonly_limit=5

bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum

distroverpkg=centos-release


想要更加全面的信息,可以使用man 5 yum.conf獲取;


# PUT YOUR REPOS HERE OR IN separate files named file.repo in /etc/yum.repos.d

用戶自定義的repository的指向信息,可以寫在主配置文件中;也可以將用戶自定義的repository的指向信息,以.repo爲文件後綴名,並且存放於/etc/yum.repos.d目錄中;

主配置文件:

/etc/yum.conf

只提供yum倉庫指向信息的公共配置內容;

注意:該文件一般情況下,不進行任何修改;

片段配置文件:

/etc/yum.repos.d/*.repo

每一個以.repo爲後綴名的文件,即爲一個倉庫文件;這樣的每個文件中可以配置指向一個或多個yum倉庫;


yum程序在查找yum倉庫的時候,根據這些配置文件來查找的;每一次可能會找到多個yum倉庫,從所有可以使用的倉庫中查找最新版本的程序包並緩存到本地進行安裝,升級等操作;


同類的多個倉庫被稱爲鏡像;只要有一個可用即可;

不同類的倉庫也可以同時存在多個,yum可以同時使用這些倉庫;


.repo文件該如何定義:

[repositoryid]

name=Full name of repository

baseurl=schema1://hostname/PATH/TO/REPODATA

schema2://hostname/PATH/TO/REPODATA

schema3://hostname/PATH/TO/REPODATA

schema4://hostname/PATH/TO/REPODATA

schema:

http[s]、ftp、nfs:網絡服務器指向

file:本地服務器指向

#mirrorlist=mirror_url

enabled={0|1},0表示禁用此倉庫指向,1表示啓用;如果沒有enabled語句,默認爲啓用狀態;

gpgcheck={0|1},0表示不進行程序包認證,1表示認證;如果爲1,需要指定認證所需要的公鑰文件,需要使用gpgkey語句;

gpgkey=schema://hostname/PATH/TO/PUBLIC_KEY_FILE

例子:gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever


failovermethod={roundrobin|priority}

故障倒換方法:

roundrobin:隨機查找,默認的方法;

priority:按照順序依次選擇

enablegroups={1|0}

cost=num,默認所有倉庫的開銷值都是1000;


一般的repo指向內容:

[repoid]

name=

baseurl=

#mirrorlist=

enbaled=1

gpgcheck=0

#gpgkey=


yum命令的用法:

yum - Yellowdog Updater Modified

yum [options] [command] [package ...]

[options]:

-y, --assumeyes:對於yum執行過程中與用戶交互的問題,全部以yes回答

-q, --quiet:安靜模式,在某一次yum執行過程中,沒有任何信息輸出到stdout;

--enablerepo=repoidglob

--disablerepo=repoidglob

在某一次yum執行過程中明確的規定啓用或禁用某個repository指向;在使用了這樣的選項之後,倉庫指向文件中的enabled語句的作用將失效;

--noplugins:

在某一次yum執行過程中,明確指出不使用任何插件;

--nogpgcheck:

在某一次yum執行過程中,明確指出不驗證程序包完整性,在倉庫指向文件中的gpgcheck=1語句會失效;


[command]

command is one of:

        * install package1 [package2] [...]

        安裝程序包

        注意:

        1.如果只是給出程序包名稱,yum搜索所有倉庫,並找到最新版本緩存安裝;

        2.如果給出程序包的名稱及版本,則查找安裝指定版本的程序包;

        3.如果給出的程序包是完整的程序包名,則只是查找某一個程序包;

        4.程序包名稱可以使用globbing,(* ? [] [^])


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

        * update-to [package1] [package2] [...]

        * check-update

        * upgrade [package1] [package2] [...]

        * upgrade-to [package1] [package2] [...]

        * downgrade package1 [package2] [...]

        程序包升級或降級:

        程序包不同版本之間的更迭;


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

        卸載程序包:


        * list [...]

        yum list LIST OPTIONS

        LIST OPTIONS:

        all: 顯示所有的程序包,包括已經安裝的和尚未安裝但可用的;

        注意:

        anaconda:CentOS系統的安裝器,在安裝操作系統的時候一併安裝的程序包;

        installed:顯示所有已經安裝的程序包;

        available:顯示所有尚未安裝但可以安裝的程序包;

        updates:顯示所有可以升級更新的程序包;


        * info [...]

        yum info LIST OPTIONS

        LIST OPTIONS:

        all: 顯示所有的程序包,包括已經安裝的和尚未安裝但可用的;

        注意:

        anaconda:CentOS系統的安裝器,在安裝操作系統的時候一併安裝的程序包;

        installed:顯示所有已經安裝的程序包;

        available:顯示所有尚未安裝但可以安裝的程序包;

        updates:顯示所有可以升級更新的程序包;


        name[globbing]


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

        查看指定的特性是由哪個程序包提供的;


        * clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

        清理本地緩存信息


        * makecache

        構建緩存


        * groupinstall group1 [group2] [...]

        * groupupdate group1 [group2] [...]

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

        * groupremove group1 [group2] [...]

        * groupinfo group1 [...]

        程序包組的管理命令:



        * search string1 [string2] [...]

        根據關鍵字進行匹配,默認情況下,搜索程序包名稱及彙總信息;

        模糊搜索


        * shell [filename]

        給yum提供一個交互式命令的操作界面


        * localinstall rpmfile1 [rpmfile2] [...]

           (maintained for legacy reasons only - use install)

        * localupdate rpmfile1 [rpmfile2] [...]

           (maintained for legacy reasons only - use update)

          實現本地程序包安裝,即:不依賴於軟件倉庫,直接對rpm格式包文件進行操作;

          這兩個命令已經被停用,使用install和update取代;


        * reinstall package1 [package2] [...]

        重新安裝


        * deplist package1 [package2] [...]

        顯示每個程序包所有的依賴關係;


        * repolist [all|enabled|disabled]

        列表顯示yum倉庫的元數據信息

        在沒有給出後面的參數的時候,默認爲enabled;


        * version [ all | installed | available | group-* | nogroups* | grouplist | groupinfo ]


        * history [info|list|packages-list|packages-info|summary|addon-

       info|redo|undo|rollback|new|sync|stats]

        查看yum事務的歷史;

        安裝、升級、卸載等操作的時候,yum會開啓事務;


        * load-transaction [txfile]

        重新啓動已經停止的事務;


        * check


        * help [command]


CentOS7中的yum命令:

程序包組的管理命令:

* groups [...]

groups {install | remove | list | info | update}


別名:groupinstall groupremove grouplist groupinfo groupudpate


* autoremove [package1] [...]

自動卸載:


* repoinfo [all|enabled|disabled]


常用的第三方yum倉庫,Fedora EPEL,

到官方站點或鏡像站點中,下載epel-release程序包,並且使用rpm命令安裝至對應的Linux發行版本,在/etc/yum.repos.d目錄中,會多出一個epel.repo的文件;更新repolist即可使用;


要求Linux虛擬機能夠連接互聯網;


yum的repo配置文件中的變量:

$releasever:當前操作系統的發行版本的主版本號;

如:CentOS 7.2-1511,其發行版本的主版本號是7

CentOS 6.7,其發行版本的主版本號是6


$basearch:當前計算機所使用的基礎平臺架構類型;

如:Intel兼容機

i686

x86_64

apple計算機設備

ppc

ppc64


$arch:平臺架構類型

$YUM0~$YUM9:yum內置的由用戶自定義的10個變量;


爲什麼要用這些變量?

服務器(repository, 倉庫)必須能夠提供所有的常有發行版本及平臺相關的程序包;但是服務器無法預測任何一個客戶端具體的版本使用情況;


所以讓用戶自行選擇:


.repo

baseurl=https://mirrors.aliyun.com/epel/7/x86_64


創建本地yum倉庫:

createrepo /PATH/TO/PACKAGES


yum-config-manager --add-repo=URL


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