Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2008865
  • 博文数量: 369
  • 博客积分: 10093
  • 博客等级: 上将
  • 技术积分: 4271
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-21 00:59
文章分类

全部博文(369)

文章存档

2013年(1)

2011年(2)

2010年(10)

2009年(16)

2008年(33)

2007年(146)

2006年(160)

2005年(1)

分类: LINUX

2006-03-02 23:40:22

RPM简化了操作系统对包的管理,这个伟大的改进对Linux操作系统的普及起到了不可磨灭的作用,也从根本上奠定了Redhat Linux作为Linux操作系统发行版中老大的位置。
虽然各种软件都有发行商来维护,但是偶尔的一些小bug,或者是一些对软件的定制却不能依赖于发行商。相对来说他们的速度就比较迟缓了,Linux在这个方面为我们提供了方便,她的软件基本上都是开放源代码的,我们可以通过修改代码,然后重新给软件打包,安装软件包的方法来实现。这个过程被形象的称为“打补丁(patch)”。
步骤:
(1)找到相应软件的源代码rpm包,比如说如果软件包是xyz,那么源码rpm包就是xyz-xxx.src.rpm,其中xxx为相应版本号。执行
rpm -ivh xyz-xxx.src.rpm
安装源码,源码一般安装在/usr/src/redhat/目录下(如果是其它发行版,目录可能会稍有不同)。
(2)切换到临时的工作目录,比如说~/tmp,然后将/usr/src/redhat/SOURCES目录下的相应的软件包解压到工作目录,你将得到目录xyz,首先保存一份源码的备份
cp -R xyz xyz.orig
然后进入xyz目录,按自己的需求修改代码。修改完毕,执行如下命令生成补丁文件:
diff -urN xyz.orig xyz > xyz-xxx-yyy.patch
补丁文件名最好能够反应所做的修改,这里也就是yyy。还有一个规则:不同目的补丁最好拆开放置到不同的补丁文件中。把补丁拷贝到/usr/src/redhat/SOURCES/xyz/目录。
(3)修改spec文件:
切换到/usr/src/redhat/SPECS目录,找到相应的spec文件(xyz.spec),用自己熟悉的文本编辑器打开。在Source段后面加上补丁文件的说明:
Patch1: xyz-xxx-yyy.patch
在setup段加上打补丁的命令:
%patch1 -p1
(4)重新编译生成rpm包:
rpmbuild -bb xyz.spec
(5)安装软件包:
生成的软件包一般在目录/usr/src/redhat/RPMS/i386/中,根据平台的不同i386可能会换成相应处理器构架的,比如说i686。找到后,安装就行了。
rpm -Uvh xyz-xxx.rpm

阅读(1767) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~