当前位置: 亚洲城ca88 > 亚洲城 > 正文

七基础教程之,RPM包制作方法

时间:2019-06-01 11:31来源:亚洲城

CentOS 7基础教程之 RPM打包

今天为了测试搭建自己的yum仓库并安装升级软件包,因此需要一个rpm包来做测试,所以就想到了自己来做一个最简单rpm,因为仅仅就是做一个测试所以没有添加需要编译的文件,而是只使用了一个shell文件来输出可爱的Hello World。

一、RPM介绍

一、RPM打包的目的

1、当目标机中不存在编译环境时,可以先在本地环境中编译打包,然后直接在目标机中用rpm -ivh *.rpm安装即可。
2、当需要在目标机中安装多个软件或者增加多个文件时,可以将整体打成RPM包,方便使用。
  1. 首先需要下载安装rpm包制作工具

RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;现在应为RPM Package Manager的缩写。在Fedora、RedHat、Mandriva、SUSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用; RPM包中除了包括程序运行时所需要的文件,也有其它的文件;一个RPM包中的应用程序,有时除了自身所带的附加文件保证其正常以外,还需要其它特定版本文件,这就是软件包的依赖关系。

二、RPM打包命令

    $cd ~                                    #进入home目录
    $ sudo yum -y install rpmdevtools        #安装rpm打包所需的工具
    $rpmdev-setuptree                        #生成rpm打包目录
    $cd rpmbuild/SPECS                       #进入SPECS目录
    $rpmdev-newspec  test.spec               #生成spec文件模板
    $mv your_path/source.tar.gz ../SOURCES   #将要打包的源码以tar.gz的格式移动到SOURCES目录

    此时会在home目录下生成一个rpmbuild目录,此目录下有五个子目录
    BUILD 编译时所用的暂存目录
    RPMS 放打包好的二进制rpm包
    SOURCES 放置源代码和补丁文件
    SPECS 放置spec文件
    SRPMS 放置RPM源码包

$ sudo yum install -y rpm-build rpmdevtools

RPM可以让用户直接以binary方式安装软件包,并且可替用户查询是否已经安装了有关的库文件;在用RPM删除程序时,它又会聪明地询问用户是否要删除有关的程序。如果使用RPM来升级软件,RPM会保留原先的配置文件,这样用户就不用重新配置新的软件了。RPM保留一个数据库,这个数据库中包含了所有的软件包的资料,通过这个数据库,用户可以进行软件包的查询。RPM虽然是为Linux而设计的,但是它已经移值到SunOS、Solaris、AIX、Irix等其它UNIX系统上了。RPM遵循GPL版权协议,用户可以在符合GPL协议的条件下自由使用及传播RPM。

三、spec文件简要说明

RPM打包的关键之处就在于spec文件的编写

1、spec基本信息

    Name:                        软件名称
    Version:                     软件版本
    Release:                     发布次数    如: 1%{?dist}
    Summary:                     软件说明
    Group:                       软件分组
    License:                     授权模式,例如 GPL,即自由软件
    URL:                         源码包的URL地址,可随意填写
    Source0:                     源码包,可指定多个,下面可用%{SOURCE0}变量引用
    BuildRoot:                   编译过程中的中间存档目录,考虑到多用户的环境,一般定义为:
                                %{_tmppath}/%{name}-%{version}-%{release}-root ,
                                后面可使用$RPM_BUILD_ROOT 方式引用
    BuildArch:                   平台    %{_arch}
    BuildRequires:               编译过程依赖的工具
    Requires:                    打包生成的rpm包安装时所依赖的软件包
    
	

编辑:亚洲城 本文来源:七基础教程之,RPM包制作方法

关键词: 亚洲城ca88