将 PostgreSQL 扩展打包到.deb
Ubuntu 文件中的最简单方法是什么(截至 18.04)?
我进行了一些搜索,但发现了许多不同的建议(有些已过时)。
假设我想打包一个简单的 postgres 扩展,例如first 和 last 聚合函数。
这个 StackOverflow 答案建议人们应该首先手动创建一个目录结构,如下所示:
ProgramName-Version/
ProgramName-Version/DEBIAN
ProgramName-Version/DEBIAN/control
ProgramName-Version/usr/
ProgramName-Version/usr/bin/
ProgramName-Version/usr/bin/your_script
然后dpkg -b /path/to/the/ProgramName-Version
在设置正确的文件权限后。
其他人建议使用dh-make,而Ubuntu Packaging Guid建议使用一些基于bzr
.
但我认为 PostgreSQL 有自己的扩展构建基础设施,称为PGXS(从 PostgreSQL 12.x 开始)。我发现 PGXS 非常易于使用,因为我自己不必担心文件夹结构,并且make install
无论 PostgreSQL 版本如何,我都会将文件复制到正确的系统目录中。
有没有办法结合上面的手动方法和 PGXS 方法来自动创建 PostgreSQL 扩展作为.deb
文件?
当然。首先,您需要创建一个
debian/
目录,其中包含从其他扩展名复制的文件control
。PGDG Apt 存储库rules
中有很多示例。如果您还没有,请在您的 APT 源代码中添加以下行(bionic 是 Ubuntu 18.04 的代号):要查看软件包列表:
apt search 'postgresql-*'
要下载源代码:
apt source name-of-package
一旦您的 debian 目录良好并且安装了依赖项,基本上您就可以
dpkg-buildpackage -rfakeroot -b
像任何其他 Debian 软件包一样为扩展构建软件包。