1. 程式人生 > >yum命令和配置文件

yum命令和配置文件

描述 downgrade 快的 服務器 led not 建倉 本體 網站目錄

關於yum命令和配置文件

一、yum是什麽

yum,是Yellow dog Updater Modified的簡稱,起初是由yellow dog這一發行版的開發者Terra Soft研發,用python寫成,那時還叫做yup(yellow dog updater),後經杜克大學的Linux@Duke開發團隊進行改進,遂有此名。

yum,它是一款基於vpm安裝包的安裝包管理工具。

yum的宗旨是自動化地升級,安裝/移除rpm包,收集rpm包的相關信息,檢查依賴性並自動提示用戶解決。yum的關鍵之處是要有可靠的repository,顧名思義,這是軟件的倉庫,它可以是http或ftp站點, 也可以是本地軟件池,但必須包含rpm的header, header包括了rpm包的各種信息,包括描述,功能,提供的文件,依賴性等.正是收集了這些 header並加以分析,才能自動化地完成余下的任務。

1、yum功能

*yum = Yellow dog Updater, Modified(全名)

*主要功能是更方便的添加/刪除/更新RPM包.

*它能自動解決包的倚賴性問題.

*它能便於管理大量系統的更新問題

2、工作模式:C/S 架構

Server端(yum倉庫):依賴關系庫、原文件、校驗碼文件

Client端:yum客戶端程序、配置文件(連接Server路徑信息)

二、 yum特點

*可以同時配置多個資源庫(Repository)

*簡潔的配置文件(兩部分)(/etc/yum.conf,/etc/yum.repos.d 下的文件),(自建時,可寫一起只有一個配置文件)。

*自動解決增加或刪除rpm包時遇到的倚賴性問題

*使用方便

*保持與RPM數據庫的一致性

yum的倉庫repository。存儲rpm包,以及包的相關的元數據文件(放置於特定目錄下:repodata)

設計缺陷:

某一次安裝過程中半途終止,再次重啟後將無法解決程序間的依賴關系

yum升級版dnf就是為了解決此類問題

三、yum配置文件

repodata、yum.conf文件、目錄yum.repos.d下的.repo文件

yum的主要文件是要有兩類,1、倉庫檔案數據repodata,2、倉庫源的配置文件為一類,可以合為一個文件。

repodata是倉庫檔案數據:

技術分享圖片

技術分享圖片

即使用yum命令安裝時,必須包含兩個因素:

1、所有依賴關系:各個軟件的依賴關系必須知道,為此建立一張索引文件。(其中的依賴信息形成元數據)。

2、所有軟件包:就是軟件倉庫,以及怎樣處理軟件包(尤其對於需要下載的方式)。

即:

1. repodata文件,即依賴關系集合文件。

2. yum 的配置文件

配置文件分為兩部分:main 和repository。即怎樣處理軟件包,以及軟件倉庫位置,(自建時,可寫一起只有一個配置文件)

main 部分定義了全局配置選項,整個yum 配置文件應該只有一個main。常位於/etc/yum.conf 中。

repository 部分定義了每個源/服務器的具體配置,可以有一到多個。常位於/etc/yum.repo.d 目錄下的各文件中。

進一步解釋:

1、倉庫檔案文件:repodata。給自己下載的軟件包,建立歷來關系表,是利用命令createrepo:創建倉庫repodata。

所有repodata都是相對的本地文件。相對於軟件包所在位置的文件。

2、所有軟件包所在的位置,即軟件包倉庫。(由於軟件並不都在本地,所以用配置文件做區分指向。即可再分為兩部分1、如何處理軟件包,即main部分;2、所有軟件包的位置,即repository 部分,即軟件包位置或寫明軟件包位置的.repo配置文件)

其中2.1中分為yum.conf以及yum.repos.d下的各個倉庫配置文件按,yum.repo.d分類

