postgresql 如何更改dh_make的缺省目录结构,以使dpkg-buildpackage不抛出任何错误

9wbgstp7  于 2023-02-12  发布在  PostgreSQL
关注(0)|答案(2)|浏览(124)

我正在尝试为PostgreSQL扩展Apache-age发行版1.1.1创建一个debian软件包,并使用dh_make命令创建了目录结构。目录结构如下所示:

age-1.1.1 (project root)
├── debian
│   ├── changelog
│   ├── compat
│   ├── control
│   ├── docs
│   ├── examples
│   ├── links
│   ├── manpages
│   ├── menu
│   ├── postinst
│   ├── postrm
│   ├── preinst
│   ├── prerm
│   ├── rules
│   ├── source
│   └── watch
├── src
└── Makefile

dpkg-buildpackage -b从项目根文件夹运行时,它会查找debian文件夹,然后读取规则文件,然后读取位于项目根目录下的Makefile来构建包。
我想将目录结构更改为以下内容:

.project root
    ├── packaging
    │   ├── debian
    │   │   ├── control
    │   │   ├── control.in
    │   │   ├── changelog
    │   │   ├── copyright
    │   │   ├── pgversions
    │   │   ├── rules
    │   │   └── ...
    │   └──
    ├── src
    ├── LICENSE
    ├── README.md
    ├── Makefile
    └── ...

我想更改目录结构,以便可以从打包文件夹运行dpkg-buildpackage -b命令,并且它应该构建包。

doinxwow

doinxwow1#

我不确定这是否是最好的方法,但它对我很有效:

步骤如下:
  • 首先从项目根目录运行dh_make_pgxs命令。
  • 在项目根目录中创建一个packaging目录,并将步骤1中创建的debian目录连同Makefileage. controlage--1.1.1.sql一起移动到该目录中。

您的文件结构应如下所示:

.project root
  ├── packaging
  │   ├── debian
  │   │   ├── control
  │   │   ├── control.in
  │   │   ├── changelog
  │   │   ├── copyright
  │   │   ├── pgversions
  │   │   ├── rules
  │   │   └── ...
  │   ├── age--1.1.1.sql
  │   ├── age.control
  │   ├── Makefile
  │   └── ...
  ├── src
  ├── LICENSE
  ├── README.md
  └── ...
  • 更改Makefile中的文件路径,例如:
  • src/backend/age.o应该是../src/backend/age.o
  • ./tools/应该是./../tools/
  • 等等。
  • 现在你可以简单地从packaging目录运行dpkg-buildpackage -b命令来构建debian软件包。

注:在步骤1中,我们首先在项目根目录中运行dh_make_pgxs,这是为了确保控制文件中的项目名称和变更日志文件中的版本正确。在这种情况下,控制、www.example.com和变更日志文件中的 * name/source * 应为apache-age,变更日志文件中的版本号应为1.1.1-1。control.in & changelog files should be apache-age and the version number in changelog file should be 1.1.1-1 .
或者,您可以从packaging目录运行该命令,然后手动更改控制文件和changelog文件中的名称和版本。

bf1o4zei

bf1o4zei2#

在您的Makefile
相应地修改install路径。它应该指向您的packaging/debian/*,其中*是文件名。
这样,Makefile可以指向新文件夹结构中的正确文件路径目标。

相关问题