问题标签 [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.
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 脚本之后。
ubuntu - 手动编辑简单构建过程所需的 debianrules 文件?
我是一个新手,试图按照这个 Ubuntu 指南构建一个 deb 以放入 PPA,但是我在使用规则文件时遇到了麻烦,我在其中查阅了这个概述和Debian 政策手册。我收集到,在许多情况下,可以将规则文件以非常短的形式保留原样,但这对我不起作用,可能是因为在上游包上运行 make 之前需要一些技巧。
手动构建和安装上游的构建过程是:
- cd packagedir/src
- cp makefile.unix makefile.my
- 在 makefile.my 上运行三个 sed 行
- make -f makefile.my
- sudo cp -f 二进制文件 /usr/local/bin/
我已经设法将规则文件(添加目标)调整为似乎成功执行步骤 1-4 的内容,但是当通过bzr builddeb -- -us -uc
命令完成编译时,我遇到了一个错误,上面写着“dpkg-genchanges: error: cannot读取文件列表文件:没有这样的文件或目录”,这让我怀疑我是否真的做了很多不必要的工作。毕竟,构建和安装过程并不是很复杂。
所以我的问题是:我可以恢复规则文件,并在构建过程中轻松实施上述五个步骤,还是我需要继续我所走的道路,手动编辑规则文件?在这两种情况下,我都需要有关如何继续的指导:)
debian - debhelper dh 未按预期重新运行
当我注意到它不支持重新运行目标时,我正在将我的一些包转换为使用 debhelper 包中的 dh。
例如:
- 我跑去
debian/rules build
检查构建。 - 做一个小的代码更改。
- 再次运行
debian/rules build
,它什么也没做。
或者我做的另一个常见例子:
- 我跑来
fakeroot debian/rules binary
检查我是否在包中正确安装了所有东西。 - 发现缺少的东西;纠正问题。
- 运行
fakeroot debian/rules binary
以测试更改,它什么也不做。
这是我之前使用的 CDBS 行为的一个重大变化。有解决办法吗?我觉得debian/rules clean
在这些情况下不需要跑步。
Debian/规则:
python-3.x - debhelper 指示使用 python3,但使用 python2 运行 setup.py
我正在努力dh
为 python 3(而不是 python 2)创建包。我使用setup.py
which,当用 调用时python3
,为 python 3 构建。我有一个单独debian
的 py3k 目录,所以我只想为那个版本构建。
debian/rules
看起来像这样:
并debian/control
拥有所有常见的东西,包括X-Python3-Version
:
现在,当我运行时fakeroot debian/rules binary
,setup.py
运行python
而不是运行python3
,尽管--with python3
:
有什么问题?
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
. 这意味着./configure
和make
命令在构建 debian 包期间运行两次。有点奇怪。
我曾经dpkg-buildpackage -us -uc
构建debian包。
更新:我看到它实际上没有运行两次,但为什么 --no-act 显示dh build
输出运行两次?
packaging - 我应该覆盖初始化系统的 debhelper 使用吗?
我正在尝试使用 systemd 脚本构建一个 debian 包,但我并不真正了解最好的方法。
我的第一个问题是,我应该使用该--with=systemd
选项(并覆盖dh_systemd_enable
and dh_systemd_start
)还是使用dh_installinit
该--name
选项就足够了?因为两者似乎都在做同样的事情。
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.pyc
和myfoo_module2.pyc
现在我知道我不能在构建过程中进行字节编译 - Debian 规则禁止使用带有字节编译模块的 .deb。所以不知何故,我需要让 debhelper 为我工作。
查看 Debian 打包指南,他们提到了 cdbs、distutils 等内容——任何debhelper示例总是使用如下语法:
...但我没有使用 distutils setup.py 来安装我的应用程序。
所以我一定错过了一些非常明显的东西——有什么想法吗?
rpm - rpm 包是否有 dh_make 模拟
使用 dh_make 可以轻松地对现有的源代码发行版进行 debianized,但我找不到用于 rpm 包的类似工具。有没有,或者唯一的方法是手动编写规范文件
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
?