Heim >php教程 >PHP开发 >Konfiguration und Verwendung der CentOS-Yum-Quelle

Konfiguration und Verwendung der CentOS-Yum-Quelle

高洛峰
高洛峰Original
2016-12-13 10:50:491238Durchsuche

1. Einführung in yum

Yum, die Abkürzung für Yellow Dog Updater, Modified, ist ein Softwarepaketmanager, der von der Duke University entwickelt wurde, um die Installierbarkeit von RPM-Softwarepaketen zu verbessern. Es wurde ursprünglich von Terra Soft, dem Entwickler der Yellow Dog-Distribution, entwickelt und in Python geschrieben. Damals hieß es auch Yup (Yellow Dog Updater). Später wurde es vom Linux@Duke-Entwicklungsteam verbessert Universität, daher der Name. Der Zweck von yum besteht darin, RPM-Pakete automatisch zu aktualisieren, zu installieren/entfernen, Informationen über RPM-Pakete zu sammeln, Abhängigkeiten zu überprüfen und Benutzer automatisch aufzufordern, diese zu lösen. Der Schlüssel zu yum ist ein zuverlässiges Repository. Es kann sich um eine HTTP- oder FTP-Site oder einen lokalen Software-Pool handeln, der jedoch den RPM-Header enthalten muss Informationen zu Paketen, einschließlich Beschreibung, Funktionalität, bereitgestellten Dateien, Abhängigkeiten usw. Durch das Sammeln und Analysieren dieser Header können die verbleibenden Aufgaben automatisiert werden.

Die Idee von yum besteht darin, ein zentrales Repository zu verwenden, um die Zusammenhänge eines Teils oder sogar einer Verteilung von Anwendungen zu verwalten und entsprechende Upgrades, Installationen, Löschungen usw. basierend auf den berechneten Softwareabhängigkeiten durchzuführen. Reduzierung der Linux-Kosten Das Problem der Abhängigkeiten bereitet den Benutzern seit jeher Kopfzerbrechen. In dieser Hinsicht sind Yum und Apt dasselbe. apt wurde ursprünglich von der Deb-Typ-Softwareverwaltung von Debian verwendet, kann aber jetzt auch von rpm unter RedHat verwendet werden.

Die Hauptfunktion von yum besteht darin, RPM-Pakete bequemer hinzuzufügen/löschen/aktualisieren, Paketabhängigkeitsprobleme automatisch zu lösen und die Verwaltung einer großen Anzahl von Systemaktualisierungsproblemen zu erleichtern.

Yum kann mit einer übersichtlichen Konfigurationsdatei (/etc/yum.conf) mehrere Repositorys gleichzeitig konfigurieren, Abhängigkeitsprobleme beim Hinzufügen oder Löschen von RPM-Paketen automatisch lösen und die gleiche Beziehung zum RPM aufrechterhalten Datenbankkonsistenz.

2. yum-Installation

CentOS hat yum standardmäßig installiert und muss nicht separat installiert werden. Deinstallieren Sie yum zunächst und installieren Sie es dann erneut.

1. Sehen Sie sich das standardmäßig auf dem System installierte yum an

# rpm -qa|grep yum

CentOS yum 源的配置与使用

2. Deinstallieren Sie yum

# rpm -e yum-fastestmirror-1.1.16-14.el5.centos.1 yum-metadata-parser-1.1.2-3.el5.centos yum-3.2.22-33.el5.centos

CentOS yum 源的配置与使用

3. Installieren Sie yum neu

Hier können Sie die relevanten Pakete über wget zur Installation aus dem Internet herunterladen oder die Systeminstallations-CD zur Installation mounten . Hier wählen Sie, ob Sie das System für die Installation bereitstellen möchten.

# mount /dev/cdrom /mnt/cdrom/

# rpm -ivh yum-3.2.22-33.el5.centos.noarch.rpm yum-fastestmirror-1.1.16- 14.el5.centos.1.noarch.rpm yum-metadata-parser-1.1.2-3.el5.centos.i386.rpm

# yum -v

Grundlegende Installation von yum Zu den Paketen gehören:

yum //RPM installer/updater

yum-fastestmirror //Yum-Plugin, das das schnellste Repository aus einer Spiegelliste auswählt

yum-metadata-parser //A schneller Metadaten-Parser für yum

Andere Installationspakete können entsprechend Ihren eigenen Anforderungen installiert werden.

CentOS yum 源的配置与使用

3. Yum-Konfiguration

Die Yum-Konfigurationsdatei ist in zwei Teile unterteilt: Haupt- und Repository

Der Hauptteil definiert die globale Konfiguration Optionen sollte die gesamte Yum-Konfigurationsdatei nur eine Hauptdatei haben. Befindet sich normalerweise in /etc/yum.conf. Der Abschnitt

