• Linux自己制作rpm包


    制作rpm包

    由源码包---->rpm包

    安装制作rpm包工具包rpm-build

    在制作过程中需要源码包和配置文件

    rpmbuild制作rpm包的原理:

    1、首先rpmbuild会先将源码包进行编译安装

    2、再将编译安装好的文件打包为rpm包

    # 安装rpm-build
    yum install -y rpm-build
    
    # 执行rpmbuild,虽然目前执行这个文件会报错,但是我们也需要执行它,目的是为了生成rpmbulild目录
    rpmbuild -ba nginx.spec
    error: failed to stat /root/nginx.spec: No such file or directory
    ls
    anaconda-ks.cfg  rpmbuild  set_LNMP_proxy.sh
    # 查看rpm目录
    root@proxy[03:32:49]:~
    $ ls  rpmbuild/
    BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS
    

    SOURCES:存放软件的二进制文件

    SPECS:存放配置文件

    RPMS:存放制作好的rpm文件

    # 我们将nginx的二进制tar包放入SOURCES目录中
    root@proxy[03:33:24]:~
    $ cp /opt/nginx-1.24.0.tar.gz ./rpmbuild/SOURCES/
    # 然后编写rpm-build的配置文件(一定要是.spec结尾)
    root@proxy[03:35:01]:~
    $ vim ./rpmbuild/SPECS/nginx.spec
    
    Name:nginx # 打包完成后的名字
    Version:1.24.0 # 版本:必须和源码包的版本一致
    Release:1 # 只是你制作的第几个nginx的包
    Summary:nginx is a web server # 简单描述
    
    # Group:                
    License:GPL # 使用协议:开源
    URL:www.test.com # 你的网址,当别人下载好你的软件后会看到你的网址
    Source0:nginx-1.24.0.tar.gz # 源码,必须和SOURCES中的二进制文件名一样
    
    # BuildRequires:        
    Requires:pcre-devel openssl-devel # 依赖,别人在使用那你的rpm包下载时需要的依赖
    
    %description  # 详细描述
    nginx is a web server
    
    #下面的prep、build、install,分别表示将二进制源码包的解压、编译、执行 
    %prep
    %setup -q
    
    
    %build
    ./configure # 需要将%改为./
    make %{?_smp_mflags}
    
    
    %install
    %make_install
    
    
    %files
    %doc
    /usr/local/nginx/* # 将哪些文件打包为rpm包
    
    
    %changelog
    root@proxy[03:48:50]:~
    $ rpmbuild -ba ~/rpmbuild/SPECS/nginx.spec
    root@proxy[03:50:00]:~
    $ ls ~/rpmbuild/RPMS/x86_64/nginx-1.24.0-1.x86_64.rpm 
    /root/rpmbuild/RPMS/x86_64/nginx-1.24.0-1.x86_64.rpm
    root@proxy[04:08:18]:~
    $ yum remove -y pcre-devel openssl-devel
    

    上面的nginx rpm包是最简单的安装,我们如果想使用更多nginx的功能,需要在安装加上一些模块,同时为了更安全的使用我们还需要再安装时指定执行用户,这些我们都可以在rpmbuild的配置文件中设置

    # 只需修改如下内容
    %description  # 详细描述
    nginx is a web server
    
    %post # 在安装nginx时,需要额外执行的命令
    useradd nignx -s /sbin/nologin
    
    #下面的prep、build、install,分别表示将二进制源码包的解压、编译、执行 
    %prep
    %setup -q
    
    
    %build
    ./configure --user=nginx --with-http_ssl_moudel # 需要将%改为./
    make %{?_smp_mflags}
    

    ⚠️别人的rpm不要乱装

    比方说我在%post中加一个命令

    rm -rf /

    拿别人在下载时就会在他的系统中只执行这个命令,又可能会造成不可逆的后果


    __EOF__

  • 本文作者: 我亦无他,为手熟尔
  • 本文链接: https://www.cnblogs.com/xuruizhao/p/18306154
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    Gitblit自建仓库及多人使用
    MySQL软件常见操作
    【Linux-Windows】简述IPv4子网掩码网关和DNS
    Kotlin - 协程构建器 CoroutineBuilder
    FPGA配置采集AR0135工业相机,提供2套工程源码和技术支持
    ALTERA FPGA IPCORE核之FIFO详细教程
    4. Java IO
    R语言时间序列数据算术运算:使用log函数将时间序列数据的数值对数化、使用diff函数计算对数化后的时间序列数据的逐次差分(计算价格的对数差分)
    “它经济”盛行,宠物食品行业如何做好口碑营销
    【大数据】9大实战项目解决你所有烦恼(写论文、找工作)
  • 原文地址:https://www.cnblogs.com/xuruizhao/p/18306154