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毫秒