手动制作rpm包

简介: 制作RPM包的过程,简单的说,就是为制作过程提供一个“工作车间”,即一个目录,里面需要包含以下几个子目录:           BUILD        ————编译相关源码包时的工作目录;           RPMS         ————生成的二进制格式的RPM包存放的位置;     ...

制作RPM包的过程,简单的说,就是为制作过程提供一个“工作车间”,即一个目录,里面需要包含以下几个子目录:

          BUILD        ————编译相关源码包时的工作目录;

          RPMS         ————生成的二进制格式的RPM包存放的位置;

          SOURCES ————程序的源码文件及其其他辅助文件的存放位置;

          SPCES        ————spec文件的存放位置;

          SRPMS      ————生成的SRC格式的RPM包存放位置;

如果用户目录主目录下没有类似目录结构,可以通过一个工具软件来自动配置和生成。

#yum install rpmdevtools –y


#rpmdev-setuptree
rpmdev-setuptree命令默认在当前用户主目录下创建一个RPM构建目录结构。

 

当“工作车间”准备停当之后,将用到的源码及辅助文件放置于相应的SOURCES目录中,并在SPECS目录中创建一个spec文件,就可以使用rpmbuild命令开始制作过程了。由于root用户的权限没有任何限制,RPM制作过程的不当命令有可能会给系统带去破坏,所以,一定不能使用root用户执行制作过程。切记!

RPM生成要素:

1、   生成rpm所用的文件列表或者源代码;

2、   根据文件列表或者源代码生成rpm包的规范,也就是spec文件;

3、   根据spec文件加工源码/文件的工具rpmbuild;

操作步骤:

一般我们都把源码打包成tar.gz格式然后存放于SOURCES路径下,而在SPECS路径下编写spec文档,通过命令打包后,默认会把打包后的rpm包放在RPMS下,而源码包会被放置在SRPMS下。

 

先看看rpmbuild命令的用法:

1、  从spec文档建立有以下选项:

-bp              #只执行spec的%pre段(解源代码包并打补丁,只是准备阶段)

-bc              #执行spec的%pre和%build段(准备并编译)

-bi               #执行spec的%pre, %build与%install(准备,编译并安装)

-bl               #检查spec中的%file段(查看文件是否齐全)

-ba              #建立源码与二进制包(常用)

 

-bb              #只建立二进制包

-bs              #只建立源码包

2、重点介绍spec文件:

         

Summary: rpm hello world.      

Name: hello

Version: 0.1

Source: $RPM_SOURCE_DIR/hello-0.1-1.tar.gz          #源代码的tar包名字,严格一致;

Release: 1                    

Vendor: lx

License: Share

Group: Application/test

BuildRequires: gcc, make #环境要求

Requires:  libdnet.1 libpcap.so.1 libsfbpf.so.0 #依赖库要求

 

 

%description

print hello

 

%prep       #编译前的准备部分,一般为删除之前的中间文件(BUILD目录),解压缩源码文件

rm -rf $RPM_BUILD_DIR/hello-0.1-1

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

 

%build   #完成make编译部分,如果源码中提供了Makefile文件,就是一条make命令

cd $RPM_BUILD_DIR/hello

./configure  --prefix = /usr/local/

make

 

%install     #完成安装部分,如果源码中提供了Makefile文件,就是一条make install命令

cd $RPM_BUILD_DIR/hello

make install

 

%files         #列出软件被安装后,目标机器上由该文件新建的文件,包括可执行文件、配置文件、man文件等

%doc

%defattr(-,root,root)

 /usr/lib/*

 /usr/include/*

 /usr/sbin/*

 

Rpm包制作注意点:

          1、%file段  文件的添加;

          2、安装时,对依赖库的需求;

 

相关文章
|
6月前
|
缓存 应用服务中间件 Linux
RPM安装包制作
RPM安装包制作
67 0
|
安全 Linux 网络安全
openssh8.2制作rpm包
虚机openssh升级打补丁
openssh8.2制作rpm包
|
Linux 安全 虚拟化
编译内核及制作RPM包
一、前言       由于目前部分平台所使用的Linux发行版版本比较低,自带的内核版本远低于主流内核,无法使用到一些优秀的新内核特征,包括对我们比较有用的per-task storage I/O、改善在SMP系统中I/O的吞吐量、Ext4文件格式、虚拟化支持等。
1711 0
|
Linux
Debian 安装包的简单制作
在Linux分发软件有两种形式,一种是源码,一种是安装包。当目标机器不带有编译环境,且不能联网时,安装包就是唯一的方案了。 Linux 下的安装包有多种格式,不同Linux使用的格式并不完全相同。
2640 0
|
应用服务中间件 C语言