Postgresql

如何在 Ubuntu 中將 PostgreSQL 擴展打包為二進制 .deb 文件?

  • March 11, 2020

將 PostgreSQL 擴展打包到.debUbuntu 文件中的最簡單方法是什麼(截至 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文件?

有沒有辦法結合上面的手動方法和 PGXS 方法來自動創建 PostgreSQL 擴展作為 .deb 文件?

當然。首先,您需要創建一個debian/目錄,其中包含從其他副檔名複製的文件controlPGD​​G Apt 儲存庫rules中有很多範例。如果您還沒有,請在您的 APT 原始碼中添加以下行(bionic 是 Ubuntu 18.04 的代號):

deb-src http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main

要查看軟體包列表:apt search 'postgresql-*'

要下載原始碼:apt source name-of-package

一旦您的 debian 目錄良好並且安裝了依賴項,基本上您就可以dpkg-buildpackage -rfakeroot -b像任何其他 Debian 軟體包一樣為擴展建構軟體包。

引用自:https://dba.stackexchange.com/questions/261650