红旗linux怎么升级,[原]使用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、提供系统本身的升级程序包,官方提供的升级包,自己编译的软件包,以及从其他途径获得、经过测试的软件包四大部分提供更新升级。

目录架构如下:

9d2c2ea70b9b061ad6b06133bf3d9195.png

二、部署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

三、部署yum客户端

我使用的是一个用最小化安装的红旗DC Server作为客户端。要使用yum服务,必须先解决yum的依赖关系。

1、准备

下面是需要使用的软件包,请从系统光盘、rpmfind或centos获得:地址

rpm -ivh libxml2-2.6.16-6.i386.rpm

rpm -ivh libxml2-python-2.6.16-6.i386.rpm

rpm -ivh python-elementtree-1.2.6-4.i386.rpm

rpm -ivh sqlite-3.2.2-1.i386.rpm

rpm -ivh python-sqlite-1.1.6-1.i386.rpm

rpm -ivh python-urlgrabber-2.9.6-2.noarch.rpm

rpm -ivh elfutils-0.97-5.i386.rpm

rpm -ivh rpm-4.3.3-9_nonptl.i386.rpm

rpm -ivh rpm-python-4.3.3-9_nonptl.1AX.i386.rpm

2、安装

我使用的是自己编译的2.6.1-1版本,可以从下面的地址获得。你也可以使用centos提供的2.4.2-2版本。

下载地址:点击

rpm -ivh yum-2.6.1-1.noarch.rpm

3、配置

yum客户端的配置非常简单,只有一个配置文件:/etc/yum.conf,如下:

引用

[main]

cachedir=/var/cache/yum

keepcache=1

debuglevel=2

logfile=/var/log/yum.log

pkgpolicy=newest

distroverpkg=redflag-release

tolerant=1

exactarch=1

obsoletes=1

# 这里表示,你可以把配置文件放在/etc/yum.repos.d目录中,用.repo文件名# 结尾即可。

# PUT YOUR REPOS HERE OR IN separate files named file.repo

# in /etc/yum.repos.d

[base]

name=Red Flag Linux $releasever - $basearch - Base

# 下面是获得rpm的http或ftp地址(yumer是用户名和密码)

baseurl=ftp://yumer:yumer@192.168.228.153/dc/$releasever/os/$basearch/

[updates]

name=Red Flag Linux $releasever - Updates

baseurl=ftp://yumer:yumer@192.168.228.153/dc/$releasever/updates/$basearch/

[extras]

name=Red Flag Linux $releasever - Extras

baseurl=ftp://yumer:yumer@192.168.228.153/dc/$releasever/extras/$basearch/

[addons]

name=Red Flag Linux $releasever - Addons

baseurl=ftp://yumer:yumer@192.168.228.153/dc/$releasever/addons/$basearch/

※注释:配置文件中可以使用几个变量,其他的请参考man yum.conf。

$releasever=distroverpkg定义的对应/etc/redflag-release的版本;

$arch=python中os.uname的定义;

$basearch=把$arch降级到最基础的架构,例如i686会表示为i386

4、使用

上面已经把yum配置完,使用方法是:

# yum

参数说明:

options:这里仅列出常见的参数而已。

-y 如果 yum 在工作过程中需要使用者响应,这个参数可以直接回答 yes

更新项目:更新的动作有底下几个:

install :安装某个套件,后面需要接套件名称;

update  :这就是升级啦!如果 update 后面接套件名称,表示只要 yum 升级该套件而已

如果 update 后面不接套件名称,表示 yum 针对目前该主机所有已经安装的套件进行升级的动作!这是最常使用的项目了。

list    :列出目前在 yum server 上面有的 RPM 套件;

info    :某个套件的内容,类似 rpm -qi packages 的内容。

clean   :将已将下载到本机的 packages 或 headers 移除。

remove  :移除已经安装在我们系统的某个套件!

例如:

安装所有和mysql有关的套件

yum install *mysql*

检查是否有更新的套件

yum check-update

检查所有提供php的套件,并显示简介信息

yum search php

显示已经安装的套件

yum list installed

移除wget套件

yum remove wget

09e6e7961466d3a78aba72377c8d3a1c.png

四、其他

1、相关文件

引用

/etc/cron.daily/yum.cron

每日进行yum及其他软件包定时升级

/etc/init.d/yum

yum服务启动文件

2、更新套件

服务端:把新的套件放入对应的目录,然后运行createrepo更新XML数据库即可;

客户端:yum会定时的情况cache文件,但有时候我们马上就要更新需要的套件,可以这样做:

yum clean all

yum update mirrordir

3、利用其他套件更新

我们在日常的管理中,也可以利用其他的发行版提供的镜像来进行额外的更新。例如,我常用centos镜像来更新部分我的工具包:

在/etc/yum.conf文件中增加:

引用

[centos-update]

name=CentOS-$releasever - Update

baseurl=http://mirror.be10.com/centos/4.3/updates/$basearch/

gpgcheck=1

gpgkey=http://mirror.be10.com/centos/RPM-GPG-KEY-centos4

其中不一样的地方就是,centos做了签名,所以,需要加上gpgcheck和gpgkey,接下来我就可以进行更新:

yum clean all

yum install mysql

可以看到,mysql会使用centos提供的4.1.20-1版本,而不会使用系统自带的4.1.10a-2。

54a8c63c38cf2a7f0041023cfb0f9aa6.png

但千万要注意区分可使用的套件,并不是所有centos的套件都适合红旗使用的。若不知道如何区分,建议还是使用官方的SP补丁包吧。

五、附录

1、我使用的yum.conf文件:下载

2、yum客户端需要的rpm软件包:下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值