menu

精英意识会让人走向孤独

忘记社区密码或者保密贴查看密码的,请给我留言,并留联系方式。

Avatar

How to Build a RPM package for Redhat/Fedora Linux (一)

经过一周的研究,成功的BUILD了自己的第一个RPM:Apache_ssl-prima-1.3.31-15.F1.rpm。这里简单记录下我的操作。

参考文档:MAX-RPM

How to Build a RPM package for Redhat/Fedora Linux

Introduction

RPM 是 Red Hat Package Manager 的缩写。由 Red Hat Linux 首先引入的,现在已经被一些主要的 Linux 发行商采用,如 SuSE、Caldera、Conectiva ,Mandrakesoft,在Redhat的下一版Fedora Linux 中,也采用RPM软件包进行管理。

RPM包含了应用程序的所有库文件,同时还包括控制脚本。系统可以识别并且运行这些脚本,完成安装、卸载、状态检查、依赖检查等一系列工作。

在Unix、GUN/Linux中,常见的软件发行方式有两种:
1. Source源码
2. Binary包
我们分别来介绍。

How to install from Source Code?

Source源码包通常扩展名为tar.gz,即由tar进行打包,gzip进行压缩。例如:

apache_1.3.31.tar.gz
php-4.3.8.tar.gz

这些包仅仅包含源代码,要安装他必须进行编译,简单步骤如下:

[i]# wget http://192.168.0.100/download/apache_1.3.31.tar.gz
# tar zxvf apache_1.3.31.tar.gz
# cd apache_1.3.31
# ./configure \
--prefix=/usr/local/apache \
[...more...]
# make
# make install
[/i]

到此,即完成了初步的安装。我们还需要做如下设置:
1. 将apache的启动脚本加入/etc/rc.d/init.d中(不同linux系统的目录不一样),让apache随系统启动而自动启动。
2. 修改配置文档,将/usr/local/apache/conf/httpd.conf修改为我们所需要的文档。
3. 做其他更多修改。

可以看出使用源码自己编译还是比较复杂的,当然对于一个熟练的Linux用户,这些不是问题。但是当面对数台服务器,几十个包的时候,用源码自己编译,工程量是非常巨大的……

How to install from Binary package?

Binary包,是二进制的可执行文件,一般是由发布者完成了编译之后,将可执行文件打包发布的,其下载文件扩展名一般也是tar.gz。我们以MySQL 4.0.20 for FreeBSD为例:

[i]# wget http://192.168.0.100/download/mysql-4.0.20-freebsd4.3-i386.tar.gz
# tar zxvf mysql-4.0.20-freebsd4.3-i386.tar.gz
# cd mysql-4.0.20-freebsd4.3-i386
# groupadd mysql
# useradd -g mysql mysql
# scripts/mysql_install_db --user=mysql
# chown -R root .
# chown -R mysql data
# chgrp -R mysql .
# bin/mysqld_safe --user=mysql &
[/i]

现在mysql就初步安装好了。我们还需要将他加入启动组,并且继续做其他修改。使用BINARY包也是比较麻烦的,诸多步骤要执行。最理想的,就是使用RPM了。

How to use RPM to install?

Red Hat Linux的标准安装格式就是RPM,在RH的安装光盘上,可以找到所有软件的RPM。以MySQL安装为例:

# wget http://192.168.0.100/download/mysql-server-3.23.58-4.rpm
# rpm -ivh mysql-server-3.23.58-4.rpm

一切ok。MySQL会自动添加系统用户,安装不同文件到不同位置,设置为自启动,自动复制预先定义好了的配置文档。这些都只用一条RPM命令就可以全部完成。

当我们要进行升级时候,只要下载新版,然后运行

# rpm -Uvh mysql-server-4.0.20-4.rpm

就可以完成所有升级操作。卸载一个包也同样容易:

# rpm -e mysql-server-3.23.58-4.rpm

查看系统上所有已经安装的包:

# rpm -qa

用过几次RPM之后,就不想再自己编译,毕竟太方便了。

How to build a RPM package

建立一个RPM包需要做以下准备:

1. 目标软件的Source Code,可以是一个或者多个。
2. 目标软件的Patch和预先定义的配置文档。
3. 过程控制文件,即SPEC文件。这个文件明确了相应包中的文件将被安放到哪里,软件正确运行要依赖哪些其他程序,安装卸载前后要执行哪些程序,是谁在什么时候建立的这个包,还有一段包内容的描述,等等。

-----------------

第二部分

RPM就是Round Per Minute

汗楼上的……

699

700

评论已关闭