已经写过一个deb 包打包的方法,我们同时也可以使用dpkg-deb 命令

安装依赖工具包

  • 推荐安装全点的
sudo apt-get install build-essential autoconf automake \
autotools-dev dh-make debhelper devscripts fakeroot \
xutils lintian pbuilder

项目结构

可以参考github项目https://github.com/rongfengliang/nvl-pg-extension

  • 项目代码结构
├── DEBIAN
│ └── control
├── Makefile
├── README.md
├── nvlfunc--1.0.sql
├── nvlfunc.control
└── usr
└── share
└── postgresql
└── 10
└── extension
├── nvlfunc--1.0.sql
└── nvlfunc.control
  • 说明
    DEBIAN/control 以及usr/ 目录内容是核心

打包说明

  • control 文件
Package: nvl-pg-extension
Version: 0.2
Maintainer: dalongrong
Architecture: all
Description: nvl-pg-extension
  • deb 包内容
    手工创建 usr/share/postgresql/10/extension 目录并添加deb包需要的文件,实际上需要的就是nvlfunc--1.0.sql nvlfunc.control

  • 打包

dpkg-deb --build nvl-pg-extension/

效果

dpkg -i nvl-pg-extension.deb
(Reading database ... 115428 files and directories currently installed.)
Preparing to unpack nvl-pg-extension.deb ...
Unpacking nvl-pg-extension (0.2) over (0.2) ...
Setting up nvl-pg-extension (0.2) ...
Processing triggers for postgresql-common (199.pgdg18.04+1) ...
Building PostgreSQL dictionaries from installed myspell/hunspell packages...
Removing obsolete dictionary files:

效果

dpkg-deb --build nvl-pg-extension/
dpkg-deb: building package 'nvl-pg-extension' in 'nvl-pg-extension.deb'.
  • 安装包
dpkg -i nvl-pg-extension.deb

说明

此种方法比较简单,实际上control 文件可以做好多事情,比如make build。。。,可以参考下面的连接

参考资料

https://coderwall.com/p/urkybq/how-to-create-debian-package-from-source
https://github.com/rongfengliang/nvl-pg-extension
http://www.king-foo.com/2011/11/creating-debianubuntu-deb-packages/
https://www.debian.org/doc/debian-policy/ch-controlfields.html

 
 
 
 

使用deb 打包开发的postgres extension 另外一种方法的更多相关文章

  1. 使用deb 打包开发的postgres extension

    昨天写过一个使用rpm 打包分发pg 扩展的demo,今天使用deb 进行打包分发,同时使用checkinstall 生成我们的deb包 安装deb 依赖 sudo apt-get install c ...

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

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

  3. IOS开发中数据持久化的几种方法--NSUserDefaults

    IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefaul ...

  4. iOS开发之动画编程的几种方法

    iOS开发之动画编程的几种方法 IOS中的动画总结来说有五种:UIView<block>,CAAnimation<CABasicAnimation,CATransition,CAKe ...

  5. (OPC Client .NET 开发类库)网上很多网友都有提过,.NET开发OPC Client不外乎下面三种方法

    1. 背景 OPC Data Access 规范是基于COM/DCOM定义的,因此大多数的OPC DA Server和client都是基于C++开发的,因为C++对COM/DCOM有最好的支持.现在, ...

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

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

  7. iOS开发进阶-实现多线程的3种方法

    相关文章链接: 1.多线程简介 2.实现多线程的3种方法 ......待续 前言 在多线程简介中,我已经说明过了,为了提高界面的流畅度以及用户体验.我们务必要把耗时的操作放到别的线程中去执行,千万不要 ...

  8. Hive开发中使用变量的两种方法

    在使用hive开发数据分析代码时,经常会遇到需要改变运行参数的情况,比如select语句中对日期字段值的设定,可能不同时间想要看不同日期的数据,这就需要能动态改变日期的值.如果开发量较大.参数多的话, ...

  9. (转载)Eclipse将引用了第三方jar包的Java项目打包成可执行jar的两种方法

    转载自:http://www.cnblogs.com/lanxuezaipiao/p/3291641.html 方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 "MA ...

随机推荐

  1. sublime设置html在浏览器打开

    1.快捷键 Ctrl+Shift+P输入:pcip选择第一个 2.输入:View In Browser安装此插件 3.菜单栏Preferences->Key Bindings  输入:[{ &q ...

  2. js 可以表示的最大值

    , ); ; ; for (var i = START; i <= END; i++) { count++; } console.log(count); // A. 0 // B. 100 // ...

  3. windows server2008 IIS搭建网站简易教程(阿里云)

    最近搞了个阿里云服务器 想着需要用这个服务器学点东西,故而想着把自己之前写的网站能部署上去,虽然自己是做前端移动开发,但是对这个服务器的东西也很感兴趣 第一步 配置阿里云入口规则 如图开放81 80 ...

  4. git项目远程地址修改后本地如何处理

    今天运维人员为了方便管理,将远程的项目地址给迁移了, 原来是 git@git.lalala.com:yuanlaide/happy.git 变成了 git@git.lalala.com:houlaid ...

  5. edu30F. Forbidden Indices

    题意:给你一个字符串s有一些位置被ban了,字符串t的价值是|t|*t在s中出现次数而且终点没有被ban.问你最大的价值是多少 题解:很明显t是s子串,建个sam,对于sam中每个位置,我们需要删除中 ...

  6. MongoDB AUTH结果验证及开启方法

          创建超级管理员(root)和普通用户(gxpt) #创建超级管理员(root) RS1:PRIMARY> use admin RS1:PRIMARY> db.createUse ...

  7. 5、Angular的一些其他核心特性,学习的主要模块

    Angular应用程序的八个主要构造块: 模块 组件 模板 元数据 数据绑定 指令 服务 依赖注入 其他重要的Angular特性和服务: 动画 表单 HTTP 组件生命周期 管道过滤器 路由 测试

  8. java虚拟机之虚拟机类加载机制

    此处主要需要知道什么是java虚拟机?java虚拟机如何进行类加载的? java语言本身是编译型和解释型的语言,先对本地的java文件进行编译,编译后会在本地生成一个class文件,而这个生成的cla ...

  9. 64位win7连接ACCESS报错“Microsoft.Jet.OLEDB.4.0”问题

    本人开发了桌面软件,关于事务提醒,自己一直在用,很喜欢,但是在64位win7上无法运行,网上说多种方法,都觉得麻烦.后来自己在vs2012下编译成x86版本,结果可以运行在64位win7下了. 原来如 ...

  10. .Netcore使用Session

    1.使用Session(进程内) 在startup中添加方法 services.AddSession  app.UseSession() services.AddDistributedMemoryCa ...