3、/etc/yum.conf:為所有yum倉庫提供 公共 配置(主配置文件),即main部分。

/etc/yum.repos.d/*.repo:為倉庫的指向提供配置(倉庫配置文件),即repository 部分。

所以yum的配置一般有兩種方式:

一種是直接配置/etc目錄下的yum.conf文件,另外一種是在/etc/yum.repos.d目錄下增加.repo文件。

repo文件中的內容可以包含在yum.conf文件中,但是默認會放在/etc/yum.repos.d/這個目錄下,方便編輯,也為了方便區分不同源的文件。

補充:創建關聯關系: createrepo - Create repomd (xml-rpm-metadata) repository

命令:createrepo [options] <directory>

當完成後會生成repodata文件即可

四、什麽是repo文件?

yum 如何知道從哪裏下載包?

起點是 /etc/yum.repos.d/ 目錄,這個目錄常常包含幾個 repo 文件。這是 repo 的默認位置,但是可以在 YUM 配置文件(通常是 /etc/yum.conf)中指定其他位置。

典型的 repo 文件分為三個部分,一個用於一般的包,一個用於調試包,最後一個用於源代碼包。常常可以從不同的位置(即鏡像)獲取發行版的包拷貝。

repo文件是Fedora中yum源(軟件倉庫)的配置文件,通常一個repo文件定義了一個或者多個軟件倉庫的細節內容,例如我們將從哪裏下載需要安裝或者升級的軟件包,repo文件中的設置內容將被yum讀取和應用!

YUM的工作原理並不復雜,每一個 RPM軟件的頭(header)裏面都會紀錄該軟件的依賴關系,那麽如果可以將該頭的內容紀錄下來並且進行分析,可以知道每個軟件在安裝之前需要額外安裝

哪些基礎軟件。也就是說,在服務器上面先以分析工具將所有的RPM檔案進行分析,然後將該分析紀錄下來,只要在進行安裝或升級時先查詢該紀錄的文件,就可 以知道所有相關聯的軟件。所以YUM的基本工作流程如下:

服務器端:在服務器上面存放了所有的RPM軟件包,然後以相關的功能去分析每個RPM文件的依賴性關系,將這些數據記錄成文件存放在服務器的某特定目錄內。

客戶端:如果需要安裝某個軟件時,先下載服務器上面記錄的依賴性關系文件(可通過WWW或FTP方式),通過對服務器端下載的紀錄數據進行分析,然後取得所有相關的軟件,一次全部下載下來進行安裝。

五、配置文件內容

配置文件有兩個:yum.conf文件、目錄yum.repos.d下的.repo文件。

1、全局性配置文件:yum.con文件

yum的一切配置信息都儲存在一個叫yum.conf的配置文件中,通常位於/etc目錄下,這是整個yum系統的重中之重,下面是找的一個配置:

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

[main]

cachedir=/var/cache/yum/$basearch/$releasever #yum緩存的目錄,yum在此存儲下載的rpm包和數據庫,一般是/var/cache/yum。

keepcache=0 #是否保留緩存內容,0:表示安裝後刪除軟件包,1表示安裝後保留軟件包。

debuglevel=2 #Debug 信息輸出等級,範圍(0-10),命令執行過程中輸出信息的詳細程度。默認是2,只記錄安裝和刪除記錄?

logfile=/var/log/yum.log #yum的日誌文件,默認是/var/log/yum.log。用戶可以查詢過去所做的更新。

exactarch=1 #1或0。在更新的時候,是否只允許安裝、更新與你CPU不同體系的RPM包,比如已安裝i386的包不可以用i686的包更新。

obsoletes=1 #1或0。這是一個update的參數,具體請man 8 yum,簡單的說就是允許更新舊版的RPM包

gpgcheck=1 #1或0。是否檢查GPG(GNU Private Guard),一種密鑰方式簽名。也可以在.repo文件中重新定義它

gpgkey=: #就是數位簽章的公鑰檔所在位置!使用預設值即可

plugins=1 #是否允許使用插件,0不允許,1允許。可能會用yum-fastestmirror(根據ping響應,自動選擇最快的源,不是很準)或者yum-security這些插件

installonly_limit=5 #允許保留多少個內核包,同時安裝多少個程序包。

exclude=selinux* #屏蔽不想更新的RPM包,可用通配符,多個RPM包之間使用空格分離。

retries=20 #retries,網絡連接發生錯誤後的重試次數,如果設為0,則會無限重試。

pkgpolicy=newest #包的策略。一共有兩個選項,newest和last,作用是:你設置了多個repository,而同一軟件在不同的repository中同時存在,如果是newest,則yum會安裝最新的那個版本。如果是last,則yum會將服務器id以字母表排序,並選擇最後的那個服務器上的軟件安裝。一般選newest。

distroverpkg=centos-release #指定一個軟件包,yum 會根據這個包判斷你的發行版本,默認是redhat-release,也可以是安裝的任何針對自己發行版的rpm 包。

reposdir=/etc/yum.repos.d #repo文件位置,默認就是/etc/yum.repos.d

bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum ## 追蹤bug路徑

# PUT YOUR REPOS HERE OR IN separate files named file.repo #把你的倉庫源放在這裏,或者在文件名為.repo的文件中。

# in /etc/yum.repos.d #repo文件位置,默認就是/etc/yum.repos.d

repo文件中的內容可以包含在yum.conf文件中(即合二為一),但是默認會放在/etc/yum.repos.d/這個目錄下,方便編輯,也為了方便區分不同源的文件。

2、倉庫源配置文件:.repo文件

目錄yum.repo.d下一般默認有幾個文件:

CentOS-Media 這個是使用光盤掛載後調用的文件

CentOS-Base 這個是聯網後基礎的源,一般都用這個

CentOS-Vault 這個是最近新版本的加入的老版本的yum源配置

CentOS-Debuginfo debug包尤其和內核相關的更新和軟件安裝

(1)repo文件簡要說明:

repo格式的文件名稱可以隨便寫

repo(倉庫配置)文件

每個repo文件裏面聲明多個倉庫,cat 某個文件

技術分享圖片

註意:

  1.當同一個repo文件中同事出現相同的倉庫id,yum會使用最後出現的倉庫;不同repo文件中有相同的倉庫id,yum會使用第一個(按repo文件的名稱排序)repo文件中的倉庫。

  2.倉庫地址與倉庫id的關系:倉庫id不同但倉庫地址相同的話,這兩個倉庫yum都會使用,雖然倉庫的內容 一樣。

  3.倉庫地址的配置:

常用的遠程倉庫:http://mirrors.163.com/centos/ http://mirror.centos.org/

倉庫地址的選擇:目錄下有repodata文件夾,就可以是倉庫地址。例如:http://mirrors.163.com/centos/6/extras/x86_64/ 下圖

技術分享圖片

  4.repo文件詳解

通過rpm -qa|grep redhat-release/centos-release可以查看系統信息

rpm -qa|grep centos-release

技術分享圖片

根據上圖:$base=x86 $arch=64$basearch=x86_64

$releasever,發行版的版本,從[main]部分的distroverpkg獲取,如果沒有,則根據redhat-release包進行判斷。

$arch,cpu體系,如i686,athlon等

$basearch,cpu的基本體系組,如i686和athlon同屬i386,alpha和alphaev6同屬alpha。

其中?$releasever?版本號,現在是centos-6對吧,所以$releasever換成6代替,而?$basearch?是體系結構,就i386吧。centos?會自動解析這些變量。

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

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

$arch: 平臺;

$basearch:基礎平臺,同一系列最基本的架構,如32、64;

$YUM0-$YUM9 可做自定義

添加這些變量是自動獲取我們自己系統的版本,如果你已知道版本,也可也指定獲取指定版本號的軟件。

baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/

mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch

#上面的這一行是指定一個鏡像服務器的地址列表,我們可以試試,將$releasever和$basearch替換成自己對應的版本和架構,例如10和i386,在瀏覽器中打開,我們就能看到一長串鏡可用的鏡像服務器地址列表。

baseurl=http://ftp.twaren.net/Linux/Fedora/linux/releases/29/Everything/x86_64/os/

    http://ftp.twaren.net/Linux/Fedora/linux/updates/29/Everything/x86_64/

    http://ftp.twaren.net/Linux/CentOS/6/updates/x86_64/

    http://mirrors.163.com/centos/6/updates/x86_64/

    http://ftp.twaren.net/Linux/CentOS/6.10/updates/x86_64/

  每個網站目錄都不一樣,所以此方式並不一定通用,除非你熟悉這個網站目錄結構。

技術分享圖片

技術分享圖片

技術分享圖片

(2)repo文件內容詳細說明:

連接repository服務器的配置文件。有了好的repository。所有服務器設置都應該遵循如下格式:

  1. [serverid] #叫[repository_name]更合適,方括號裏面的是軟件源的名稱,將被yum取得並識別 。

  2. name=Some name for this server # 完整的倉庫名稱

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

#serverid:是用於區別各個不同的repository,將被yum取得並識別,必須有一個獨一無二的名稱。 重復了 前面覆蓋後面--還是反過來呢???用enabled 測試是後面覆蓋前面。

#name:是對repository的描述,支持像$releasever $basearch這樣的變量;通常是為了方便閱讀配置文件,一般沒什麽作用,$releasever變量定義了發行版本,通常是5,6等數字,$basearch 變量定義了系統的架構,可以是i386、x86_64、ppc等值,這兩個變量根據當前系統的版本架構不同而有不同的取值,這可以方便yum升級的時候選擇適合當前系統的軟件包。

#baseurl:源的鏡像服務器地址,它的格式是:

  4. baseurl=url://server1/path/to/repository/ # yum倉庫指明的訪問路徑

url://server2/path/to/repository/ #等號兩邊不能有空格,不能頂行寫

url://server3/path/to/repository/

其中url支持的協議有 http:// ftp:// file://三種。baseurl後可以跟多個url,你可以自己改為速度比較快的鏡像站,但baseurl只能有一個,也就是說不能像如下格式:

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

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

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

其中url指向的目錄必須是這個repository header目錄的上一級,它也支持$releasever $basearch這樣的變量。

url之後可以加上多個選項,如gpgcheck、exclude、failovermethod等,比如:

failovermethod=[priority| roundrobin] #有兩個選項

#默認值是哪一個各處不一致,有待進一步驗證。priority表示從列出的baseurl和鏡像列表中順序選擇鏡像服務器地址,roundrobin表示在列出的服務器中隨機選擇, 如果連接失敗則使用下一個,依次循環。

exclude=compiz* *compiz* fusion-icon*

#exclude用來禁止這個軟件倉庫中的某些軟件包的安裝和更新,可以使用通配符,並以空格分隔,可以視情況需要自行添加。 exclude的含義和[main]部分相同,但只對此服務器起作用。

  5. gpgcheck=[1|0] #是否檢查完整性和來源合法性

#gpgcheck,代表是否是否進行gpg校驗,1表示校驗。如果沒有這一項,默認是檢查的。

表示這個repo中下載的rpm將進行gpg的校驗,以確定rpm包的來源是有效和安全的。

  6. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch #定義用於校驗的gpg密鑰。我們先要到各個repository站點找到gpg key,一般都會放在首頁的醒目位置,一些名字諸如 RPM-GPG-KEY.txt之類的純文本文件,把它們下載,然後用rpm --import xxx.txt命令將它們導入,最好把發行版自帶GPG-KEY也導入,rpm --import /usr/share/doc/redhat-release-*/RPM-GPG-KEY 官方軟件升級用的上。

  7. enabled=[1 | 0]

