RPM包详解以及如何制作RPM包

RPM包详解以及如何制作RPM包RPM 包简介 RPM 全名 RedHat Package Managerment 一开始只是 Red Hat Linux 的软件包格式 它最初的名字为 Red Hat 软件包管理程序 从那以后 RPM 逐渐称为许多其他 Linux 发行版所接受的一种软件包格式 Linux 标准化规范将 RPM 作为其官方软件包格式 RPM 的主要优点 使用广泛

大家好,我是讯享网,很高兴认识大家。

RPM包简介

  • RPM 全名 RedHat Package Managerment,一开始只是Red Hat Linux的软件包格式,它最初的名字为Red Hat软件包管理程序。从那以后,RPM逐渐称为许多其他Linux发行版所接受的一种软件包格式。Linux标准化规范将RPM作为其官方软件包格式。

RPM的主要优点

  • 使用广泛。许多Linux发行版至少都可以安装RPM软件包,或者将RPM作为它的标准软件包格式。
  • 能够只用一条命令来安装软件包。同样,删除或升级软件包也只需要一条命令。
  • 只需要处理一个文件。一个RPM软件包就保存在一个单独的文件中,这使得在不同系统之间传输软件包变得非常容易。
  • RPM自动处理软件包之间的依赖关系检查。RPM系统包含一个数据库,该数据库中记录了已安装的所有软件包的信息,包括每个软件包所提供的内容以及安装每个软件包的要求。
  • RPM软件包设计为由 “最干净” 的源代码而来,从而可以对它进行重新编译。RPM支持如patch这样的linux工具,可以在编译过程中为软件的源代码打上补丁。

RPM包目录结构

  • BUILD:rpmbuild命令在这个目录中建立软件
  • RPMS:制作完成后的RPM存放目录
  • SOURCES:存放应用程序源文件的目录
  • SPECS:存放SPEC文件的目录
  • SRPMS:rpmbuild命令将在这个目录中放置RPM源代码软件包
  • BUILDROOT:虚拟安装目录,在整个install的过程中临时安装到此目录,把这个目录当做根来使用。所有在这个目录下的文件才是真正的目录文件,最后SPEC文件中有清理阶段,这个目录下的内容将被删除。

SPEC文件介绍

  • RPM包的SPEC文件有许多配置信息,包含:软件基础信息、安装卸载前后执行的脚本、对源码包打补丁、解压、编译、安装等。
  • Name : 软件名称
  • Summary: 软件包的内容
  • Version: 软件版本号
  • Release: 发布序列号,为1表示第一次创建
  • Group: 软件分组,建议使用:Applications/System
  • License: 软件授权方式GPLv2
  • Source: 源码包,可以带多个用Source1、Source2等源,后面也可以用%{source1}、%{source2}引用
  • BuildRoot: 这个是安装或编译时使用的临时目录,即模拟安装完以后生成的文件目录:%_topdir/BUILDROOT 后面可使用$RPM_BUILD_ROOT 方式引用。
  • URL: 软件的URI
  • Vendor: 打包组织或者人员
  • %description: 软件的详细说明
  • %define: 预定义的变量,例如定义日志路径: _logpath /var/log/weblog
  • %prep: 预备参数,通常为 %setup -q
  • %build: 编译参数 ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx/……
  • %install: 安装步骤,此时需要指定安装路径,创建编译时自动生成目录,复制配置文件至所对应的目录中
  • %pre: 安装前需要做的任务,如:创建用户
  • %post: 安装后需要做的任务 如:自动启动的任务
  • %preun: 卸载前需要做的任务 如:停止任务
  • %postun: 卸载后需要做的任务 如:删除用户,删除/备份业务数据
  • %clean: 清除上次编译生成的临时文件,就是上文提到的虚拟目录
  • %files: 设置文件属性,包含编译文件需要生成的目录、文件以及分配所对应的权限

制作RPM包

  • 创建目录
  • 制作spec文件。

    • 直接在SPECS下创建一个spec文件,无特殊需求可使用以下模板
    •  Name: smallwolf Version: 1.0.0 Release: 1%{ 
             ?dist} Summary: this is small gray wolf Buildroot: %{ 
             _tmppath}/%{ 
             name}-%{ 
             version}-root License: GPL URL: http://www.csdn.net Source0: %{ 
             name}-%{ 
             version}.tar.gz %description This package is small gray wolf %prep %setup -q %install rm -rf %{ 
             buildroot} mkdir -p %{ 
             buildroot}/opt/smallwolfres cp -r %{ 
             _builddir}/smallwolf-1.0.0/opt/smallwolfres/* %{ 
             buildroot}/opt/smallwolfres %post mkdir -p /opt/smallwolfres chmod 0755 /opt/smallwolfres %files /opt/smallwolfres %postun rm -rf /opt/smallwolf echo "clean /opt/smallwolf" %changelog * Wed Jul 4 2018 VBird Tsai <> 0.1 - Build the program 

      讯享网
  • 制作打包文件
    • 在SOURCES目录下压缩smallwolf-1.0.0目录
    • 讯享网 tar -zcvf smallwolf-1.0.0.tar.gz smallwolf-1.0.0/ 
    • 拷贝 SOURCES/smallwolf-1.0.0.tar.gz到rpmbuild/BUILD下,在rpmbuild目录下执行
    •  rpmbuild --define "_topdir ${ 
              PWD}" -bb "${ 
              PWD}/SPECS/smallwolf.spec" 
    • 执行完该命令,如果成功,会在rpmbuild/RPMS/x86_64目录下生成一个rpm后缀的安装包

RPM包安装和卸载

  • 安装
  • rpm -ivh smallwolf-1.0.0-1.el8.x86_64.rpm
  • 卸载
  • rpm -e --nodeps smallwolf
  • 解压rpm包
  • rpm2cpio smallwolf-1.0.0-1.el8.x86_64.rpm | cpio -ivdm
小讯
上一篇 2025-02-15 22:36
下一篇 2025-01-23 22:47

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/12049.html