• vigil deb 包制作


    前边有写过简单rpm 包的制作,现在制作一个简单的deb 包。

    deb 包的制作是通过源码编译+ fpm

    环境准备

    • rust
    curl https://sh.rustup.rs -sSf | sh
    • 配置nightly 版本
    rustup install nightly-2019-05-14
    rustup default nightly-2019-05-14
    • debian 系统配置
      可能需要的一些依赖比如git pkg_config
     
    apt-get update
    apt-get install git pkg_config

    clone 代码

    • github 代码
    git clone https://github.com/rongfengliang/myvigil-multiemail.git

    编译vigil

    cd myvigil-multiemail && cargo build --release

    安装fpm

    sudo apt-get update
    sudo apt-get install ruby-dev build-essential
    sudo gem install fpm

    构建deb 包

    • 命令
    fpm -s dir -t deb -n vigil --config-files /etc/vigil.cfg -v 2.0 ./vigil=/usr/bin/ ./vigil.cfg=/etc/ ./res=/etc/vigil/ ./vigil.service=/lib/systemd/system/vigil.service
    • deb 包项目结构
    ├── res
    ├── vigil
    ├── vigil.cfg
    ├── vigil.service
    • 构建效果
    fpm -s dir -t deb -n vigil --config-files /etc/vigil.cfg -v 2.0 ./vigil=/usr/bin/ ./vigil.cfg=/etc/ ./res=/etc/vigil/ ./vigil.service=/lib/systemd/system/vigil.service
    Debian packaging tools generally labels all files in /etc as config files, as mandated by policy, so fpm defaults to this behavior for deb packages. You can disable this default behavior with --deb-no-default-config-files flag {:level=>:warn}
    Created package {:path=>"vigil_2.0_amd64.deb"}
    • 安装试用
    dpkg -i vigil_2.0_amd64.deb
     

    效果

    dpkg -i vigil_2.0_amd64.deb
    (Reading database ... 50480 files and directories currently installed.)
    Preparing to unpack vigil_2.0_amd64.deb ...
    Unpacking vigil (2.0) over (2.0) ...
    Setting up vigil (2.0) ...
    Installing new version of config file /etc/vigil.cfg ...
     
    • 启动
    systemctl start vigil

    几个问题

    • libssl.so.10 && libcrypto.so.10
      查看依赖方法:
      使用ldd
      如下:
     
    ldd /usr/bin/vigil 
     linux-vdso.so.1 (0x00007fff72106000)
     libssl.so.10 => not found
     libcrypto.so.10 => not found
     libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff86c28c000)
     librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff86c084000)
     libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff86be67000)
     libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff86bc50000)
     libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff86b8b1000)
     libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff86b5ad000)
     /lib64/ld-linux-x86-64.so.2 (0x00007ff86cc68000)

    说明:
    这个是操作系统版本的依赖包的问题,解决方法可以通过重新下载openssl-1.0.1e
    参考如下:

     
    wget https://www.openssl.org/source/old/1.0.1/openssl-1.0.1e.tar.gz
    ./config shared zlib-dynamic
    make

    参考资料

    https://github.com/rongfengliang/myvigil-multiemail 
    https://fpm.readthedocs.io/en/latest/intro.html 
    https://github.com/rongfengliang/vigil-rpm/releases/tag/v2.0

  • 相关阅读:
    conda安装使用
    数据库删除后台代码
    表格显示数据库(html和php混编)
    唯一用户名jquery和PHP代码
    //阿贾克斯提交数据库
    //向数据库添加数据(form表单提交)
    //conn数据库配置
    Css 变量
    input标签让光标不出现
    Es6Class
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/11067094.html
Copyright © 2020-2023  润新知