yum的使用及配置
yum的使用及配置
文章来源:http://www.ilanni.com/?p=9032
最近由于服务器需求,需要在公司内网搭建内网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的使用及配置的更多相关文章
- CentOS下通过yum安装svn及配置
CentOS下通过yum安装svn及配置 1.环境centos5.5 2.安装svnyum -y install subversion 3.配置 建立版本库目录mkdir /www/svndata s ...
- Redhat YUM U盘源配置
Redhat YUM U盘源配置 1)在U盘创建目录 #mkdir /yum/Server 并从光盘Server.Packages 目录的所有文件拷贝到/yum/Server 2)安装 creater ...
- 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 ...
- 关于yum网络版仓库(本地yum仓库的安装配置,如果没网了,做一个局域网内的yum仓库)
2017-11-13 22:49:48 1:两种方式: a.每一台机器都配一个本地文件系统上的yum仓库 file:///packege/path/ b.在局域网内部配置一台节点(server-b ...
- [转载]centos下yum安装samba及配置
centos下yum安装samba及配置 在我们使用 Windows 作为客户机的时候,通常有文件.打印共享的需求.作为Windows 网络功能之一,通常可以在 Windows 客户机之间通过Wind ...
- Centos7使用yum安装RabbitMq以及配置
RabbitMQ是基于AMQP的一款消息管理系统,是基于erlang语言开发的! 消息队列,即MQ,Message Queue:消息队列是典型的:生产者.消费者模型.生产者不断向消息队列中生产消息,消 ...
- mysql 5.7.29 在centos7.6下超简单的本地yum源安装与配置
目录 生成yum源元数据 从网易镜像站下载MySQL 5.7 的 bundle包 创建文件 mysql-local.repo 执行yum install命令 生成yum源元数据 createrepo ...
- 烂泥:yum的使用及配置
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近由于服务器需求,需要在公司内网搭建内网yum源. 搭建内网yum源需要分以下几个步骤,如下: 1. yum是什么 2. repo文件是什么 3. r ...
- linux下通过yum安装svn及配置
1.环境centos6.4 2.安装svnyum -y install subversion 3.配置 建立版本库目录mkdir /www/svndata svnserve -d -r /www/sv ...
随机推荐
- Code(组合数学)
Code Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 8766 Accepted: 4168 Description Tran ...
- Help Me with the Game 分类: POJ 2015-06-29 16:34 17人阅读 评论(0) 收藏
Help Me with the Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3706 Accepted: ...
- 程序的链接和装入及Linux下动态链接的实现
http://www.ibm.com/developerworks/cn/linux/l-dynlink/ 程序的链接和装入及Linux下动态链接的实现 程序的链接和装入存在着多种方法,而如今最为流行 ...
- JavaScript获取元素尺寸和大小操作总结
一.获取元素的行内样式 复制代码 代码如下: var obj = document.getElementById("test"); alert(obj.height + " ...
- Codeforces Round #366 (Div. 2) B
Description Peter Parker wants to play a game with Dr. Octopus. The game is about cycles. Cycle is a ...
- JS中innerHTML 和innerText和value的区别
(1)innerHTML 和innerText和value的区别: innerHTML innerText是对非表单元素进行操作的. value是对表单元素进行操作的. (2)innerHTML 和i ...
- zookeeper系列之十一—zookeeper会话超时
1.会话概述 在Zookeeper中,客户端和服务端建立连接后,会话随之建立,生成一个全局唯一的会话ID(Session ID).服务器和客户端之间维持的是一个长连接,在SEESSION_TIMEOU ...
- 【mark】linux 终端命令行下的快捷键(自己已验证所有)
说明: \c + a:表示ctrl+a \a + a:表示alt+a 命令列表: 1 移动: \c + a:将光标移到行首 \c + e:将光标移到行尾 \c + f:将光标向后(右)移动一个字符 \ ...
- Map Columns From Different Tables and Create Insert and Update Statements in Oracle Forms
This is one of my most needed tool to create Insert and Update statements using select or alias from ...
- 关于MySQL数据库如何按时间查询
这里做了几个测试 select * from simingpai where TIMESTAMP(createTime) >= '2015-9-6'; select * from simingp ...