1. yum 소개
Yum은 Yellow dog Updater의 약자인 Modified는 RPM 소프트웨어 패키지의 설치성을 향상시키기 위해 듀크대학교에서 개발한 소프트웨어 패키지 관리자입니다. 원래는 Yellow Dog 배포판의 개발자인 Terra Soft가 개발했으며, 당시에는 yup(Yellow Dog Updater)라고도 불렸습니다. 나중에 Duke의 Linux@Duke 개발팀에 의해 개선되었습니다. 대학, 따라서 이름입니다. yum의 목적은 자동으로 업그레이드하고, rpm 패키지를 설치/제거하고, rpm 패키지에 대한 정보를 수집하고, 종속성을 확인하고, 자동으로 사용자에게 문제 해결을 요청하는 것입니다. yum의 핵심은 이름에서 알 수 있듯이 소프트웨어 웨어하우스이며 http 또는 ftp 사이트일 수도 있고 로컬 소프트웨어 풀일 수도 있지만 헤더에는 다양한 rpm이 포함되어 있어야 합니다. 패키지 설명, 기능, 제공된 파일, 종속성 등을 포함한 정보입니다. 이러한 헤더를 수집하고 분석함으로써 나머지 작업을 자동화할 수 있습니다.
yum의 아이디어는 중앙 저장소를 사용하여 애플리케이션의 일부 또는 배포의 상호 관계를 관리하고 계산된 소프트웨어 종속성을 기반으로 관련 업그레이드, 설치, 삭제 등을 수행하는 것입니다. Linux 비용 절감 종속성 문제는 항상 사용자에게 골치 아픈 문제였습니다. 이 점에서 yum과 apt는 동일합니다. apt는 원래 데비안의 deb 유형 소프트웨어 관리에서 사용되었지만 이제는 RedHat의 rpm에서도 사용할 수 있습니다.
yum의 주요 기능은 RPM 패키지를 보다 편리하게 추가/삭제/업데이트하고, 패키지 종속성 문제를 자동으로 해결하며, 수많은 시스템 업데이트 문제를 쉽게 관리하는 것입니다.
Yum은 간결한 구성 파일(/etc/yum.conf)을 사용하여 여러 저장소를 동시에 구성할 수 있으며, rpm 패키지를 추가하거나 삭제할 때 발생하는 종속성 문제를 자동으로 해결하고 RPM과 동일한 관계를 유지할 수 있습니다. 데이터베이스 일관성.
2. yum 설치
CentOS에는 기본적으로 yum이 설치되어 있어 별도로 설치할 필요는 없습니다. 실험용으로 먼저 yum을 제거한 후 다시 설치하세요.
1. 시스템에 기본적으로 설치된 yum 보기
# rpm -qa|grep yum
2. 🎜>
# 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.centos3. yum 재설치여기서 wget을 통해 인터넷에서 관련 패키지를 다운로드하거나 설치용 시스템 설치 CD를 마운트할 수 있습니다. . 설치할 시스템을 마운트하도록 선택합니다. # 마운트 /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 -vyum 기본 설치 패키지에는 다음이 포함됩니다: yum //RPM 설치 프로그램/업데이트yum-fastestmirror //미러 목록에서 가장 빠른 저장소를 선택하는 Yum 플러그인yum-metadata-parser //A yum용 빠른 메타데이터 파서필요에 따라 다른 설치 패키지를 설치할 수 있습니다. 3. yum 구성 yum 구성 파일은 메인과 저장소의 두 부분으로 나누어집니다주요 부분은 전역 구성을 정의합니다. options, 전체 yum 구성 파일에는 main이 하나만 있어야 합니다. 일반적으로 /etc/yum.conf에 있습니다. 저장소 섹션은 하나 이상이 될 수 있는 각 소스/서버의 특정 구성을 정의합니다. /etc/yum.repo.d 디렉토리의 다양한 파일에 있는 경우가 많습니다. yum.conf 파일은 일반적으로 /etc 디렉터리에 위치하며 일반적으로 주요 부분의 구성 옵션만 포함합니다. # 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위 옵션 외에도 다음과 같은 몇 가지 옵션을 추가할 수 있습니다. exclude=selinux * // 업그레이드 목록에서 특정 소프트웨어를 제외하려면 와일드카드를 사용할 수 있습니다. 목록의 각 항목은 공백으로 구분되어야 합니다. 이는 미화 패키지와 중국어 패치를 설치한 친구에게 특히 유용합니다.
gpgcheck=1 // rpm 패키지의 소스가 유효하고 안전한지 확인하기 위해 gpg(GNU Private Guard) 검증을 수행할지 여부를 각각 나타내는 1과 0의 두 가지 옵션이 있습니다. 이 옵션은 [main] 섹션에 설정된 경우 모든 저장소에 유효합니다. 기본값은 0입니다.
# 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-5baseurl의 두 번째 경로를 /mnt/cdrom(CD 마운트 지점)으로 수정합니다
将enabled=0改为1
3、禁用默认的yum 网络源
将yum 网络源配置文件改名为CentOS-Base.repo.bak,否则会先在网络源中寻找适合的包,改名之后直接从本地源读取。
4、执行yum 命令
# yum install postgresql
关于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 命令
其他国内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
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
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