#當某個軟件倉庫被配置成 enabled=0 時,yum 在安裝或升級軟件包時不會將該倉庫做為軟件包提供源。使用這個選項,可以啟用或禁用軟件倉庫。

#通過 yum 的 --enablerepo=[repo_name] 和 --disablerepo=[repo_name] 選項,或者通過 PackageKit 的"添加/刪除軟件"工具,也能夠方便地啟用和禁用指定的軟件倉庫

  8.其他軟件倉庫:

  1. [updates-released]

  2. name=Fedora Core $releasever - $basearch - Released Updates

  3. baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch

  4. http://redhat.linux.ee/pub/fedora/linux/core/updates/$releasever/$basearch

  5. http://fr2.rpmfind.net/linux/fedora/core/updates/$releasever/$basearch

  6. gpgcheck=1

  7. exclude=gaim

  8. failovermethod=priority

其中gpgcheck,exclude的含義和[main]部分相同,但只對此服務器起作用。

3、其他說明:

幾個變量

$releasever,發行版的版本,從[main]部分的distroverpkg獲取,如果沒有,則根據redhat-release包進行判斷。

$arch,cpu體系,如i686,athlon等

$basearch,cpu的基本體系組,如i686和athlon同屬i386,alpha和alphaev6同屬alpha。

