Advertisement

如何构建自己的rpm包

阅读量:

如何构建自己的rpm包

前言

在项目开发过程中,在服务器中替换某个或多个文件通常是必要的。然而,在服务器集群规模较大且需要替换的软件包数量较多的情况下,则会出现较大的不便和较高的错误风险。尽管可以通过远程批量推送工具来实现相关操作但这种方式仍然显得不够优雅且容易出错因此建议采用更加高效的方式即通过构建软件包的方式进行更新更好的做法是先创建待更新的软件包然后利用rpm管理工具完成更新过程这不仅能够提高操作效率还能够减少潜在风险

Spec脚本

Spec脚本是rpm包制作的基础内容,在这里我们将重点阐述其框架结构,并深入探讨符合本文应用场景的具体spec脚本设计

在Linux环境下对spec脚本的支持非常友好:例如,在CentOS环境中使用Vim编辑器打开xxxx spec(xxxx spec无法找到),执行此操作时会调用spec的模板文件$ /usr/share/vim/vimfiles/template(spec) ,当完成xxxx spec(xxxx spec)的编写并保存修改后,整个spec脚本制作过程即告完成。

注:/usr/share/vim/vimfiles/template.spec 模板文件被 vim-common rpm 包所生成。

如下图所示:

图片中的参数详解:

Name: 软件包的名称,后面可使用%{name}的方式引用

Version: 软件的实际版本号,例如:1.0.1等,后面可使用%{version}引用

Release: 发布序列号,标明第几次打包,后面可使用%{release}引用

Summary: 软件包的内容概要

Group: 软件分组,建议使用标准分组

License: 软件授权方式,通常就是GPL

URL: 软件的主页

源代码集合能够支持包含多个如Source1和Source2等资源,并且可以在文档中使用%{source1}和%{source2}进行引用。

BuildRequires: 编译源码需要的依赖

Requires: 该rpm包所依赖的软件包名称

%description 关于rpm包内容的描述

%prep 预处理脚本

%setup -q 把源码包解压并放好

%build 开始构建包

%configure 配置包的编译环境

make %{?_smp_mflags}

%install 安装编译生成的文件到buildroot目中的文件夹中

make install DESTDIR=%{buildroot}

%files 定义那些文件或目录会放入rpm中

%doc 标记文件这是一个文档文件

%changelog 变更日志

基于vim语言环境的xxx.spec文件作为配置文件,"使用"该文件作为工作目录指定为某个值, 这一做法在实际应用中具有较高的灵活性和可扩展性, 但同时也带来了某些限制因素. 然而, 在实际应用中,默认情况下会有大量未被指定的配置参数, 这就需要我们在开发过程中更加谨慎地进行参数设置. 这一提示为我们展示了构建一个基础的spec配置方案提供了参考.

制作rpm

** 1.使用场景**

配置rpm包后,在rpm目录中进行modify_cdrom_file.sh文件的配置;spec脚本主要专注于rpm构建过程而不依赖代码编译。

** 2.Spec demo**

Summary: Shell script providing modify cdrom file feature

Group: Applications/System

License: LGPLv2+

URL:

Source: modify-cdrom-file-3.15.0-src.tar.gz

Source1: modify_cdrom_file.sh

#BuildRequires:

#Requires:

BuildArch:noarch

%define _binaries_in_noarch_packages_terminate_build 0

%description

GenNiao develops a shell script used to attach a iso image to vm

and detach a iso from vm.

#%prep

%setup -q

#%build

#%configure

#make %{?_smp_mflags}

%install

rm -rf %{buildroot}

#%{__install} -p -D -m 755 %{SOURCE1} $RPM_BUILD_ROOT/usr/local/bin/modify_cdrom_file.sh

install -p -D -m 755 %{SOURCE1} $RPM_BUILD_ROOT/usr/local/bin/modify_cdrom_file.sh

%files

/usr/local/bin/modify_cdrom_file.sh

%doc

%changelog

--------------------------------------------------------------------------------------------------------------------------------

此处关于 demo 的 spec 配置不再详细说明。BuildArch:noarch 被添加到基础 spec 模板中。因为 rpm 内容与主机硬件无关,在此指定 noarch。构建 rpm 的源码包为 modify-cdrom-file-3.15.0-src.tar.gz,在 rpm 包中包含的内容是 modify_cdrom_file.sh,并将 rpm 安装路径设置为 /usr/local/bin。

3.制作rpm

rpmbuild -ba modify-cdrom-file-3.15.0/modify_cdrom_file.spec

全部评论 (0)

还没有任何评论哟~