rpm 包创建
来源:互联网 发布:中国的下一场战争知乎 编辑:程序博客网 时间:2024/04/28 21:43
一 准备工作
1 想清楚你要创建什么, 你想把什么打包进入一个RPM包?一个应用程序?一个库?一组配置文件还是一个文档包?
一般来说,会创建一个源文件包和一个二进制文件包.二进制文件包用于安装(即通常的rpm包),而源文件包则会对重新构建二进制包和更新包带来极大便利(即srpm包,源码包).
二 构建rpm
1 设置目录结构, 通常Redhat的系统会在/usr/src/redhat目录下进行rpm的打包创建工作.该目录下有5个子目录:
BUILD:rpmbuild命令会在这里构建软件;
RPMS:rpmbuild命令会将完成的二进制rpm包放到这个目录下;
SOURCES:这里放将要打包进入rpm包的源文件;
SPECS:这里放用于知道打包过程的spec文件;
SRPMS:rpmbuild命令会把完成的源码rpm包放到这个目录下.
* 要创建RPM包,你真正需要的只是放在SOURCE目录下的源文件和SPECS目录下的spec文件;
* 你不应该使用root用户来打包,可能会引起严重的问题.应当修改相应目录文件权限后,使用普通用户进行打包.(但是使用普通用户打的包,在没有该用户的系统上安装的时候,可能会出现大量类似"没有这个用户"的警告...)
2 将源文件放到SOURCE目录下. 你可以直接将所有的源文件放到SOURCE目录下,但更好的做法是将源文件首先达成一个tar包,然后将该tar包放到SOURCE目录下.tar包要注意命令.
3 创建spec文件(详见另一篇博客文章)
3.1 introduction段,包含包的介绍信息,当使用rpm -qi时显示.这个段有几个东西(如版本等)是必须的,但是都很简单,只要照葫芦画瓢久好了.
3.2 prep段,prep是prepare的简写.如果源文件是一压缩包的形式提供的,这个段的指令将会进行解压缩.
3.3 build段,这一段的作用就是将源代码进行编译生成可执行文件.当然你不应该将所有的编译工作都在这里进行,而是应该在源代码中就把编译工作安排好,然后这里直接调用你源码的编译脚本就好了(如常见的Makefile).
3.4 install段,这一段说明如何在系统上安装软件.
3.5 clean段,清理其他段生成的不必要的文件.
3.6 files段,本段列举了要被打包进入rpm包的文件.
4 用rpmbuild命令构建prm包.rpmbuild -ba spec_file, -ba选项是指同时生成二进制包和源码rpm包.你也可以指定选项让rpmbuild在spec文件的某一个段后就停下来,当你的构建过程有错误而你不知道错误在哪里的时候,用来进行排错尤其有用.如 rpmbuild -bp 命令会在prep段之后,在build段之前停下,这样你就可以判断错误是不是在prep段之前的打包过程中出现的.
- 创建rpm包
- rpm 包创建
- Fedora 创建 RPM 包
- RPM包创建入门
- 创建rpm包
- Linux创建RPM包思路
- Linux创建RPM包思路
- 使用rpmbuild创建rpm包
- 用OBS创建Debian和RPM包
- 【原创】Linux创建RPM包思路
- rpm包
- rpm包
- RPM 包
- CentOS下通过已有的二进制文件创建RPM安装包
- Open vSwitch 2.3.1创建RPM安装包
- rpmbuild spec CMake 创建项目的rpm 包
- 系统上未找到用于创建 RPM 包的 RPM 工具 (rpmbuild)解决方法
- rpm安装src.rpm包
- 特别无聊的一天
- ubuntu9.04下的lamp安装
- 简单剖析U盘autorun.inf
- OPENLDAP 访问控制
- 内存泄露检测工具 -- Visual Leak Detector (转)
- rpm 包创建
- 我的博客
- Linux kernel Development second Edition
- 关于进程间通信的一些小方法
- 英文标点符号翻译大全
- About SQL and SQL-Based Management Tools
- java数据结构 线性表,链表,哈希表
- eclipse入门教程
- linux 中解析命令行参数 (getopt_long用法)