构建本地Yum源服务器

构建本地Yum源服务器

 

YUM概述

YUM是YUP工具的改进版,YUM主要用于自动升级,安装/移除RPM软件包,它能够自动查找并解决RPM包之间的依赖关系,而无需管理员逐个,手工的去安装每一个RPM包,使管理员知啊维护大量的Linux主机时更加轻松自如。

要成功使用YUM工具更新系统和软件,需要有一个包含各种RPM软件包的repository(软件仓库),提供软件仓库的服务器习惯称为“源”服务器。软件仓库可以基于HTTP,FTP协议或者本地文件目录提供服务,并收集目录中所有的RPM包的header(头部)信息组成repodata(仓库数据),以供YUM客户端工具查询分析。

构建本地YUM源服务器

通过从DVD光盘,YUM客户端缓存目录(/var/cache/yum/)以及Internet下载等途径获取需要的RPM包,可以组建基于本地文件系统的RPM软件包仓库。

 

主要步骤推荐:

本例中使用CentOS6.2安装光盘中的软件包组成软件仓库,并结合VSFTPD服务,提供基于FTP方式的简易YUM源。

 

一.安装vsftpd,createrepo软件包

(createrepo)工具主要用于收集目录中RPM包文件的头信息,以创建repodata软件仓库数据(经gzip压缩的xml文件)。

挂载CentOS6.2光盘到/mnt目录中

[root@11gR2-t2 ~]# mount /dev/cdrom /mnt/

切换到光盘中的“Packages/”目录中

[root@11gR2-t2 ~]# cd /mnt/Packages/

安装vsftpd和createrepo软件包

[root@11gR2-t2 Packages]# rpm -ivh vsftpd-2.2.2-6.el6_0.1.x86_64.rpm

[root@11gR2-t2 Packages]# rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm

[root@11gR2-t2 Packages]# rpm -ivh python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm

[root@11gR2-t2 Packages]# rpm -ivh createrepo-0.9.8-4.el6.noarch.rpm

安装后进行查看验证

[root@11gR2-t2 Packages]# rpm -q  vsftpd createrepo

vsftpd-2.2.2-6.el6_0.1.x86_64

createrepo-0.9.8-4.el6.noarch

二.准备软件库目录

新建目录

[root@11gR2-t2 Packages]# mkdir -p/var/ftp/pub/CentOS-6.2

将光盘中的内容拷贝到新建的rhel5目录中

[root@11gR2-t2 Packages]# cp -prf /mnt/*/var/ftp/pub/CentOS-6.2

切换到rhel5目录中进行查看主要的目录结构

[root@11gR2-t2 CentOS-6.2]# ll | grep ^d

drwxr-xr-x. 3 root root   4096 Dec 11 07:38 EFI

drwxr-xr-x. 3 root root   4096 Dec 11 07:38 images

drwxr-xr-x. 2 root root   4096 Dec 11 07:36 isolinux

drwx------. 2 root root 110592 Mar 22 18:20 Packages

三.创建repository仓库信息文件

在各个软件包目录中分别执行createrepo命令,生成当前目录下的repodata数据。使用“-g”选项可以指定用于创建组信息的xml文件模板。

[root@11gR2-t2 repodata]# cd /mnt/repodata/

[root@11gR2-t2 repodata]# ll *comps.xml

-rw-r--r--. 1 root root 1101220 Dec 16 10:46 3a27232698a261aa4022fd270797a3006aa8b8a346cbd6a31fae1466c724d098-c6-x86_64-comps.xml

[root@11gR2-t2 repodata]# createrepo -g /mnt/repodata/3a27232698a261aa4022fd270797a3006aa8b8a346cbd6a31fae1466c724d098-c6-x86_64-comps.xml /var/ftp/pub/CentOS-6.2/

清除旧的数据文件

yum-arch -l/var/ftp/pub/CentOS-6.2/

四.配置启动vsftpd服务。

[root@11gR2-t2~]# service vsftpd restart

Shutting downvsftpd:                                      [FAILED]

Startingvsftpd for vsftpd:                                [  OK  ]

注意:关闭防火墙和selinux

五.设置YUM源位置。

[root@11gR2-t2~]# cd /etc/yum.repos.d/

新建配置文件,名称自定义

[root@11gR2-t2yum.repos.d]# cp CentOS-Base.repo CentOS-Base.repo.bak

