Linux下程式包管理之YUM

來源:互聯網
上載者:User

Linux下程式包管理之YUM

實驗環境:

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源

配置EPEL YUM源

Redhat 本地yum源配置

yum的設定檔說明

RedHat 6.1下安裝yum(圖文)

YUM 安裝及清理

CentOS 6.4上搭建yum本地源

一.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命令來安裝管理程式包了。

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.