六、yum命令

yum的命令形式一般是如下:yum [options] [command] [package ...]

其中[options]是參數,可選:選項包括-h(幫助),-y(當安裝過程提示選擇全部為"yes"),-q(不顯示安裝的過程)等等。

[command]:所要進行的操作,[package ...]:操作的對象。

概括了部分常用的命令包括:

自動搜索最快鏡像插件:yum install yum-fastestmirror

安裝yum圖形窗口插件:yum install yumex

1 安裝

yum install 全部安裝

yum install package1 安裝指定的安裝包package1

yum groupinsall group1 安裝程序組group1

2 更新和升級

yum update 全部更新

yum update package1 更新指定程序包package1

yum check-update 檢查可更新的程序

yum upgrade package1 升級指定程序包package1

yum groupupdate group1 升級程序組group1

yum downgrade package1 [package2] [...] 降級操作

3 查找和顯示

yum info package1 顯示安裝包信息package1

yum list 顯示所有已經安裝和可以安裝的程序包

yum list package1 顯示指定程序包安裝情況package1

yum list updates 列出所有可更新的軟件包

yum list installed 列出所有已安裝的軟件包

yum repolist all 查看容器配置是否生效

yum groupinfo group1 顯示程序組group1信息yum search string 根據關鍵字string查找安裝包

