您的位置:首页 > 产品设计 > 产品经理

自己动手做的一个rpm包(分享)

2013-04-11 12:43 573 查看


1, linux软件管理氛围:

(ア) RPM打包方式

① Yum工具是采用这种打包方式;

② 操作系统:Redhat,Fedara,CentOS。

(イ) DEBIAN打包方式

① Apt-get工具是采用这种打包方式;

② 操作系统:Ubantu

比较之后RPM打包比较容易,网络上参考的资料较多。比较倾向采用此打包方式

2, RPM包的***:

(ア) 需要一些工具,参考网络。(可以用yum去安装,eg:yum installrpm-build

(イ) RPM有五个文件夹是必须的。应该是系统默认的,一般在Redhat的/usr/src/redhat下有BUILD,RPMS,SOURCES,SPECS,SRPMS五个文件夹。我的默认的目录是在/root/rpmbuild

(ウ)

① 五个文件夹的作用参照网络。其中SOURCES目录中放我们的压缩文件(eg:我这里的实例的话放置的是1.tar.gz压缩文件)

SPECS目录里存放.spec脚本,这个脚本是核心,记录rpm的安装方式。

BUILDROOT目录是在***打包的过程中生成。这个目录很重要。相当于是一个虚拟的目录。下面的实例中会说明的。

④ 实例:more 1.l #生成一个文件

⑤ tar zxvf 1.l 1.tar.gz #压缩文件

⑥ cp 1.tar.gz /root/rpmbuild/SOURCES #拷贝到指定文件夹

⑦ cd /root/rpmbuild/SPECS

vi1.spec

⑤ 以下是1.spec的内容

#

# Examplespec file for nginx

#

Summary: highperformance web server

Name: 1

Version: 1

Release: 1.0

License:2-clause BSD-like license

Group:Applications/Server

Source: 1.tar.gz

URL: 1.tar.gz

Distribution:Linux

Packager:zhumaohai <admin@www.centos.bz>



%description

nginx [enginex] is a HTTP and reverse proxy server, as well as

a mail proxyserver

%prep

rm -rf$RPM_BUILD_DIR/1.tar.gz

zcat$RPM_SOURCE_DIR/1.tar.gz | tar -xvf -

echo"---------------------------"

mkdir $RPM_BUILD_ROOT[11] /home/zl[12] -p

%build

%install

install -m 755 1.l $RPM_BUILD_ROOT/home/zl[13]

%preun

if [ -z"`ps aux | grep nginx | grep -v grep`" ];then

killall nginx>/dev/null

exit 0

fi

%files

/home/zl/1.l

(エ) ***rpm的命令:rpmbuild –ba 1.spec

生成的rpm包放在RPMS这个目录中

(オ) 安装包得命令:rpm –ivh 1-1-1.0.i386.rpm

卸载的命令:rpm –e 1

[11]这个就是上面所言的BUILDROOT目录

在打包的时候,它就相当于是系统的根目录。因为要把1.l安装在/home/zl目录下,所以,我的虚拟安装目录也应该有这个目录,否则会报错。

[12]我想把1.l安装在/home/zl目录下。你可以换一个

[13]安装在哪里

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: