使用fpm 方便快速生成postgresql extension分发包
fpm 是一个不错,而且强大的rpm、deb,系统启动服务工具包,我们可以用来快速的生成专业的软件分发包
演示一个pg 扩展包分发包的生成(rpm 以及deb)
安装fpm
sudo gem install --no-ri --no-rdoc fpm
clone pg 扩展项目
代码已经写好了,使用plgo 参考https://www.cnblogs.com/rongfengliang/p/10672695.html
git clone https://github.com/rongfengliang/fpm-pg-extension-package-generate-demo
生成rpm 包
- 生成
fpm -s dir -t rpm -n myplgo-extension ./example--0.1.sql=/usr/pgsql-10/share/extension/ ./example.control=/usr/pgsql-10/share/extension/ ./example.so=/usr/pgsql-10/lib/
- 查看内容
rpm2cpio myplgo-extension-1.0-1.x86_64.rpm | cpio -t
效果
./usr/pgsql-10/lib/example.so
./usr/pgsql-10/share/extension/example--0.1.sql
./usr/pgsql-10/share/extension/example.control
生成deb 包
- 生成
fpm -s dir -t deb -n myplgo-extension ./example--0.1.sql=/usr/pgsql-10/share/extension/ ./example.control=/usr/pgsql-10/share/extension/ ./example.so=/usr/pgsql-10/lib/
- 查看内容
dpkg -c myplgo-extension_1.0_amd64.deb
drwxr-xr-x 0/0 0 2019-04-09 13:08 ./
drwxr-xr-x 0/0 0 2019-04-09 13:08 ./usr/
drwxr-xr-x 0/0 0 2019-04-09 13:08 ./usr/pgsql-10/
drwxr-xr-x 0/0 0 2019-04-09 13:08 ./usr/pgsql-10/lib/
-rw-r--r-- 0/0 3316752 2019-04-09 11:39 ./usr/pgsql-10/lib/example.so
drwxr-xr-x 0/0 0 2019-04-09 13:08 ./usr/pgsql-10/share/
drwxr-xr-x 0/0 0 2019-04-09 13:08 ./usr/pgsql-10/share/extension/
-rw-r--r-- 0/0 1005 2019-04-09 11:39 ./usr/pgsql-10/share/extension/example--0.1.sql
-rw-r--r-- 0/0 92 2019-04-09 11:39 ./usr/pgsql-10/share/extension/example.control
drwxr-xr-x 0/0 0 2019-04-09 13:08 ./usr/share/
drwxr-xr-x 0/0 0 2019-04-09 13:08 ./usr/share/doc/
drwxr-xr-x 0/0 0 2019-04-09 13:08 ./usr/share/doc/myplgo-extension/
-rw-r--r-- 0/0 142 2019-04-09 13:08 ./usr/share/doc/myplgo-extension/changelog.gz
说明
演示的比较简单,主要是使用fpm 也很简单,我们不需要关注太多的包代码细节,直接使用就可以了,主要是进行配置而已
对于需要添加系统服务的也很简单,参考如下:
% fpm -s pleaserun -t rpm -n example /usr/bin/example
% rpm -qlp example-1.0-1.x86_64.rpm
/usr/share/pleaserun/example/generate-cleanup.sh
/usr/share/pleaserun/example/install-path.sh
/usr/share/pleaserun/example/install.sh
/usr/share/pleaserun/example/launchd/10.9/files/Library/LaunchDaemons/example.plist
/usr/share/pleaserun/example/launchd/10.9/install_actions.sh
/usr/share/pleaserun/example/systemd/default/files/etc/default/example
/usr/share/pleaserun/example/systemd/default/files/etc/systemd/system/example.service
/usr/share/pleaserun/example/systemd/default/install_actions.sh
/usr/share/pleaserun/example/sysv/lsb-3.1/files/etc/default/example
/usr/share/pleaserun/example/sysv/lsb-3.1/files/etc/init.d/example
/usr/share/pleaserun/example/upstart/0.6.5/files/etc/default/example
/usr/share/pleaserun/example/upstart/0.6.5/files/etc/init/example.conf
/usr/share/pleaserun/example/upstart/1.5/files/etc/default/example
/usr/share/pleaserun/example/upstart/1.5/files/etc/init/example.conf
参考资料
https://github.com/rongfengliang/fpm-pg-extension-package-generate-demo
https://www.cnblogs.com/rongfengliang/p/10674023.html
https://www.cnblogs.com/rongfengliang/p/10672695.html
https://github.com/rongfengliang/plgo-rpm
https://github.com/rongfengliang/plgo
https://fpm.readthedocs.io/en/latest/intro.html
使用fpm 方便快速生成postgresql extension分发包的更多相关文章
- JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(四):自定义T4模板快速生成页面
前言:上篇介绍了下ko增删改查的封装,确实节省了大量的js代码.博主是一个喜欢偷懒的人,总觉得这些基础的增删改查效果能不能通过一个什么工具直接生成页面效果,啥代码都不用写了,那该多爽.于是研究了下T4 ...
- unix automake 使用,快速生成你的Makefile
使用automake快速生成编译的Makefile 1,确保自己装有的软件automake autoconf 2, 1)执行autoscan 并将生成的configure.scan重命名为config ...
- 代码生成工具更新--快速生成Winform框架的界面项目
在之前版本的代码生成工具Database2Sharp中,由于代码生成都是考虑Winform和Web通用的目的,因此Winform界面或者Web界面都是单独生成的,在工具中生成相应的界面后,复制到项目里 ...
- C#反射实现 C# 反射 判断类的延伸类型 使用代码生成工具Database2Sharp快速生成工作流模块控制器和视图代码 C# ADO.NET的SqlDataReader对象,判断是否包含指定字段 页面中添加锚点的几种方式 .net 简单实用Log4net(多个日志配置文件) C# 常用小点
C#反射实现 一.反射概念: 1.概念: 反射,通俗的讲就是我们在只知道一个对象的内部而不了解内部结构的情况下,通过反射这个技术可以使我们明确这个对象的内部实现. 在.NET中,反射是重要的机制, ...
- 快速生成100W条数据
快速生成100W条数据,生成的时候是顺序生成,取的时候是随机取用,生成100W条数据大概一分多钟,比网上其他代码速度要快很多 )) --truncate table tb --select top 1 ...
- 无需编译、快速生成 Vue 风格的文档网站
无需编译.快速生成 Vue 风格的文档网站 https://docsify.js.org/#/#coverpage https://github.com/QingWei-Li/docsify/
- python快速生成注释文档的方法
python快速生成注释文档的方法 今天将告诉大家一个简单平时只要注意的小细节,就可以轻松生成注释文档,也可以检查我们写的类方法引用名称是否重复有问题等.一看别人专业的大牛们写的文档多牛多羡慕,不用担 ...
- 动态生成一个设定好特殊样式的Tlabel,快速生成代码
动态生成一个设定好特殊样式的Tlabel,快速生成代码: 1.自己先在可视化界面设定一个Label,像这样: 2.选择label,快捷键ctrl+C 复制,粘贴带代码编辑器去,会生成一段这样的窗体代码 ...
- VS快速生成JSON数据格式对应的实体
有固定好的Json数据格式,你还在手动敲对应的实体吗?有点low了!步入正题,这是一个json字符串,先去验证JSON数据格式(http://www.bejson.com/)如下: { & ...
随机推荐
- Ngnix配置
server { listen 80; server_name www.local.test; root /data/workspace; index index.php index.html in ...
- CSS中正确理解浮动以及clear:both的关系
要注意以下几点: 1. 浮动元素会被自动设置成块级元素,相当于给元素设置了display:block(块级元素能设置宽和高,而行内元素则不可以). 2. 浮动元素后边的非浮动元素显示问题. 3. 多个 ...
- C99特性
1.如果编译器支持C99标准那么局部变量的声明可以在语句之后,如: void func(void) { bool status; if(status == true) { status = false ...
- 强化git
[场景1]git 提交本地代码到远程master 1.git init 2.git add . 3.git commit -m " " 4.git remote add origi ...
- 若依项目分模块集成uflo2
关于若依分模块创建项目可参考:https://www.cnblogs.com/conswin/p/9766186.html 了解uflo2,uflo2是一套由BSTEK自主研发的基于Java的工作流引 ...
- prefixspan python
from:https://github.com/chuanconggao/PrefixSpan-py API Usage Alternatively, you can use the algorith ...
- 关于NOIP复赛规模的规定
近年来NOIP初赛参赛人数不断增长,复赛规模也相应扩大,但仍不能满足选手积极参赛及扩大普及面的需求,现对NOIP复赛规模的规则调整如下. 1.每个省赛区可以设立多于两个的复赛考点,但必须在同一个城市, ...
- 在Linux终端安装Julia
官方参考文档:https://julialang.org/downloads/platform.html#generic-binaries 一.centos终端安装 打开Linux终端输入 sudo ...
- kvm恢复和删除快照
使用文件快照的方式实现文件备份,但单说快照(snapshot)的话,他是某一时间点(版本)你能看到的该时间点备份文件状态的全貌,通过文件的快照(全貌)你能恢复到特定时间点(版本)的文件状态. 创建虚拟 ...
- js实现上拉加载思路整理
1.整体模拟滚动 监听touchmove事件,比较 scrollTop 和 $scroller.scrollHeight() - $container.height(). 缺点:滑动不流畅, tran ...