• CentOS系统制作RPM包


    打包编译好的命令,即可直接安装使用

    #使用yum可解决依赖问题
    [root@localhost ~]# yum -y localinstall *.rpm   
    

    一、使用fpm工具直接打包。

    Fpm安装

    fpm是ruby写的,系统环境需要ruby,且ruby版本大于1.8.5

    [root@localhost ~]# yum -y install ruby rubygems ruby-devel
    

    查看当前rubygem仓库

    [root@localhost ~]# gem sources list
    

    安装fpm,gem从rubygem仓库安装软件类似于yum安装。

    #CentOS 6 安装方式
    [root@localhost ~]# gem install json -v 1.8.3
    [root@localhost ~]# gem install fpm -v 1.3.3
    
    #CentOS 7 安装方式
    [root@localhost ~]# gem install fpm
    

    fpm常见参数,详情查看man帮助。

    -s 指定源类型

    -t 指定目标类型,就是你想要制作什么包

    -n 指定包的名字

    -v 指定包的版本号

    -C 指定打包的相对路径

    -d 指定依赖于哪些包

    打包实例

    #把编译好的文件按绝对路径创建相应的目录,并移动到位,如htop命令的目录结构如下
    ./htop/
    └── usr
        ├── local
        │   └── bin
        │       └── htop
        └── share
            ├── applications
            │   └── htop.desktop
            ├── man
            │   └── man1
            │       └── htop.1
            └── pixmaps
                └── htop.png
    
    #切换目录
    [root@localhost ~]# cd htop
    #执行fpm打包命令
    [root@localhost htop]# fpm -s dir -t rpm -n htop -v 2.2.0 ./usr/
    Created package {:path=>"htop-2.2.0-1.x86_64.rpm"}
    

    此时会在当前目录下生成rpm包

    [root@localhost htop]# ls
    htop-2.2.0-1.x86_64.rpm  usr
    

    使用rpm命令在另一台服务器上安装该软件包

    [root@localhost ~]# rpm -vhi htop-2.2.0-1.x86_64.rpm 
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:htop-2.2.0-1                     ################################# [100%]
    

    二、使用rpmbuild工具制作

    安装工具

    [root@localhost ~]# yum install rpmdevtools
    

    执行如下rpmdev-setuptree生成rpmbuild的工作目录

    [root@localhost ~]# rpmdev-setuptree
    

    查看工作目录

    [root@localhost ~]# tree rpmbuild/
    rpmbuild/
    ├── BUILD       #打包过程中的工作目录
    ├── RPMS        #存放生成的二进制包
    ├── SOURCES     #放置打包资源,包括源码打包文件和补丁文件等
    ├── SPECS       #放置SPEC文档
    └── SRPMS       #存放生成的源码包
    

    切换目录

    [root@localhost ~]# cd ~/rpmbuild/SPECS/
    

    会自动生成模板,修改即可

    [root@localhost SPECS]# vim myrpm.spec
    
    Name:       nginx
    Version:    1.15.2
    Release:    1%{?dist}
    Summary:    Asdas
    
    License:    GPL
    URL:        http://www.localhost
    Source0:    http://ftp.gnu.org/gnu/hello/%{name}-%{version}.tar.gz
    
    BuildRequires:  gettext
    
    %description
    Garena self-build Nginx.
    
    %prep
    %setup -q
    
    
    %build
    ./configure --prefix=/usr/local/nginx 
    --user=nginx 
    --group=nginx 
    --pid-path=/usr/local/nginx/run/nginx.pid 
    --with-http_ssl_module 
    --with-http_stub_status_module
    
    
    make %{?_smp_mflags}
    %install
    make install DESTDIR=%{buildroot}
    
    %files
    %defattr(-,root,root,-)
    /usr/local
    
    
    %changelog
    
    

    执行打包命令

    [root@localhost ~]# rpmbuild -bb htop2.2.0.spec  
    


    作者:Outsrkem
    出处:https://www.cnblogs.com/outsrkem/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    LUA脚本中的方法使用冒号和点,以及调用者使用冒号和点
    Lua类对象的继承
    Lua类对象和类对象的单例
    toLua使用protobuf协议转Lua表
    关于Lua表的弱引用
    Lua-面向对象中函数使用时冒号(:)和点(.)的区别
    Python【day 14-5】sorted filter map函数应用和练习
    Python【day 14-4】sorted filter map+递归文件夹+二分法查找
    Python【day 14-3】二分法查找
    Python【day 14-2】递归遍历文件夹
  • 原文地址:https://www.cnblogs.com/outsrkem/p/11073313.html
Copyright © 2020-2023  润新知