歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下程序包管理之YUM

Linux下程序包管理之YUM

日期:2017/2/28 14:25:28   编辑:Linux教程

實驗環境:

CentOS release 6.6 (Final) 一台

IP地址:172.16.249.230

附帶:CentOS release 6.6光盤鏡像文件

CentOS-6.6-x86_64-bin-DVD1.iso

CentOS-6.6-x86_64-bin-DVD2.iso

YUM(Yellow dog Updater, Modified) 由Duke University團隊,修改Yellow Dog Linux的Yellow Dog Updater開發而成,是一個基於 RPM 包管理的字符前端軟件包管理器。能夠從指定的服務器自動下載 RPM 包並且安裝,可以處理依賴性關系,並且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。被Yellow Dog Linux本身,以及Fedora、Red Hat Enterprise Linux、CentOS、SUSE采用。

RedHat 6.2 Linux修改yum源免費使用CentOS源 http://www.linuxidc.com/Linux/2013-07/87383.htm

配置EPEL YUM源 http://www.linuxidc.com/Linux/2012-10/71850.htm

Redhat 本地yum源配置 http://www.linuxidc.com/Linux/2012-11/75127.htm

yum的配置文件說明 http://www.linuxidc.com/Linux/2013-04/83298.htm

RedHat 6.1下安裝yum(圖文) http://www.linuxidc.com/Linux/2013-06/86535.htm

YUM 安裝及清理 http://www.linuxidc.com/Linux/2013-07/87163.htm

CentOS 6.4上搭建yum本地源 http://www.linuxidc.com/Linux/2014-07/104533.htm

一.YUM倉庫和客戶端簡介

YUM repository:yum倉庫

存儲了眾多rpm包,以及包的相關元數據的文件服務器

文件服務器:

HTTP:http://ip/centos/$releasever/os/$basearch/

FTP:ftp://ip/centos/$releasever/os/$basearch/

NFS:網絡文件系統,nfs://ip/centos/$releasever/os/$basearch/

FILE:本地,file:///centos/$releasever/os/$basearch/

YUM Client :客戶端

配置文件:指向倉庫的位置以及各種配置信息,每個yum客戶端可以有多個倉庫。

緩存文件:/var/cache/yum/

二.YUM的配置文件詳解

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

(一).關於yum.conf文件詳解

#cat /etc/yum.conf

[main]

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

#yum下載的RPM包的緩存目錄

keepcache=0

#緩存是否保存,1保存,0不保存。

debuglevel=2

#調試級別(0-10),默認為2(具體調試級別的應用,我也不了解)。

logfile=/var/log/yum.log

#yum的日志文件所在的位置

exactarch=1

#在更新的時候,是否允許更新不同版本的RPM包,比如是否在i386上更新i686的RPM包。

obsoletes=1

#這是一個update的參數,具體請參閱yum(8),簡單的說就是相當於upgrade,允許更新陳舊的RPM包。

gpgcheck=1

#是否檢查GPG(GNU Private Guard),一種密鑰方式簽名。

plugins=1

#是否允許使用插件,默認是0不允許,但是我們一般會用yum-fastestmirror這個插件。

installonly_limit=5

#允許保留多少個內核包。

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

distroverpkg=centos-release

# This is the default, if you make this bigger yum won't see if the metadata

# is newer on the remote and so you'll "gain" the bandwidth of not having to

# download the new metadata and "pay" for it by yum not having correct

# information.

# It is esp. important, to have correct metadata, for distributions like

# Fedora which don't keep old packages around. If you don't like this checking

# interupting your command line usage, it's much better to have something

# manually check the metadata once an hour (yum-updatesd will do this).

# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo

# in /etc/yum.repos.d

(二).關於/etc/yum.repos.d/*.repo文件詳解

什麼是repo文件?

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

我們以一份系統自帶的repo文件做為實例來探討(#號後面是我加的注釋):

[base]

name=CentOS-$releasever - Base

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

gpgcheck=1

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


[base]

#方括號裡面的是軟件源的名稱,將被yum取得並識別

name=CentOS-$releasever - Base

#這裡也定義了軟件 倉庫的名稱,通常是為了方便閱讀配置文件,一般沒什麼作用,

$releasever變量定義了發行版本,通常是5,6,7等數字,

這個變量根據當前系統的版本架構不同而有不同的取值,

這可以方便yum升級的時候選擇 適合當前系統的軟件包,以下同……

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

#上面的一行baseurl第一個字符是'#'表示該行已經被注釋,將不會被讀取,

$basearch變量定義了系統的架構,可以是i386、x86_64、ppc等值

這一行的意思是指定一個baseurl(源的鏡像服務器地址)

enabled=1

#這個選項表示這個repo中定義的源是啟用的,0為禁用

gpgcheck=1 #

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

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

#定義用於校驗的gpg密鑰

三.構建YUM倉庫

簡要步驟說明

(一).確認文件共享方式

(二).把rpm包放置於能夠被各yum客戶端訪問到位置

(三).創建yum倉庫的元數據

createrepo命令

#yum -y install createrepo


為yum倉庫創建元數據文件

#createrepo 軟件包文件目錄

實驗案例:

在本文中我創建一個本地光盤yum來構建一個本地YUM倉庫。

(一)、掛載本地光盤

#mkdir /mnt/cdrom


#新建掛載目錄

#mount -t iso9660 /dev/cdrom /mnt/cdrom


#掛載光盤到/mnt/cdrom 目錄

#ls /mnt/cdrom


#查看/mnt/cdrom 目錄內容

[root@LinuxHost yum.repos.d]# mkdir /mnt/cdrom

[root@LinuxHost yum.repos.d]# mount -t iso9660 /dev/cdrom /mnt/cdrom

mount: block device /dev/sr0 is write-protected, mounting read-only

[root@LinuxHost yum.repos.d]# ls /mnt/cdrom

CentOS_BuildTag isolinux RPM-GPG-KEY-CentOS-Debug-6

EFI Packages RPM-GPG-KEY-CentOS-Security-6

EULA RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Testing-6

GPL repodata TRANS.TBL

images RPM-GPG-KEY-CentOS-6

(二)、配置本地YUM源

#cd /etc/yum.repos.d/


#進入/etc/yum.repos.d 目錄

#ls


#查看目錄內容


#mv CentOS-Base.repo CentOS-Base.repo.bak

#mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak


#重命名上面2個文件


#vi CentOS-Media.repo


#對CentOS-Media.repo 進行編輯


(三)、修改CentOS-Media.repo內容

[c6-media]

name=CentOS-$releaserver - Media

#自定義Yum源名稱

baseurl=file:///mnt/cdrom/

#本地光盤掛載路徑

gpgcheck=1

#檢查GPG-KEY

enabled=1

#啟用Yum源

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-6

#GPG-KEY路徑

[root@LinuxHost yum.repos.d]# cat CentOS-Media.repo

[C6-Media]

name=CentOS-$releaserver-Media

baseurl=file:///mnt/cdrom

gpcheck=1

enabled=1

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-6


檢查列出可用yum倉庫元數據

[root@LinuxHost yum.repos.d]# yum repolist

Loaded plugins: fastestmirror, refresh-packagekit, security

Loading mirror speeds from cached hostfile

repo id repo name status

C6-Media CentOS-$releaserver-Media 6,518

repolist: 6,518

至此,本地YUM源配置完成,我們就可以使用yum命令來安裝管理程序包了。

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-11/109897p2.htm

Copyright © Linux教程網 All Rights Reserved