在我们的日常工作中经常会遇到系统自带的yum源下载安装包速度慢,或因为网络原因导致无法使用系统自带的yum源的问题。本篇文章就是跟大家分享下如何在Centos下创建或配置yum源信息。
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum的配置文件都默认放置在 /etc/yum.repos.d/
目录下,以.repo为文件名后缀,比如Centos.repo,一般都会有一下配置:
[Centos-yum]
name=Centos-yum
baseurl=http://www.centos.com/yum/centos/$releasever/$basearch/
enabled=1
gpgcheck=0
解释:
[…] :代表这个库的名字,必须是唯一的,不可以重复;
name:是这个库的说明,没有太大的实际意义,只是一个字段说明;
baseurl: 说明采取什么方式传输,具体路径在哪里,可以使用的方式有,file://,ftp://,http://等;
enabled:说明启用这个更新库,1表示启动,0表示不启用;
gpgcheck:1表示使用gpg文件来检查软件包的签名,0表示不检查;
gpgkey: 表示gpg文件所存放的位置,此处也可以有http方式的位置。
使用一下命令可以查看yum的手册
man yum.conf
当创建了新的yum repo后需要创建索引,执行一下命令
yum clean all
yum makecache
想要查看,已经配置的repo,执行一下命令
yum repolist
Yum的命令格式一般是如下:
yum [options] [command] [package ...]
其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。[command]为所要进行的操作,[package …]是操作的对象。
yum install yum-fastestmirror
yum install yumex
yum grouplist
yum install
yum install package1
yum groupinsall group1
yum update
yum update package1
yum check-update
yum upgrade package1
yum groupupdate group1
yum info package1
yum list
yum list package1
yum groupinfo group1
yum remove | erase package1
yum groupremove group1
yum deplist package1
yum clean packages
yum clean headers
yum clean oldheaders
yum clean
,yum clean all
(= yum clean packages; yum clean oldheaders) `在第2节中已经描述了,Yum repo配置文件的位置和配置方法,在这里就不再赘述了,主要是以下三种配置方式http、本地目录、远程目录
可以使用网上现成的repo服务,如阿里(http://mirrors.aliyun.com/repo/[linux-release])、163等提供的repo服务器,也可以自己搭建web服务器根据自己的需求准备rpm包通过web服务器代理Yum repo。
# 安装apache服务
yum install httpd
#开启apache服务
service httpd start
#配置apache服务开机自启
systemctl enable httpd.service
ln -s /opt/software/cloudera/cm6.3.0/ /var/www/html/cm
vi /etc/yum.repos.d/cm.repo
# 编辑yum源配置
[cm]
name=cm
baseurl=http://132.46.112.97/cm
enabled=1
gpgcheck=0
如果是别人的web服务器,将baseurl修改成对应的url,如果别人有提供好的repo配置如阿里的repo,可将repo文件直接放到/etc/yum.repos.d/
目录下
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum clean all
yum makecache
yum search cm
下载iso文件
从CentOS的官网下载CentOS的完整版iso文件,并上传到Linux文件系统中,例如/opt/tools/。
创建挂载目录
为iso文件的挂载创建目录。
mkdir /mnt/vcdrom
mount -o loop -t iso9660 /opt/tools/CentOS-6.7-x86_64-bin-DVD1.iso /mnt/vcdrom
cd /etc/yum.repos.d/
mv Centos-Base.repo Centos-Base.repo.back
vim /etc/yum.repos.d/Centos-Media.repo
name=CentOS-$releasever - Media
baseurl=file:///mnt/vcdrom/#将baseurl修改为DVD的挂载目录
gpgcheck=1
enabled=1#开启本地更新模式
yum clean all
yum makecache
使用nfs创建远程目录通过把远程目录挂载到本地,然后在通过与4.2中的方法一样进行配置repo
如果有现成的rpm包,我们也可以创建自己的yum repo
#创建test yum的仓库目录
mkdir -p /usr/local/test.repo
#将准备好的rpm包拷贝到test.repo目录里
mv ./*.rpm /usr/local/test.repo/
#创建仓库
cd /usr/local/test.repo/
createrepo ./
创建完成后会生成/usr/local/test.repo/repodata
,这个目录就是我们创建的test repo的元数据目录。
2. 挂载yum源
Yum挂载 repo(根据本文第4章中的任意方法挂载,本章使用http为例)
首先通过创建软连接的方式,将我们创建好的test yum repo 挂载到apache服务器上:
ln -s /usr/local/test .repo/ /var/www/html/test
配置repo文件
# 编辑mysql yum源配置 vim /etc/yum.repos.d/test .repo
[test ]
name=test
baseurl=http://192.168.1.200/test
enabled=1
gpgcheck=0
重新建立Yum缓存
yum clean all
yum makecache
rpm -qa yum-priorities
yum install yum-priorities -y
cat /etc/yum/pluginconf.d/priorities.conf
#配置以下内容
[main]
enabled = 1 # 0禁用 1启用
priority=N # N值为1-99,数字越大,优先级越低
★推荐的设置为:
[base], [addons], [updates], [extras] … priority=1
[centosplus],[contrib] … priority=2
Third Party Repos such as rpmforge … priority=N (where N is > 10 and based on your preference)
例:
echo "priority=1" >> CentOS7.repo
例:编辑 /etc/yum.repos.d/目录下的*.repo 文件来设置优先级
[base]
name=CentOS-$releasever – Base
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=0
priority=1
yum install test*