yum search package1 查找的軟件包

4 刪除程序

yum remove package1 刪除程序包package1

yum erase package1 刪除程序包package1

yum groupremove group1 刪除程序組group1

yum deplist package1 查看程序package1依賴情況

5 清除緩存

yum clean packages 清除緩存目錄下的軟件包

yum clean headers 清除緩存目錄下的 headers

yum clean oldheaders 清除緩存目錄下舊的 headers

yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除緩存目錄下的軟件包及舊的headers

5、其他

yum list extras 列出所有已安裝但不在 Yum Repository 內的軟件包

yum info extras 列出所有已安裝但不在 Yum Repository 內的軟件包信息

yum provides 列出軟件包提供哪些文件

yum makecache 制作yum緩存

yum repolist all 查看容器配置是否生效

yum groupinstall Development tools Linux之一次性安裝開發工具

yum deplist package1 [package2] [...] 查看指定包所依賴的功能

yum downgrade package1 [package2] [...] 降級操作

chkconfig yum on 每天定期執行系統更新

service yum start 每天定期執行系統更新

yum upgrade 大規模的版本升級,與yum update不同的是,連舊的淘汰的包也升級

yum localinstall rpmfile1 [rpmfile2] [...] 指定安裝本地的*.rpm,但是會根據yum源現有依賴關系,解決此安裝可能出現的依賴關系

