yum 源配置

  1. 在 /etc/yum.repos.d 下建立一个 .repo 文件

  2. vim  yum.repo 

    [cd]

    name=cd

          baseurl=file:///run/media/root/RHEL-7.0\ Server.x86_64/

          #baseurl=http://192.168.1.1/centos7/

          gpgcheck=0

 

客户端配置
方法一:直接编辑/etc/yum.conf文件
vi /etc/yum.conf
[Server]
name=Red Hat
baseurl=http://192.168.129.23/Server/
gpgcheck=1
gpgkey=http://192.168.129.23/Server/RPM-GPG-KEY-redhat-release

方法二:
vi /etc/yum.repos.d/Server.repo
[Server]
name=Red Hat
baseurl=http://192.168.129.23/Server/
gpgcheck=1
gpgkey=http://192.168.129.23/Server/RPM-GPG-KEY-redhat-release

方法三:本地文件发布的话
[Server]
name=Yum Source
baseurl=file:///rhel5/Server/
enabled=1
gpgcheck=1
gpgkey=file:///rhel5/Server/RPM-GPG-KEY-redhat-release


客户端测试
yum clean all  /*清除旧的缓存数据*/
yum install httpd 

 

 

1、yum是什么

yum(全称为Yellowdog Updater Modified)是一个在CentOS、RedHat和Fedora操作系统中使用的Shell前端软件包管理器。

yum主要管理基于rpm的软件包,它可以自动升级、安装、删除rpm软件包,同时它还能够自动查找并解决rpm包之间的依赖关系,并且无需管理员逐个、手工的去安装每一个rpm包,使管理员在维护Linux主机时更加轻松自如。

yum可以从一个或多个repo文件中配置的repo仓库,通过http或ftp协议从repo仓库获得必要的信息,然后下载相关的软件包。这样,本地用户通过建立不同的repo仓库,在有Internet连接时就能方便进行系统的升级和维护工作。

repo仓库可以通过createrepo或yum-arch命令进行创建,也能够用别人已经创建好的repo仓库作为yum源,在此我们主要探讨通过createrepo命令创建的repo仓库。

2、repo文件是什么

一个标准的centos的repo文件内容如下:

[base]

name=CentOS-$releasever – Base

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

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

enabled=1

gpgcheck=1

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

各个选项说明如下:

[base]

  该选项是定义软件源的名称,该名称是可以自定义,同时在该服务器上所有repo文件中是唯一的。注意:方括号里面不能有空格。

name=CentOS-$releasever – Base

  该选项是定义软件仓库的名称,$releasever变量定义了发行版本,通常是5,6,7等数字。

mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

  这是指定镜像服务器的地址列表,通常是开启的。

  baseurl通常有以下四种格式,如下:

baseurl= http://mirrors.aliyun.com/centos/6.6/os/x86_64/

  使用http协议镜像服务器地址

baseurl= ftp://ftp.sjtu.edu.cn/centos/6.6/os/x86_64/

  使用ftp协议镜像服务器地址

baseurl= rsync://mirror.zol.co.zw/centos/

  使用rsync镜像服务器地址

baseurl= file:///ilanni/yum/

  使用本机的镜像服务器地址

enabled=1

  该选项表示在这个repo文件中启用这个软件源,默认该选项可以不写。但是如果enabled的值为0,则表示禁用这个软件源。

  注意:一个repo文件中可以定义多个软件源。

gpgcheck=1

  该选项表示对通过该软件源下载的rpm包进行gpg校验,如果gpgcheck的值为0表示不进行gpg校验。

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

  该选项定义用于校验的gpg密钥文件。

通过以上这个repo文件的说明,相信各位会觉得,其实centos的repo文件真是很简单。有了一个初步的认识了之后,我们就可以进行下面的实验了。

我们现在要求在内网搭建一个yum源。该yum源需要配置两个源:一个是centos的光盘镜像源,一个是特殊rpm软件的镜像源,并且该yum源是通过http进行访问。

3、yum服务器端配置

3.1 配置web服务器

在yum服务器上,我们现在直接使用yum安装apache。

 

3.2 安装createrepo

reaterepo是什么?createrepo是linux下创建仓库的软件包。create是创建的意思,repo是repository的缩写,是仓库的意思。

只有安装createrepo这个软件,才能在yum服务器创建软件仓库。

createrepo的安装很简单,我们现在通过yum进行安装,如下:

yum -y install createrepo

createrepo安装完毕后,我们就可以创建repo仓库了。

3.3 光盘镜像

把本地下载的光盘镜像复制到yum服务器上,如下:

创建光盘挂载的目录,如下:

复制到光盘下的所有文件到/var/www/html/repl/目录下,如下:

[root@android-55aba78065642f3d tmp]# cp -r  /tmp/iso/  /var/www/html/repl

 

