昨天写过一个使用rpm 打包分发pg 扩展的demo,今天使用deb 进行打包分发,同时使用checkinstall 生成我们的deb包

安装deb 依赖

  1. sudo apt-get install checkinstall build-essential automake autoconf libtool pkg-config libcurl4-openssl-dev intltool libxml2-dev libgtk2.0-dev libnotify-dev libglib2.0-dev libevent-dev

clone pg 扩展代码

  1. git clone https://github.com/rongfengliang/nvl-pg-extension.git

使用checkinstall 生成deb 包

  • 命令
  1. checkinstall

效果

  1. checkinstall
  2. checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
  3. This software is released under the GNU GPL.
  4. The package documentation directory ./doc-pak does not exist.
  5. Should I create a default set of package docs? [y]: y
  6. Preparing package documentation...OK
  7. Please write a description for the package.
  8. End your description with an empty line or EOF.
  9. >> this is a oracel like nvl function for pg

修改Version 的名称,使用数字开头,这个是约定,按照以下提示输入3操作即可,比如0.1

  1. This package will be built according to these values:
  2. 0 - Maintainer: [ root@iZ2zec9crwxl1n9hb7hxgpZ ]
  3. 1 - Summary: [ demo ]
  4. 2 - Name: [ nvl-pg ]
  5. 3 - Version: [ extension ]
  6. 4 - Release: [ 1 ]
  7. 5 - License: [ GPL ]
  8. 6 - Group: [ checkinstall ]
  9. 7 - Architecture: [ amd64 ]
  10. 8 - Source location: [ nvl-pg-extension ]
  11. 9 - Alternate source location: [ ]
  12. 10 - Requires: [ ]
  13. 11 - Provides: [ nvl-pg ]
  14. 12 - Conflicts: [ ]
  15. 13 - Replaces: [ ]

deb 包生成日志

  1. nter a number to change any of them or press ENTER to continue:
  2. Installing with make install...
  3. ========================= Installation results ===========================
  4. /bin/mkdir -p '/usr/share/postgresql/10/extension'
  5. /bin/mkdir -p '/usr/share/postgresql/10/extension'
  6. /usr/bin/install -c -m 644 .//nvlfunc.control '/usr/share/postgresql/10/extension/'
  7. /usr/bin/install -c -m 644 .//nvlfunc--1.0.sql '/usr/share/postgresql/10/extension/'
  8. ======================== Installation successful ==========================
  9. Copying documentation directory...
  10. ./
  11. ./README.md
  12. Copying files to the temporary directory...OK
  13. Stripping ELF binaries and libraries...OK
  14. Compressing man pages...OK
  15. Building file list...OK
  16. Building Debian package...OK
  17. Installing Debian package...OK
  18. Erasing temporary files...OK
  19. Writing backup package...OK
  20. OK
  21. Deleting temp dir...OK
  22. **********************************************************************
  23. Done. The new package has been installed and saved to
  24. /opt/deb-app/nvl-pg-extension/nvl-pg_0.1-1_amd64.deb
  25. You can remove it from your system anytime using:
  26. dpkg -r nvl-pg
  27. **********************************************************************
  • 说明
    需要删除copy的文件,这点不如rpm 好(rpm 有一个buildroot 的目录),checkinstall 直接就安装了
  • 生成的文件
  1. ├── Makefile
  2. ├── README.md
  3. ├── backup-040420191431-pre-nvl-pg.tgz
  4. ├── description-pak
  5. ├── doc-pak
  6. └── README.md
  7. ├── nvl-pg_0.1-1_amd64.deb
  8. ├── nvlfunc--1.0.sql
  9. └── nvlfunc.control

安装

  • 安装
  1. dpkg -i nvl-pg_0.1-1_amd64.deb
  • 效果
  1. (Reading database ... 115363 files and directories currently installed.)
  2. Preparing to unpack nvl-pg_0.1-1_amd64.deb ...
  3. Unpacking nvl-pg (0.1-1) over (0.1-1) ...
  4. Setting up nvl-pg (0.1-1) ...
  5. Processing triggers for postgresql-common (199.pgdg18.04+1) ...
  6. Building PostgreSQL dictionaries from installed myspell/hunspell packages...
  7. Removing obsolete dictionary files:

pg 扩展目录

  1. find /usr/share/postgresql/10/extension/ -name nvlfunc.control
  2. /usr/share/postgresql/10/extension/nvlfunc.control

说明

使用checkinstall 方式打包deb 包还是很方便的,简单,省事

参考资料

https://www.ostechnix.com/create-deb-file-source-ubuntu-16-04/

 
 
 
 

