用yum来更新红旗Linux

最近找到几个新的软件包,觉得挺好用,也刚编译成rpm包,希望在所有使用到的机器上部署。后来发现,需要每一台机器去安装一遍,即使可以远程安装,这也是挺麻烦的。决定参考RedHat的升级机制,把yum也迁移到红旗上来。说做就做,效果还是不错的。

一、原理
yum是一个用于管理rpm包的后台程序,用Python写成,可以非常方便的解决rpm的依赖关系。在建立好yum服务器后,yum客户端可以通过http、ftp方式获得软件包,并使用方便的命令直接管理、更新所有的rpm包,甚至包括kernel的更新。它也可以理解为红旗环境下的apt管理工具。

要在红旗上部署yum服务,首先需要的就是规划软件包的目录次序:

引用
1、我准备要对红旗服务器DC和桌面DT提供服务;
2、涉及的平台,服务器对i386、x86_64平台,桌面只有i386平台;
3、提供系统本身的升级程序包,官方提供的升级包,自己编译的软件包,以及从其他途径获得、经过测试的软件包四大部分提供更新升级。

目录架构如下:

二、部署yum服务器
系统平台:
服务端:红旗DC Server 5.0 for x86
客户端:红旗DC Server 5.0 for x86和DT 5.0 for x86

1、准备
需要为yum提供python环境,可以从系统光盘获得:

引用
libxml2-2.6.16-6.i386.rpm
libxml2-python-2.6.16-6.i386.rpm
elfutils-0.97-5.i386.rpm
rpm-python-4.3.3-9_nonptl.1AX.i386.rpm
python-urlgrabber-2.9.6-2.noarch.rpm

使用rpm -ivh把上述的包都安装到系统中。
新版的yum使用xml格式的数据文件来分析和获得rpm信息,可以使用createrepo工具实现

安装:
rpm -ivh createrepo-0.4.4-1.noarch.rpm

2、拷贝
os目录是用于存放系统原来带的所有软件包的,则我们这样做:

mount -t iso9660 -o loop /iso/redflag-dc5.0-release-disc1.iso /mnt/cdrom
cp /mnt/cdrom/* ./os/i386/
umount /mnt/cdrom
mount -t iso9660 -o loop /iso/redflag-dc5.0-release-disc2.iso /mnt/cdrom
cp /mnt/cdrom/* ./os/i386/

3、生成yum用的repodata目录
运行:
createrepo /yum/dc/5.0/os/i386

运行后,会自动在i386目录下生成repodata目录,里面存放有对应RPM的依赖信息供后续yum使用。

这里只是演示了os目录,同样的,其他目录也存放上对应的文件,并用上述命令生成repodata目录。今后若有更新,需重新运行createrepo命令,以更新数据库

4、准备ftp服务
yum是通过http或ftp获得rpm包的,所以我们需要设置http或ftp服务,并把上述的yum目录的根目录作为ftp的根目录即可。类似提供这样的关系:

引用
ftp://ip/dc/5.0/os/i386

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/69c0817d132f6263f60910e131690a58.html