Linux 版 (精华区)
发信人: netiscpu (还没想好), 信区: Linux
标 题: 怎样生成一个rpm文件(2)
发信站: 紫 丁 香 (Sun Aug 23 17:07:07 1998), 转信
【 以下文字转载自 cnlinux 讨论区 】
【 原文由 Lark_Wang@bbs.ustc.edu.cn 所发表 】
> ==> Yu_Di(dy) 说道:
> 又:我把各文件放到了它们该去的目录,还是报告找不到文件.
rpm 实际上也用到了 tgz 包
在 /usr/src/redhat 目录下
SOURCES 放的是 tgz 格式的"源文件" , 它展开后必须有而且只能有
name-version 目录 , 这个 .tgz 文件将在 'build' 期间在
/usr/src/redhat/BUILD 下展开 , 即变成
/usr/src/redhat/BUILD/name-version/ , 在 build 的时候
将要先 cd /usr/src/redhat/BUILD/name-version/ ,然后才
执行 %install 里的指示
BuildRoot 给出的是"安装位置" 也就是生成的包在哪儿开始打包,
files 给出的是从这个位置算起的文件
比如 , BuildRoot 为 /var/tmp/name-version-root ,
在 files 里指定了文件 /usr/X11R6/bin/name , <--+
那么 , 打包的过程相当于 |
# cd /var/tmp/name-version-root |
# tar zcvf name-verion.tgz usr/X11R6/bin/name <--+
所以 , 要想打包时能找到文件 , 就要在 %install 里把要打包的
文件按照一定的结构拷贝到 BuildRoot 下 , 这和 Unix 的
文件目录树的思想是一致的 .
%install 在 BuildRoot 下形成一个在现实系统中要形成的文件目录
结构 , 不同的是平常的 make install 是以 / 为起点构造目录结构,
即安装到系统中 , 而这里是以 BuildRoot 为起点构造目录结构 ,以
便于打包 .
实际上在slackware 里的方法也差不多 , 比如我在 /var/tmp/x11amp
下建立
/var/tmp/x11amp/usr/X11R6/bin/x11amp
/var/tmp/x11amp/usr/doc/README.gz
/var/tmp/x11amp/usr/doc/SECURITY
/var/tmp/x11amp/usr/man/man1/x11amp.1x.gz
/var/tmp/x11amp/usr/sbin/x11amp.suidconf
然后
# cd /var/tmp/x11amp
# tar zcvf x11amp.tgz x11amp
拿给别人安装的时候就是
# cd /
# tar zxvf x11amp.tgz
--
※ 来源: 中国科大BBS站 [bbs.ustc.edu.cn]
--
※ 转载:.紫 丁 香 bbs.hit.edu.cn.[FROM: mtlab.hit.edu.cn]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.893毫秒