Repository definiert die spezifische Konfiguration jeder Quelle/jedes Servers, bei dem es sich um eine oder mehrere handeln kann. Befindet sich häufig in verschiedenen Dateien im Verzeichnis /etc/yum.repo.d.

Die Datei yum.conf befindet sich im Allgemeinen im Verzeichnis /etc und enthält im Allgemeinen nur die Konfigurationsoptionen des Hauptteils.

# cat /etc/yum.conf

[main]
cachedir=/var/cache/yum
  //yum 缓存的目录,yum 在此存储下载的rpm 包和数据库,默认设置为/var/cache/yum
keepcache=0
  //安装完成后是否保留软件包,0为不保留(默认为0),1为保留
debuglevel=2
  //Debug 信息输出等级,范围为0-10,缺省为2
logfile=/var/log/yum.log
  //yum 日志文件位置。用户可以到/var/log/yum.log 文件去查询过去所做的更新。
pkgpolicy=newest
  //包的策略。一共有两个选项,newest 和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository 中同时存在,yum 应该安装哪一个,如果是newest,则yum 会安装最新的那个版本。如果是last,则yum 会将服务器id 以字母表排序,并选择最后的那个服务器上的软件安装。一般都是选newest。
distroverpkg=redhat-release
  //指定一个软件包,yum 会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm 包。
tolerant=1
  //有1和0两个选项,表示yum 是否容忍命令行发生与软件包有关的错误,比如你要安装1,2,3三个包,而其中3此前已经安装了,如果你设为1,则yum 不会出现错误信息。默认是0。
exactarch=1
  //有1和0两个选项,设置为1,则yum 只会安装和系统架构匹配的软件包,例如,yum 不会将i686的软件包安装在适合i386的系统中。默认为1。
retries=6
  //网络连接发生错误后的重试次数,如果设为0,则会无限重试。默认值为6.
obsoletes=1
  //这是一个update 的参数,具体请参阅yum(8),简单的说就是相当于upgrade,允许更新陈旧的RPM包。
plugins=1
  //是否启用插件,默认1为允许,0表示不允许。我们一般会用yum-fastestmirror这个插件。
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum

# Note: yum-RHN-plugin doesn't honor this.
metadata_expire=1h

installonly_limit = 5

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

Zusätzlich zu den oben genannten können einige Optionen hinzugefügt werden, wie zum Beispiel:

exclude=selinux * // Um ​​bestimmte Software von der Upgrade-Liste auszuschließen, können Sie jedes Element in der Liste durch Leerzeichen trennen. Dies ist besonders nützlich für Freunde, die Verschönerungspakete und chinesische Patches installiert haben.
gpgcheck=1 //Es gibt zwei Optionen, 1 und 0, die angeben, ob eine GPG-Überprüfung (GNU Private Guard) durchgeführt werden soll, um festzustellen, ob die Quelle des RPM-Pakets gültig und sicher ist. Diese Option ist für jedes Repository gültig, wenn sie im Abschnitt [main] festgelegt wird. Der Standardwert ist 0.

4. Konfigurieren Sie die lokale Yum-Quelle

1. Mounten Sie die Systeminstallations-CD

# mount /dev/cdrom /mnt/cdrom/

2 . Konfigurieren Sie die lokale Yum-Quelle

# cd /etc/yum.repos.d/

# ls

Sie sehen vier Repo-Dateien

CentOS yum 源的配置与使用

CentOS-Base.repo ist die Konfigurationsdatei der Yum-Netzwerkquelle

CentOS-Media.repo ist die Konfigurationsdatei der Yum-Lokalquelle

Ändern Sie CentOS-Media. repo

# cat CentOS-Media.repo

# CentOS-Media.repo
#
# This repo is used to mount the default locations for a CDROM / DVD on
#  CentOS-5.  You can use this repo and yum to install items directly off the
#  DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
#  yum --enablerepo=c5-media [command]
#  
# or for ONLY the media repo, do this:
#
#  yum --disablerepo=\* --enablerepo=c5-media [command]
 
[c5-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
        file:///mnt/cdrom/
        file:///media/cdrecorder/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

Ändern Sie den zweiten Pfad in baseurl in /mnt/cdrom (das ist der CD-Mount-Punkt)

将enabled=0改为1

3、禁用默认的yum 网络源

将yum 网络源配置文件改名为CentOS-Base.repo.bak,否则会先在网络源中寻找适合的包,改名之后直接从本地源读取。

4、执行yum 命令

# yum install postgresql

CentOS yum 源的配置与使用

CentOS yum 源的配置与使用

关于repo 文件的格式

所有repository 服务器设置都应该遵循如下格式:

[serverid]
name=Some name for this server
baseurl=url://path/to/repository/

serverid 是用于区别各个不同的repository,必须有一个独一无二的名称;

name 是对repository 的描述,支持像$releasever $basearch这样的变量;

baseurl 是服务器设置中最重要的部分,只有设置正确,才能从上面获取软件。它的格式是:

baseurl=url://server1/path/to/repository/
     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 等,比如:

[updates-released]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch
     http://redhat.linux.ee/pub/fedora/linux/core/updates/$releasever/$basearch
     http://fr2.rpmfind.net/linux/fedora/core/updates/$releasever/$basearch
gpgcheck=1
exclude=gaim
failovermethod=priority

其中gpgcheck,exclude 的含义和[main] 部分相同,但只对此服务器起作用,failovermethode 有两个选项roundrobin 和priority,意思分别是有多个url可供选择时,yum 选择的次序,roundrobin 是随机选择,如果连接失败则使用下一个,依次循环,priority 则根据url 的次序从第一个开始。如果不指明,默认是roundrobin。

五、配置国内yum源

系统默认的yum 源速度往往不尽人意,为了达到快速安装的目的,在这里修改yum源为国内源。

上海交通大学yum源

a. 修改/etc/yum.repos.d/CentOS-Base.repo为:

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[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

#released updates 
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
baseurl=http://ftp.sjtu.edu.cn/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

关于变量

$releasever:代表发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。

$arch:cpu体系,如i686,athlon等

$basearch:cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha。

b. 导入GPG KEY

yum 可以使用gpg 对包进行校验,确保下载包的完整性,所以我们先要到各个repository 站点找到gpg key,一般都会放在首页的醒目位置,一些名字诸如RPM-GPG-KEY-CentOS-5 之类的纯文本文件,把它们下载下来,然后用rpm --import RPM-GPG-KEY-CentOS-5 命令将key 导入。

c. 执行yum 命令

CentOS yum 源的配置与使用

其他国内yum源列表如下:

1. 企业贡献:
搜狐开源镜像站:http://mirrors.sohu.com/
网易开源镜像站:http://mirrors.163.com/

2. 大学教学:
北京理工大学:
http://mirror.bit.edu.cn (IPv4 only)
http://mirror.bit6.edu.cn (IPv6 only)
北京交通大学:
http://mirror.bjtu.edu.cn (IPv4 only)
http://mirror6.bjtu.edu.cn (IPv6 only)
http://debian.bjtu.edu.cn (IPv4+IPv6)
兰州大学:http://mirror.lzu.edu.cn/
厦门大学:http://mirrors.xmu.edu.cn/
清华大学:
http://mirrors.tuna.tsinghua.edu.cn/ (IPv4+IPv6)
http://mirrors.6.tuna.tsinghua.edu.cn/ (IPv6 only)
http://mirrors.4.tuna.tsinghua.edu.cn/ (IPv4 only)
天津大学:http://mirror.tju.edu.cn/
中国科学技术大学:
http://mirrors.ustc.edu.cn/ (IPv4+IPv6)
http://mirrors4.ustc.edu.cn/
http://mirrors6.ustc.edu.cn/
东北大学:
http://mirror.neu.edu.cn/ (IPv4 only)
http://mirror.neu6.edu.cn/ (IPv6 only)
电子科技大学:http://ubuntu.uestc.edu.cn/

六、使用第三方软件库

Centos/RHEL默认的yum软件仓库非常有限,仅仅限于发行版本那几张盘里面的常规包和一些软件包的更新,利用RpmForge,可以增加非常多的第三方rpm软件包。RpmForge库现在已经拥有超过10000种的CentOS的软件包,被CentOS社区认为是最安全也是最稳定的一个第三方软件库。

1、安装yum-priorities插件

这个插件是用来设置yum在调用软件源时的顺序的。因为官方提供的软件源,都是比较稳定和被推荐使用的。因此,官方源的顺序要高于第三方源的顺序。如何保证这个顺序,就需要安装yum-priorities这插件了。

# yum -y install yum-priorities

CentOS yum 源的配置与使用

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

3、下载与安装相应rpmforge的rpm文件包

# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

4、安装DAG的PGP Key

# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

5、验证rpmforge的rpm文件包

# rpm -K rpmforge-release-0.5.2-2.el5.rf.*.rpm

6、安装rpmforge的rpm文件包

# rpm -i rpmforge-release-0.5.2-2.el5.rf.i386.rpm

CentOS yum 源的配置与使用

7、设置/etc/yum.repos.d/rpmforge.repo文件中源的级别

[root@TS-DEV yum.repos.d]# cat rpmforge.repo 

### Name: RPMforge RPM Repository for RHEL 5 - dag
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el5/en/$basearch/rpmforge
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
priority=12

8、测试安装

# yum install htop

CentOS yum 源的配置与使用

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:leckerer BefehlNächster Artikel:leckerer Befehl