本文由秀依林枫提供友情赞助,首发于烂泥行天下

最近由于服务器需求,需要在公司内网搭建内网yum源。

搭建内网yum源需要分以下几个步骤,如下:

1、 yum是什么

2、 repo文件是什么

3、 repo文件内容详解

4、 yum服务器端配置

5、 yum客户端配置

6、 保存yum安装的软件包

7、 更新rpm包

一、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仓库。

有关yum命令的使用帮助信息,我们可以通过man yum命令进行查看,如下:

man yum

二、repo文件是什么

通过第一章,我们知道repo文件是CentOS、RedHat和Fedora操作系统中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件源。

例如:我们将从哪里下载需要安装或者升级的软件包,repo文件中都进行了相关的配置,而这些配置将会被yum读取和应用。

三、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

这是指定镜像服务器的地址列表,通常是开启的。我们可以尝试,将$releasever和$basearch替换成自己对应的版本和架构,例如6.6和x86_64,在浏览器中打开,我们就能看到一长串镜可用的镜像服务器地址列表。如下:

选择自己访问速度较快的镜像服务器地址复制并粘贴到repo文件中的baseurl选项中,我们就能获得较快的更新速度了。

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

这行第一个字符是#表示该行已经被注释,将不会被读取,这一行的意思是指定一个baseurl(源的镜像服务器地址)。

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/

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

其中前两种是我们使用最多的。有关这个我们可以参考centos官网给出的参考,如下:

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进行访问。

此次实验:yum服务器192.168.1.247 centos,客户端192.168.1.248 centos。

四、yum服务器端配置

要达到以上要求,我们首先要搭建yum服务器,并且在该服务器配置web服务器。

在此web服务器我们使用的是apache,当然使用nginx也是可以的。

4.1 配置web服务器

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

yum -y install httpd

当然你也可以使用源码方式安装apache,有关apache的源码安装可以参考《烂泥:源码安装apache》。

apache安装完毕后,我们来启动apache。如下:

/etc/init.d/httpd start

wget http://192.168.1.247

通过上图,我们可以很明显的看到apache服务器已经正常启动。

4.2 安装createrepo

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

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

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

yum -y install createrepo

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

4.3 光盘镜像

把本地下载的光盘镜像复制到yum服务器上,我们在此是通过xftp工具复制的,如下:

创建软件源所在的位置,如下:

mkdir -p /var/www/html/yum

ll /var/www/html/yum/

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

mkdir /iso

mount -o loop CentOS-6.6-x86_64-minimal.iso /iso/

ll /iso/

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