注意:在此我们没有创建yum数据库和信息索引文件,是因为光盘已经有yum数据库和信息索引文件,我们不需要再通过createrepo命令在进行。其实yum的数据库和信息索引文件,都在repodata文件夹下。

 

 

3.4 特殊软件镜像

在我们的网站目录下新建一个repl目录,并上传一个cron的.rpm包放到目录下。。

 

createrepo ./ 这一步非常重要,生成一个repodata文件

 

 

现在我们到服务器上查看一下刚刚上传的cron

 

通过上图我们可以很明显的看到,目前该目录是可以被正常访问的。

以上的所有配置都是在yum服务器上进行的,现在我们来切换到yum客户端上进行操作。

 

 

3.5  yum客户端配置

yum客户端的操作就简单了很多,我们只需要修改客户端的repo文件即可。

进入/etc/yum.repos.d/目录,备份原有的repo文件,如下:

rename .repo .repo.bak *.repo

然后在该目录下,创建一个新的repo文件corn.repo,内容如下:

-----------------------------------------------------------------------------------------

[centos7]

name=centos7

baseurl=http://服务器ip地址/yum/

enabled=1

gpgcheck=0

[ilanni]

name=ilanni

baseurl=http://192.168.139.135/repl/        #服务器网站目录

enabled=1

gpgcheck=0

-----------------------------------------------------------------------------------------

注意:该文件名可以变,但是后缀一定是.repo。

repo文件修改完毕后,我们来进行相关测试。

直接yum安装cron就可以。。。

注意:如果客户端yum安装软件包时,提示找不到该软件。强烈建议,在客户端上执行yum clean all和yum list命令。

其中yum clean all表示清除yum源缓存,yum list表示列出所有的软件包。

 

 

3.6 保存yum安装的软件包

在我们使用yum进行安装软件时,安装完毕后会自动把软件包删除。

为了保存yum安装的软件包,我们需要修改yum的配置文件yum.conf,把keepcache修改为1即可。如下:

vi /etc/yum.conf

cachedir表示rpm包的缓存位置。

3.7 更新rpm包

在我们搭建完毕内网yum源后,会经常遇到这两种情况。一是软件版本的更新,二是新增软件。

无论遇到以上那种情况,我们都需要先删除原来的yum服务器的yum数据库和信息索引文件,然后通过createrepo命令重新创建yum数据库和信息索引文件。

在此我们以新增软件为例,该软件为corn。

如下:

--------------------------------------------------------------------------------------------------------------------------------------

cp /var/cache/yum/x86_64/7/base/yum-cron-3.2.29-81.el6.centos.noarch.rpm  /var/www/html/repl

rm -fr /var/www/html/repl/repodata/

createrepo /var/www/html/repl/

--------------------------------------------------------------------------------------------------------------------------------------

现在我们再来切换到客户端上进行操作,如下:

--------------------------------------------------------------------------------------------------------------------------------------

yum clean all

yum list |grep corn

yum -y install corn

--------------------------------------------------------------------------------------------------------------------------------------

 

 

4.更换yum源

1. 原来的yum源做备份

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

2. 下载新的yum源

•我用的vagrant centos 7 的box,默认没有装wget命令,yum源里也没有wget包,下载下来替换

vim /etc/yum.repos.d/CentOS-Base.repo

阿里yum源

tips : 具体的linux版本及系统版本请自行选择,当然,还有其他的源,选择你自己喜欢的就可以了。

 下载下来复制里面的内容

进入 INSERT 模式 : 刚开始学linux,直接在command 模式下粘贴,总是错,新手注意下这个

或者wget直接下载

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3. 更新列表,安装软件

--------------------------------------------------------------------------------------------------------------------------------------

yum clean all

yum makecache

--------------------------------------------------------------------------------------------------------------------------------------

 检查 yum是否 启用:

yum list

 

yum 报错 Error performing checksum 解决方法

在自己创建yum源的时候,当执行yum 命令的时候会报 Error performing checksum 的错误
在rhel6以上的版本中repomd.xml 文件使用sha256作为hash算法, 而在rhel中默认使用的是sha做为hash算法

解决方法为使用新的sha1 来重建repo:


#createrepo -s sha1 /var/www/html/packages


rhel5 要生成依赖关系

生成依赖性关系 
 #createrepo -g  /var/ftp/pub/Server/repodata/comps-rhel5-server-core. xml   /var/ftp/pub/Server/
 
 

[base]

name=rhel5.4

baseurl=http://172.30.3.6/rhel5.4/Server/     ###5.4的repodata 再rhel5.4/Server/  

enabled=1
gpgcheck=0

 

 

posted @ 2015-03-27 13:20  jjp816  阅读(496)  评论(0编辑  收藏  举报