使用deb 打包开发的postgres extension的更多相关文章

  1. 使用deb 打包开发的postgres extension 另外一种方法

    已经写过一个deb 包打包的方法,我们同时也可以使用dpkg-deb 命令 安装依赖工具包 推荐安装全点的 sudo apt-get install build-essential autoconf ...

  2. 使用rpm 打包开发的postgres extension

      环境准备 安装依赖包 rpmdevtools rpm-build yum install -y rpm-build rpmdevtools 初始化rpm pacakge 项目 主要是rpm 打包的 ...

  3. linux软件deb打包及开机管理员自启动

    环境:Ubuntu 18.04/16.04  Qt:5.12.6 一 deb打包 1.建立目录结构 2.目录内容 1) 子目录DC520: Get以上内容步骤: (1)   创建目录DC520(自己软 ...

  4. Swift开发第二篇——extension及fatalError

    本篇分两部分: 一.extension在 Swift 中的使用 二.Swift 中的 fatalError 一.extension在 Swift 中的使用 在 swift 中我们可以通过 extens ...

  5. ubuntu deb pacakge 开发

    安装构建工具 apt-get install pbuilder 推荐安装 sudo apt-get install build-essential autoconf automake \ autoto ...

  6. 树莓派.Qt.打包开发好的程序并运行的方法

    Qt开发的软件, 想要部署在树莓派上运行, 需要进行打包和发布 主要步骤如下: 1. 找1个树莓派用于开发与打包, 所以需要在它上面安装Qt开发环境 树莓派上安装Qt的方法, 可以看这里>> ...

  7. SAP成都研究院安德鲁:自己动手开发一个Chrome Extension

    各位好,我叫何金鑫(He Andrew), 团队同事亲切地称呼在下为安德鲁.如果你在附近找到wifi热点名为 「安德鲁森面包房5g」,可能是我就在附近,我们可以去喝杯咖啡,聊聊最近有趣的东西. 鄙人现 ...

  8. [nghttp2]压测工具,源码编译并进行deb打包过程

    编译环境:deepin 15.11桌面版 nghttp2下载地址:https://github.com/nghttp2/nghttp2 环境要求 emm只能在类Linux环境才能完整编译,想在Wind ...

  9. VUE 如何分环境打包(开发/测试/生产)配置

    前言 之前小玲一直处于更新,迭代项目的状态,开发环境.测试环境.生产环境都是前辈配置好的,自己几乎没有配置过,这次做几个新项目时,面临着上线,需要分环境打包配置,于是在网上遨游了一会会,摸索着按照网上 ...

随机推荐

  1. VUE本身是不支持IE的,可用babel-polyfill解决

    一般来说VUE本身是不支持IE的,但是可以用特殊的方法来解决,亲测可用第一步:下载插件 cnpm install --save babel-polyfill第二步:入口文件main.js引入( imp ...

  2. 雷林鹏分享:jQuery EasyUI 数据网格 - 条件设置行背景颜色

    jQuery EasyUI 数据网格 - 条件设置行背景颜色 本教程将向您展示如何根据一些条件改变数据网格(datagrid)组件的行样式.当 listprice 值大于 50 时,我们将为该行设置不 ...

  3. 雷林鹏分享:jQuery EasyUI 数据网格 - 扩展行显示细节

    数据网格(datagrid)可以改变它的视图(view)来显示不同的效果.使用详细视图,数据网格(datagrid)可以在数据行的左边显示展开按钮("+" 或者 "-&q ...

  4. CentOS7下mariadb日常管理

    在CentOS7下,官方提供的mysql的rpm包就是mariadb,可查看mariadb包信息 [root@host ~]$rpm -qi mariadb # 需要先安装该包 Name : mari ...

  5. SQL SERVER 事务的使用(tran)

    sql server事务的使用是为了确保数据的一致性. 通常写法 begin tran --sql 语句1 --sql 语句2 --sql 语句3 commit tran 上面写法存在隐患,当操作(增 ...

  6. [spring源码] 小白级别的源码解析IOC容器的依赖注入(三)

    上一篇介绍了ioc容器的初始化过程,主要完成了ioc容器建立beanDefinition数据映射.并没有看到ioc容器对bean依赖关系进行注入. 接口getbean就是出发依赖注入发生的地方.下面从 ...

  7. spark获取时间

    在spark 中获取时间用到java.util.{Calendar,Date} 以及java.text.SimpleDateFormat来对时间输出格式作规范 首先先导入包 import java.t ...

  8. spring boot的热加载(hotswap)

    官网上是叫hotswap,有人翻译成热部署,有人翻译成热加载 个人倾向于使用热加载在这个词,和谷歌翻译的热插拔相似. 关于个人理解 http://www.cnblogs.com/ptqueen/p/8 ...

  9. linux c使用socket进行http 通信,并接收任意大小的http响应(五)

    http.c data2.c http_url.c http.h data2.h http_url.h主要实现的功能是通过URL结构体来实现HTTP通信,你可以把这三个文件独立出来,作为HTTP通信模 ...

  10. nopi 简洁笔记

    导出excel /// <summary> /// 增加二维码 /// </summary> /// <param name="dt">< ...