我正在为 Meteor 应用程序编写 debian 包装。该命令将创建一个需要在其上运行的meteor build
“包” (以解决其 node.js 依赖项);npm install
然后我们就可以打包文件了。
在哪里创建捆绑包?
我决定在 debian/tmp 的子目录中创建它,如下所示(在规则文件中):
override_dh_auto_build:
cd bigbluebutton-html5; meteor build --directory ../debian/tmp/bigbluebutton-html5
cd debian/tmp/bigbluebutton-html5/bundle/programs/server; npm install
但是 debian/tmp 在二进制阶段开始时被删除dh_prep
。我可以通过重写来解决这个问题dh_prep
,如下所示:
# This is here to prevent removal of debian/tmp during the install step.
override_dh_prep:
但这似乎违反直觉。
有人能建议一个更好的地方来展示“捆绑包”吗?或者有更好的方式来打包 Meteor 项目?
答案1
这通常是在build
项目顶层下的目录中或在debian/build
.无论您选择哪一个,请确保将其添加到debian/clean
,并带有尾部斜杠,以便在构建开始时将其删除。
使用会导致超出您遇到的问题的debian/tmp
问题;dh_prep
例如,dh_missing
期望所有内容都debian/tmp
安装在生成的包中的某个位置。
过去几个月,Debian 开发社区对此进行了一些讨论,请参阅这个线程最近试图提出一项更广泛的提案。