问题标签 [debhelper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
445 浏览

ubuntu - 将自己的 poststep 添加到 Debian 软件包 - postrm.debhelper

例如,在我的 debian 包的 debian 文件夹中,我想添加一个删除目录的后期步骤。

我认为文件*.postrm.debhelper是正确的。但是这个文件会被几个帮助脚本(dh_installinit、dh_icons)覆盖。

如何将自己的操作添加到这些脚本中,它们将与自动生成的命令合并?

更新:我在dh_installdeb的手册页中看到,我必须添加#DEBHELPER#作为占位符。但即使我像这样在文件末尾这样做,我的整个文件也会被覆盖:

更新 2:dh_clean 和 dh_prep 执行

在他们将脚本样本从/usr/share/debhelper/autoscripts/转移到 postrm.debhelper 脚本之后。

0 投票
1 回答
465 浏览

ubuntu - 手动编辑简单构建过程所需的 debianrules 文件?

我是一个新手,试图按照这个 Ubuntu 指南构建一个 deb 以放入 PPA,但是我在使用规则文件时遇到了麻烦,我在其中查阅了这个概述Debian 政策手册。我收集到,在许多情况下,可以将规则文件以非常短的形式保留原样,但这对我不起作用,可能是因为在上游包上运行 make 之前需要一些技巧。

手动构建和安装上游的构建过程是:

  1. cd packagedir/src
  2. cp makefile.unix makefile.my
  3. 在 makefile.my 上运行三个 sed 行
  4. make -f makefile.my
  5. sudo cp -f 二进制文件 /usr/local/bin/

我已经设法将规则文件(添加目标)调整为似乎成功执行步骤 1-4 的内容,但是当通过bzr builddeb -- -us -uc命令完成编译时,我遇到了一个错误,上面写着“dpkg-genchanges: error: cannot读取文件列表文件:没有这样的文件或目录”,这让我怀疑我是否真的做了很多不必要的工作。毕竟,构建和安装过程并不是很复杂。

所以我的问题是:我可以恢复规则文件,并在构建过程中轻松实施上述五个步骤,还是我需要继续我所走的道路,手动编辑规则文件?在这两种情况下,我都需要有关如何继续的指导:)

0 投票
1 回答
136 浏览

debian - debhelper dh 未按预期重新运行

当我注意到它不支持重新运行目标时,我正在将我的一些包转换为使用 debhelper 包中的 dh。

例如:

  1. 我跑去debian/rules build检查构建。
  2. 做一个小的代码更改。
  3. 再次运行debian/rules build,它什么也没做。

或者我做的另一个常见例子:

  1. 我跑来fakeroot debian/rules binary检查我是否在包中正确安装了所有东西。
  2. 发现缺少的东西;纠正问题。
  3. 运行fakeroot debian/rules binary以测试更改,它什么也不做。

这是我之前使用的 CDBS 行为的一个重大变化。有解决办法吗?我觉得debian/rules clean在这些情况下不需要跑步。

Debian/规则:

0 投票
1 回答
2056 浏览

python-3.x - debhelper 指示使用 python3,但使用 python2 运行 setup.py

我正在努力dh为 python 3(而不是 python 2)创建包。我使用setup.pywhich,当用 调用时python3,为 python 3 构建。我有一个单独debian的 py3k 目录,所以我只想为那个版本构建。

debian/rules看起来像这样:

debian/control拥有所有常见的东西,包括X-Python3-Version

现在,当我运行时fakeroot debian/rules binarysetup.py运行python而不是运行python3,尽管--with python3

有什么问题?

0 投票
1 回答
359 浏览

debian - 使用 debhelper 创建 Debian 软件包:更改依赖版本

我正在使用 DebHelper 在 Debian 的最新稳定版本下创建一个 Debian 软件包。

“debian/control”文件包含以下几行:

因此,依赖项会自动设置在创建的包中。但是,libstdc++ 要求的版本太严格了。该软件包需要 libstdc++6 ( >= 4.9 ),我希望将其设置为 libstdc++6 ( >= 4.8 )。

为此,在阅读本页本页时,我编辑了“debian/rules”文件,现在看起来像:

然而,最后两行并没有成功。有没有人已经在 Debian 软件包上进行过这种定制?

谢谢

0 投票
1 回答
2702 浏览

linux - debian 打包:dh build 和 dh binary 有什么区别

我在构建 debian 包时遇到了一个问题。

至于规则文件的文档:https ://www.debian.org/doc/manuals/maint-guide/dreq.en.html#rules

  • debian/rules build 运行 dh build;依次运行以下内容:

    /li>
  • fakeroot debian/rules 二进制运行 fakeroot dh 二进制;依次运行以下内容:

    /li>

但是当我运行dh binary --no-act命令时,输出包括dh build --no-act. 这意味着./configuremake命令在构建 debian 包期间运行两次。有点奇怪。

我曾经dpkg-buildpackage -us -uc构建debian包。

更新:我看到它实际上没有运行两次,但为什么 --no-act 显示dh build输出运行两次?

0 投票
1 回答
1573 浏览

packaging - 我应该覆盖初始化系统的 debhelper 使用吗?

我正在尝试使用 systemd 脚本构建一个 debian 包,但我并不真正了解最好的方法。

我的第一个问题是,我应该使用该--with=systemd选项(并覆盖dh_systemd_enableand dh_systemd_start)还是使用dh_installinit--name选项就足够了?因为两者似乎都在做同样的事情。

0 投票
1 回答
708 浏览

python - 如何在不使用 distutils 的情况下创建一个 debian 包来分发 python 模块?

我对如何正确打包基于 python3 的应用程序感到非常困惑。

我的应用程序使用 Makefile 将东西安装到正确的文件位置,例如

我没有使用 python distutils setup.py 类型的安装 - 只是一种简单sudo make install的方法。

当我尝试使用 Debian 打包时,我的规则非常简单:

我的 debian/control 文件“build-depends”又是直言不讳:

这很好用 - 我可以运行debuild -us -uc它并创建我的 .deb 并且当我通过安装时,sudo dpkg -i myfoo-0.1_all.deb所有内容都安装在正确的文件位置。

除了一件小事 - 每个 python 模块都应该进行字节编译,以便在安装时有一个子文件夹/usr/lib/rhythbox/plugins/foo/__pycache__包含myfoo_module.pycmyfoo_module2.pyc

现在我知道我不能在构建过程中进行字节编译 - Debian 规则禁止使用带有字节编译模块的 .deb。所以不知何故,我需要让 debhelper 为我工作。

查看 Debian 打包指南,他们提到了 cdbs、distutils 等内容——任何debhelper示例总是使用如下语法:

...但我没有使用 distutils setup.py 来安装我的应用程序。

所以我一定错过了一些非常明显的东西——有什么想法吗?

0 投票
1 回答
47 浏览

rpm - rpm 包是否有 dh_make 模拟

使用 dh_make 可以轻松地对现有的源代码发行版进行 debianized,但我找不到用于 rpm 包的类似工具。有没有,或者唯一的方法是手动编写规范文件

0 投票
1 回答
563 浏览

git - 使用 `gbp` 和 `pristine-tar` Debianize 上游 `zip`-file

gbp 的手册说明如下:

首先,创建一个空存储库:

然后,您导入上游源,从上游分支分支分支并添加 Debian 文件(例如,通过 dh_make):

就是这样,你完成了。

但这失败了 azip因为没有.orig.tar.gz。调用dh_make --createorig会创建一个.orig.tar.gz,但这会包括.git/子目录,因此它是无效的。

pristine-tar这种方式也缺少分支,并且不pristine-tar commit知道如何处理zip文件。

zip如果上游仅提供-file ,我如何启动 Debian 软件包?这种情况下怎么处理pristine-tar