查看yum事務歷史:history

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

特別提醒:軟件包的名字如果有空格,則必須用雙引號選定,因為遇到空格會認為文件名結束了。

6、可以通過 yum grouplist 來查看可能批量安裝哪些列表

因為yum提供了查找、安裝、刪除某一個、一組甚至全部軟件包的命令,而且命令簡潔而又好記。

更多詳細的選項和命令,當然只要在命令提示行下面:man yum。

八、yum源

1、國內yum源

網易(163)yum源是國內最好的yum源之一 ,無論是速度還是軟件版本,都非常的不錯。

yum源設置為163 yum,可以提升軟件包安裝和更新的速度,同時避免一些常見軟件版本無法找到。

網易yum源:http://mirrors.163.com

國內還有其他不錯的 yum 源,比如中科大和搜狐。

中科大的 yum 源,安裝方法查看:https://lug.ustc.edu.cn/wiki/mirrors/help/centos

sohu 的 yum 源安裝方法查看: http://mirrors.sohu.com/help/centos.html

2、選擇最快的源

yum加速,關於yum的加速無非就是選擇一個快速的源,或者是多線程下載(yum本身是單線程):

方法一:安裝yum-fastestmirror這個插件

說明:這個插件的效果並非和描述的那樣好“自動選擇最快的源”。其實yum-fastestmirror使用簡單的ping方式,以延時的大小來判斷源主機是否是最快的源,實際上這方法並不可靠。

方法二:安裝yum-axelget

說明:yum是單線程下載的,而axel是一個多線程下載軟件。yum-axelget在yum運行的時候,自動調用axel來多線程下載,從而達到加速的目的。

安裝:使用rpm命令安裝axel,yum-axelget。

方法三:安裝yum-presto

用 戶只需要下載每一個軟件的增量內容(用drpm打包而成),在本地計算機重新生成一個完整的軟件包再安裝。通常增量更新只有很小的下載量,因而即使很大量 的內容要更新,所耗費的時間必然比傳統方法要少很多。不過presto系統還在測試之中,而且只有一個服務器提供presto更新,速度也不怎麽樣。目前 presto只提供Fedora 9、Fedora 10和Fedora Rawhide三個版本的更新。

九、使用第三方軟件庫

Centos/RHEL默認的yum軟件倉庫非常有限,僅僅限於發行版本那幾張盤裏面的常規包和一些軟件包的更新,利用RpmForge,可以增加非常多的第三方rpm軟件包。RpmForge庫現在已經擁有超過10000種的CentOS的軟件包,被CentOS社區認為是最安全也是最穩定的一個第三方軟件庫。

1、安裝yum-priorities插件

這個插件是用來設置yum在調用軟件源時的順序的。因為官方提供的軟件源,都是比較穩定和被推薦使用的。因此,官方源的順序要高於第三方源的順序。如何保證這個順序,就需要安裝yum-priorities這插件了。

# yum -y install yum-priorities

2、安裝完yum-priorities插件後需要設置/etc/yum.repos.d/ 目錄下的.repo相關文件(如CentOS-Base.repo),在這些文件中插入順序指令:priority=N (N為1到99的正整數,數值越小越優先)

一般配置[base], [addons], [updates], [extras] 的priority=1,[CentOSplus], [contrib] 的priority=2,其他第三的軟件源為:priority=N (推薦N>10)

CentOS-Base.repo 為例:

[base]

name=CentOS-$releasever - Base

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

priority=1

補充:

1.mirrorlist?和baseurl?的區別

mirrorlist:就是一個表,是一個保存列表的網站(即網站上就是幾個連接地址),centos?將從中選擇一個鏈接來下載更新。

