zoukankan      html  css  js  c++  java
  • 制作GCC的RPM包

    制作RPM包(for gcc)

    注意事项:

    制作RPM包最好不要使用ROOT用户,以防止制作过程中不慎执行有害命令

    需要安装的依赖包:

    $ yum install gcc rpm-build rpm-devel rpmlint make python bash coreutils diffutils patch rpmdevtools
    

    STEP1:

    执行如下命令生成工作区目录:

    $ rpmdev-setuptree
    

    生成的工作区目录结构如下:

    Directory Usage
    BUILD rpmbuild命令构建软件的目录
    RPMS 用于存储生成的rpm包
    SOURCES 所有要用到的源文件(.src .conf)都放在这里,并在spec文件中用source引用
    SPEC 用于存放.spec文件,spec文件是构建rpm包的主要脚本文件
    SRPMS 用于存放.src.rpm文件,此文件无法直接使用,执行rpm -ivh会将源文件放到工作区目录下,仍然需要执行.spec文件进行编译

    STEP2:

    将要使用的源码放到SOURCES目录当中:

    $ cd /root/rpmbuild/SOURCES
    $ wget http://mirrors.ustc.edu.cn/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.gz
    

    STEP3:

    创建gcc.spec文件,编写rpm包构建过程:

    $ cd /root/rpmbuild/SPECS
    $ vim gcc.spec
    
    #gcc.spec
    Summary: Install gcc
    Name: gcc
    Version: 4.8.5
    Release: 1%{?dist}
    License: GPL
    Group: Development/Languages
    Source0: gcc-4.8.5.tar.gz
    
    BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
    
    BuildRequires: gcc-c++ tar libstdc++-devel
    
    %define __debug_install_post   
       %{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"
    %{nil}
    
    %description
    The gcc package contains the GNU Compiler Collection. This package installs
    all compilers in /usr/local/gcc48 directory.
    
    %prep
    %setup -q
    
    %build
    ./contrib/download_prerequisites
    mkdir gcc-build-4.8.5
    cd gcc-build-4.8.5
    #$PWD/../configure --prefix=/usr/local/gcc48 --enable-checking=release --enable-languages=c,c++ --disable-multilib
    $PWD/../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
    %{__make} %{?_smp_mflags}
    
    %install
    %{__rm} -rf %{buildroot}
    cd gcc-build-4.8.5
    %{__make} install DESTDIR=%{buildroot}
    
    %clean
    %{__rm} -rf %{buildroot}
    
    %pre
    
    %post
    echo "/usr/local/lib64" > /etc/ld.so.conf.d/usr_local_lib.conf
    /sbin/ldconfig &> /dev/null
    
    %postun
    
    %files
    %defattr(-, root, root, 0755)
    /usr/local/bin
    /usr/local/include
    /usr/local/lib
    /usr/local/lib64
    /usr/local/libexec
    /usr/local/share
    
    %changelog
    * Tue Apr 23 2019 lei.guo <lei.guo@funplus.com> - 4.8.5-2
    - change
    * Mon Apr 22 2019 lei.guo <lei.guo@funplus.com> - 4.8.5-1
    - test
    
    

    STEP4:

    编译生成二进制RPM包:

    QA_RPATHS=0x0020 rpmbuild -bb gcc.spec
    

    总结:

    • 这里简单的介绍了制作gcc的rpm包的大致方法,详细的rpm包制作过程见rpm包官方指导手册
    • SPEC文件中_tmppath这类变量是其自带的宏,想查看其真实的值可以使用如下命令:
    rpmbuild --showrc | grep _prefix
    
  • 相关阅读:
    搭建一个开源项目8-安装RabbitMQ
    搭建一个开源项目7-Redis缓存安装部署
    Java连载134-连接JDBC
    Java连载133-ResultSet接口的其他方法
    搭建一个开源项目6-安装MySql
    搭建一个开源项目5-安装python双环境以及Maven工程管理工具
    搭建一个开源项目4-安装xFTP,xShell,JDK,NODE
    搭建一个开源项目3-两种方式安装git
    给IE9及其以下等不支持classList属性的浏览器,添加classList属性
    IE9 报错 script1004缺少“;”
  • 原文地址:https://www.cnblogs.com/alexguome/p/13049953.html
Copyright © 2011-2022 走看看