如何在 Ubuntu 中將 PostgreSQL 擴展打包為二進制 .deb 文件?
將 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
文件?
有沒有辦法結合上面的手動方法和 PGXS 方法來自動創建 PostgreSQL 擴展作為 .deb 文件?
當然。首先,您需要創建一個
debian/
目錄,其中包含從其他副檔名複製的文件control
。PGDG 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 軟體包一樣為擴展建構軟體包。