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

安装deb 依赖

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 扩展代码

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

使用checkinstall 生成deb 包

  • 命令
checkinstall

效果

checkinstall

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

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

This package will be built according to these values:

0 - Maintainer: [ root@iZ2zec9crwxl1n9hb7hxgpZ ]
1 - Summary: [ demo ]
2 - Name: [ nvl-pg ]
3 - Version: [ extension ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ amd64 ]
8 - Source location: [ nvl-pg-extension ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ nvl-pg ]
12 - Conflicts: [ ]
13 - Replaces: [ ]

deb 包生成日志

nter a number to change any of them or press ENTER to continue:

Installing with make install...

========================= Installation results ===========================
/bin/mkdir -p '/usr/share/postgresql/10/extension'
/bin/mkdir -p '/usr/share/postgresql/10/extension'
/usr/bin/install -c -m 644 .//nvlfunc.control '/usr/share/postgresql/10/extension/'
/usr/bin/install -c -m 644 .//nvlfunc--1.0.sql '/usr/share/postgresql/10/extension/' ======================== Installation successful ========================== Copying documentation directory...
./
./README.md Copying files to the temporary directory...OK Stripping ELF binaries and libraries...OK Compressing man pages...OK Building file list...OK Building Debian package...OK Installing Debian package...OK Erasing temporary files...OK Writing backup package...OK
OK Deleting temp dir...OK ********************************************************************** Done. The new package has been installed and saved to /opt/deb-app/nvl-pg-extension/nvl-pg_0.1-1_amd64.deb You can remove it from your system anytime using: dpkg -r nvl-pg **********************************************************************
  • 说明
    需要删除copy的文件,这点不如rpm 好(rpm 有一个buildroot 的目录),checkinstall 直接就安装了
  • 生成的文件
├── Makefile
├── README.md
├── backup-040420191431-pre-nvl-pg.tgz
├── description-pak
├── doc-pak
│ └── README.md
├── nvl-pg_0.1-1_amd64.deb
├── nvlfunc--1.0.sql
└── nvlfunc.control

安装

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

pg 扩展目录

find /usr/share/postgresql/10/extension/ -name nvlfunc.control
/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. Webpack + vue 搭建

    前言: 为何使用webpack? 为何相对于gulp&grunt更有优势 WebPack(前往官网)可以看做是模块打包机:直接分析项目结构,找到JavaScript模块以及其它的一些浏览器不能 ...

  2. Font Awesome字体图标的 用法, 很简单

    http://fontawesome.dashgame.com/ 上面是 官网,  可下载,也可以CDN. 1...  加载 2...  用法

  3. java笔记 -- java数据类型与类型转换

    Java是一种强类型语言, 这就意味着必须为每一个变量声明一种类型. Java中一共有8中基本类型: 4种整型: 整型: 用于表示没有小数部分的数值, 允许为负数 类型 存储需求 取值范围 int: ...

  4. 【转】 ISP-镜头阴影校正(LSC)

    转自:https://blog.csdn.net/xiaoyouck/article/details/77206505 介绍镜头阴影校正(Lens Shading Correction)是为了解决由于 ...

  5. linux存储管理之文件系统

    EXT3/4文件系统 ====================================================================================Ext3: ...

  6. Python 小节回顾

    1.python程序是大小写敏感. 2.python中字符串是用单引号 ' 或双引号 " 括起来的任意文本. python中用 r '  ' 表示 ' ' 内部的字符串不转义. 3.在pyt ...

  7. 页面系统,浏览器检测- 网页基础模块(JavaScript)

    // 浏览器检测,获取,弹出框提醒IE 返回浏览器详情 function GetbrowserSys() { var BrowserMatch = { init: function() { this. ...

  8. 数据结构与算法之PHP排序算法(希尔排序)

    一.基本思想 希尔排序算法是希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本. 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接 ...

  9. 在 .NET项目中使用 Redis(2018.10.16)

    1. 打开NuGet管理器搜索redis,安装:“StackExchange.Redis” 2. 配置 Web.config 文件 <connectionStrings> <add ...

  10. 使用VBA,优化处理Excel表格

    前言 上周末,XX给我抱怨:因为计算绩效奖金,把2个人的工资发错了,还被扣了500元.问的缘由得知,她每个月要处理十来个excel表格,每次都要手动修改里面的值,如果修改了一处,其他地方也要修改,然后 ...