zoukankan      html  css  js  c++  java
  • 手动制作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、安装时,对依赖库的需求;

  • 相关阅读:
    百度mp3地址解密码
    VB 在EXE后附加信息
    截屏函数
    Base64和StrToByte
    The Android ION memory allocator, DMABUF is mentioned as well
    DDC EDID 介绍
    Memory management for graphic processors TTM的由来
    科普 写display driver的必看 How video card works [2D的四种主要操作]
    GEM vs TTM
    DMABUF 背景介绍文章 Sharing buffers between devices
  • 原文地址:https://www.cnblogs.com/chris-cp/p/4102694.html
Copyright © 2011-2022 走看看