cp -rv /iso/* /var/www/html/yum/

现在我们访问下该目录,看看能不能正常显示,如下:

wget http://192.168.1.247/yum

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

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

为了光盘镜像实验的效果,我们在此以光盘镜像软件包中curl软件为例。如下:

ll |grep curl

4.4 特殊软件镜像

在前面我们还要求一个特殊的yum源用来存放特殊软件的,在此我们以lrzsz这个软件为例。

该yum源存放的位置/var/www/html/ilanni/目录下,然后把lrzsz这个软件的rpm包放在/var/www/html/ilanni/目录下,如下:

mkdir -p /var/www/html/ilanni

cp /var/cache/yum/x86_64/6/base/packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm /var/www/html/ilanni/

ll /var/www/html/ilanni/

现在我们来创建该特殊yum源的yum数据库和信息索引文件,切换到/var/www/html/ilanni/目录下,执行createrepo命令,如下:

createrepo ./

tree repodata/

现在我们访问下该目录,看看能不能正常显示,如下:

wget http://192.168.1.247/ilanni

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

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

五、yum客户端配置

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

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

rename .repo .repo.bak *.repo

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

[centos6]

name=centos6

baseurl=http://192.168.1.247/yum/

enabled=1

gpgcheck=0

[ilanni]

name=ilanni

baseurl=http://192.168.1.247/ilanni/

enabled=1

gpgcheck=0

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

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

安装curl软件,如下:

yum -y install curl

安装lrzsz软件,如下:

yum -y install lrzsz

通过以上测试,我们可以很明显的看到客户端已经从yum服务器下载我们所需要的软件包。

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

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

以上就是我们在内网搭建yum源的步骤。

六、保存yum安装的软件包

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

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

vi /etc/yum.conf

cachedir表示rpm包的缓存位置。

七、更新rpm包

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

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

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

如下:

cp /var/cache/yum/x86_64/6/base/packages/lftp-4.0.9-1.el6_5.1.x86_64.rpm /var/www/html/ilanni/

ll /var/www/html/ilanni/

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

createrepo /var/www/html/ilanni/

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

yum clean all

yum list |grep lftp

yum -y install lftp

通过上图,可以很明显的看出客户端已经安装lftp软件了。

烂泥:yum的使用及配置的更多相关文章

  1. yum的使用及配置

    yum的使用及配置 文章来源:http://www.ilanni.com/?p=9032 最近由于服务器需求,需要在公司内网搭建内网yum源. 搭建内网yum源需要分以下几个步骤,如下: 1. yum ...

  2. CentOS下通过yum安装svn及配置

    CentOS下通过yum安装svn及配置 1.环境centos5.5 2.安装svnyum -y install subversion 3.配置 建立版本库目录mkdir /www/svndata s ...

  3. Redhat YUM U盘源配置

    Redhat YUM U盘源配置 1)在U盘创建目录 #mkdir /yum/Server 并从光盘Server.Packages 目录的所有文件拷贝到/yum/Server 2)安装 creater ...

  4. Centos6.5 安装MYSQL 5.5 -5.6.-5.7 一键yum快速安装 ,初始配置

    Centos6.5 安装MYSQL 5.5 ---5.6---5.7 一键yum快速安装 ,初始配置 第一步:安装mysql-5.5---- 5.6 ---- 5.7的yum源 [root@sv03 ...

  5. 关于yum网络版仓库(本地yum仓库的安装配置,如果没网了,做一个局域网内的yum仓库)

    2017-11-13 22:49:48 1:两种方式:   a.每一台机器都配一个本地文件系统上的yum仓库 file:///packege/path/ b.在局域网内部配置一台节点(server-b ...

  6. [转载]centos下yum安装samba及配置

    centos下yum安装samba及配置 在我们使用 Windows 作为客户机的时候,通常有文件.打印共享的需求.作为Windows 网络功能之一,通常可以在 Windows 客户机之间通过Wind ...

  7. Centos7使用yum安装RabbitMq以及配置

    RabbitMQ是基于AMQP的一款消息管理系统,是基于erlang语言开发的! 消息队列,即MQ,Message Queue:消息队列是典型的:生产者.消费者模型.生产者不断向消息队列中生产消息,消 ...

  8. mysql 5.7.29 在centos7.6下超简单的本地yum源安装与配置

    目录 生成yum源元数据 从网易镜像站下载MySQL 5.7 的 bundle包 创建文件 mysql-local.repo 执行yum install命令 生成yum源元数据 createrepo ...

  9. 烂泥:CentOS安装及配置TFTP服务器

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 为什么要学习有关TFTP服务器的安装及配置呢?主要是为了后续学习有关linux系统的无人值守安装做准备. TFTP简单文件传输协议,使用UDP的69端口 ...

随机推荐

  1. 项目总结笔记系列 Social Hub KT Session1

    项目后台访问地址: URL:http://socialhub-itg-app.itcs.hp.com/data_feed_service/main.jsp 或者URL:http://c0048925. ...

  2. 为什么正常安装并成功运行了Genymotion虚拟但是运行的时候启动的却是自带的模拟器?

    最近因为这个问题困惑了好久,最终找到了解决思路: 点击genymotion——setting——ADB——Use sustom Android tools,找到电脑中SDK文件位置就可了! 希望自己坚 ...

  3. java注释规范

    前言:      现在java的出产地sun公司并没有定义一个java注释规范,注释规范目前是每个公司自己有自己的一套规范,主要是为了团队之间的协作. 1.基本规则      1.注释应该使代码更加清 ...

  4. Java final自变量

    Java 1.1 允许我们将自变量设成final 属性,方法是在自变量列表中对它们进行适当的声明.这意味着在一个方法的内部,我们不能改变自变量句柄指向的东西.如下所示: /** * Created b ...

  5. Python实现装饰模式的一段代码

    # 实现装饰模式的一段代码 import functools def log(func): @functools.wraps(func) def wrapper(*args,**kw): print( ...

  6. Node.JS文件系统解析

    1.Node.js 文件系统 var fs = require("fs") 2.异步和同步 读取文件内容的函数有异步的 fs.readFile() 和同步的 fs.readFile ...

  7. ubuntu安装VNC、Xfce桌面

    1.首先安装xfce桌面环境 sudo apt-get -y install xfce4 2.安装vncserver sudo apt-get -y install vnc4server 3.设置访问 ...

  8. ZeroClipboard – 轻松实现复制文本到剪贴板功能

    ZeroClipboard 库提供了一种把文本复制到剪贴板的简单方法.Zero 表示该库是不可见的,用户界面则完全取决于你. 该库完全兼容 Flash Player 10.0.0 或以上版本,这就要求 ...

  9. visual studio 查找/替换对话框

    工具--选项--环境--查找和替换 如下设置: 则会在查找.替换到最后时会弹出提示,比如“查找到达了搜索的起点”,如下图: 原文:http://keleyi.com/a/bjac/27iswh0p.h ...

  10. MediaWiki使用指南

    MediaWiki使用指南 MediaWiki是著名的开源wiki引擎,全球最大的wiki项目维基百科(百科词条协作系统)是使用MediaWiki的成功范例,MediaWiki的最大作用在于对知识的归 ...