[root@11gR2-t2yum.repos.d]# vim CentOS-Base.repo

编写以下代码:

enabled=1 表示启用该目录

gpgcheck=0 表示不检查gpg key

baseurl=ftp:// 路径视本机情况而定

# 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=ftp://172.16.30.135/pub/CentOS-6.2

gpgcheck=0

gpgkey=ftp://172.16.30.135/pub/CentOS-6.2/Packages

 

#released updates

[updates]

name=CentOS-$releasever - Updates

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

baseurl=ftp://172.16.30.135/pub/CentOS-6.2

gpgcheck=0

gpgkey=ftp://172.16.30.135/pub/CentOS-6.2/Packages

 

#additional packages that may be useful

[extras]

name=CentOS-$releasever - Extras

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

baseurl=ftp://172.16.30.135/pub/CentOS-6.2

gpgcheck=0

gpgkey=ftp://172.16.30.135/pub/CentOS-6.2/Packages

 

#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=ftp://172.16.30.135/pub/CentOS-6.2

gpgcheck=0

enabled=0

gpgkey=ftp://172.16.30.135/pub/CentOS-6.2/Packages

 

#contrib - packages by Centos Users

[contrib]

name=CentOS-$releasever - Contrib

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

baseurl=ftp://172.16.30.135/pub/CentOS-6.2

gpgcheck=0

enabled=0

gpgkey=ftp://172.16.30.135/pub/CentOS-6.2/Packages

 

注意:因为是centos系统,不能通过认证,要修改如下配置

[root@11gR2-t2oinstall]# vim /etc/yum.conf

gpgcheck=0

六.使用yum命令

1.列出所有可更新的软件清单
命令:yum check-update

2.安装所有更新软件
命令:yum update

3.仅安装指定的软件
命令:yum install <package_name>

4.仅更新指定的软件
命令:yum update <package_name>

5.列出所有可安裝的软件清单
命令:yum list

用YUM安装删除软件
装了系统添加删除软件是常事,yum同样可以胜任这一任务,只要软件是rpm安装的。 
安装的命令是,yum install xxx,yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装;如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己作出判断。 
删除的命令是,yum remove xxx,同安装一样,yum也会查询数据库,给出解决依赖关系的提示。 


1.
用YUM安装软件包
命令:yum install <package_name>

2.用YUM删除软件包
命令:yum remove <package_name>

用YUM查询软件信息
我 们常会碰到这样的情况,想要安装一个软件,只知道它和某方面有关,但又不能确切知道它的名字。这时yum的查询功能就起作用了。你可以用 yum search keyword这样的命令来进行搜索,比如我们要则安装一个Instant Messenger,但又不知到底有哪些,这时不妨用yum search messenger这样的指令进行搜索,yum会搜索所有可用rpm的描述,列出所有描述中和messeger有关的rpm包,于 是我们可能得到gaim,kopete等等,并从中选择。 
有时我们还会碰到安装了一个包,但又不知道其用途,我们可以用yum info packagename这个指令来获取信息。 


1.
使用YUM查找软件包
命令:yum search <keyword>

2.列出所有可安装的软件包
命令:yum list

3.列出所有可更新的软件包
命令:yum list updates

4.列出所有已安装的软件包
命令:yum list installed

5.列出所有已安装但不在 Yum Repository 內的软件包
命令:yum list extras

6.列出所指定的软件包
命令:yum list <package_name>

7.使用YUM获取软件包信息
命令:yum info <package_name>

8.列出所有软件包的信息
命令:yum info

9.列出所有可更新的软件包信息
命令:yum info updates

10.列出所有已安裝的软件包信息
命令:yum info installed

11.列出所有已安裝但不在 Yum Repository 內的软件包信息
命令:yum info extras

12.列出软件包提供哪些文件
命令:yum provides <package_name>

清除YUM缓存
yum 会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用yum clean指令进行清除,更精确 的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all一 股脑儿端 


1.
清除缓存目录(/var/cache/yum)下的软件包
命令:yum clean packages

2.清除缓存目录(/var/cache/yum)下的 headers
命令:yum clean headers

3.清除缓存目录(/var/cache/yum)下旧的 headers
命令:yum clean oldheaders

4.清除缓存目录(/var/cache/yum)下的软件包及旧的headers
命令:yum clean, yum clean all (= yum clean packages; yumclean oldheaders)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值