那些變量centos?會自動解析,不用人工,當然用確定的版本號代替也可以。?下面這個是update的具體就是如下:?

http://mirrorlist.centos.org/?release=6&arch=i386&repo=updates

baseurl:就是實際上的某個包庫?

http://mirror.centos.org/centos/6/os/i386/?

//這個路徑下要有repodata/這個目錄才可以把這個鏈接改到repos裏。

2.yum更新

yum來升級軟件,yum的操作大都須有超級用戶的權限,當然可以用sudo。

yum update時yum會從服務器的header目錄下載rpm的header,放在本地的緩存中,這可能會花費一定的時間。

header下載完畢,yum會判斷是否有可更新的軟件包,如果有,它會詢問你的意見,是否更新,還是說 y吧,把系統始終up to date總是不錯的,這時yum開始下載軟件包並使用調用rpm安裝,這可能要一定時間,取決於要更新軟件的數目和網絡狀況,萬一網絡斷了,也沒關系,再進行一次就可以了。升級完畢,以後每天只要使用yum check-update檢查一下有無跟新,如果有,就用yum update進行更新,時刻保持系統為最新,堵住一切發現的漏洞。

3、查看容器配置是否生效:yum repolist all

4、什麽是元數據

技術分享圖片

5、yum常用問題解決

1. 網速慢

可以通過增加yum的超時時間,這樣就不會總是因為超時而退出。

#vi /etc/yum.conf

#加上這麽一句

timeout=120

2. yum Existing lock錯誤的解決辦法

如果系統啟動的時候, yum出現Existing lock /var/run/yum.pid: another copy is running as pid 3380. Aborting.可以用下面的辦法解決:

方法一

etc/init.d/yum-updatesd stop

方法二

#rm -f /var/run/yum.pid

主要原因就是yum在自動更新,只要關掉它就可以了

十、手動搭建本地yum倉庫

上面學習那麽多了,現在自己創建一個yum倉庫應該沒問題了吧。

1. 使用鏡像文件搭建本地倉庫

如果使用系統關盤搭建yum源,無需 createrepo去創建倉庫元數據,因為在打包成iso文件前,就已經建好了

(1)掛載光盤至某目錄,例如/mnt。將路徑指向光盤掛載的目錄就可以了。baseurl=file:///mnt

# mount -o loop CentOS-7-x86_64-DVD-1511.iso /mnt

# vim /etc/yum.repos.d/test.repo

baseurl=file:///mnt

# yum clean all

# yum repolist

2. 使用下載的rpm包搭建倉庫:

(1)安裝工具:createrepo,用來創建repodata依賴關系索引,即生成倉庫元數據。

通過rpm安裝createrepo,然後使用命令createrepo -v /path/to/rpmDir 創建索引文件。當完成後會生成repodata即可。

SQLite 是一個軟件庫,實現了自給自足的、無服務器的、零配置的、事務性的 SQL 數據庫引擎。

(2) 創建倉庫。即用自己下載的rpm包搭建本地倉庫,放在某目錄下。

(3) 創建一個yum倉庫的配置文件.repo。

(4) yum clean all #清除yum緩存信息

參考或引用文件:

centos yum遠程rpm倉庫更改與.repo配置:https://blog.csdn.net/kingxuexi/article/details/54987549

Linux yum配置文件詳解:https://www.cnblogs.com/haoxiaoyu/p/3971363.html

關於搭建本地yum源(解釋了repodata元數據):https://www.jianshu.com/p/5cb5af152e75

關於配置yum文件詳解:http://blog.51cto.com/xuding/1728429

制作yum源的兩種方法:http://www.cnblogs.com/shuaixf/archive/2011/11/30/2268496.html

YUM配置安裝使用詳解:http://blog.51cto.com/xuding/1728429

createrepo生成倉庫元數據,搭建本地yum源:https://www.jianshu.com/p/5cb5af152e75

yum命令和配置文件