我一直在尝试使用控制文件为 GNU Emacs 25.1 构建一个包:
Package: emacs
Priority: extra
Section: checkinstall
Installed-Size: 129184
Maintainer: Brenton Horne <[email protected]>
Architecture: amd64
Version: 25.1-1
Provides: emacs
Description: GNU Emacs, the extensible and self-documenting text editor.
Source: gnu
Depends: gconf-service, libacl1 (>= 2.2.51-8), libasound2 (>= 1.0.16), libc6 (>= 2.16), libcairo2 (>= 1.2.4), libdbus-1-3 (>= 1.9.14), libfontconfig1 (>= 2.11.94), libfreetype6 (>= 2.2.1), libgconf-2-4 (>= 3.2.5), libgdk-pixbuf2.0-0 (>= 2.22.0), libgif7 (>= 5.1), libglib2.0-0 (>= 2.37.3), libgnutls30 (>= 3.4.2), libgpm2 (>= 1.20.4), libice6 (>= 1:1.0.0), libjpeg8 (>= 8c), libm17n-0 (>= 1.6.1), libmagickcore-6.q16-2 (>= 8:6.8.8.2), libmagickwand-6.q16-2 (>= 8:6.8.8.2), libotf0 (>= 0.9.11), libpango-1.0-0 (>= 1.18.0), libpng12-0 (>= 1.2.13-4), librsvg2-2 (>= 2.14.4), libselinux1 (>= 1.32), libsm6, libtiff5 (>= 4.0.3), libtinfo5 (>= 6), libx11-6, libxft2 (>> 2.1.1), libxml2 (>= 2.7.4), libxpm4, libxrender1, zlib1g (>= 1:1.1.4)
Package-List: emacs
Binary-Package: emacs
您可能已经猜到这个控制文件最初是由 Checkinstall 创建的。不幸的是,dpkg-buildpackage
使用该控制文件运行时会出现错误消息:
dpkg-source: error: emacs/debian/control doesn't list any binary package
我错过了什么?
答案1
我认为 debian/control 文件需要一个Source:
部分。请参阅Debian 政策5.2 节。另外,确保 debian/changelog 中的源名称与源和二进制名称相匹配。例如,如果变更日志的顶部条目看起来像
emacs25 (25.1-private) UNRELEASED; urgency=medium
那么你应该使用emacs25
after Source:
and Package:
(假设你只想要一个二进制包称为emacs25
)。
我可能错了,根据我的经验,这些只是我所预料的事情。
答案2
跑步
$ apt-get source emacs24
研究那里是如何做到的。
跑步
$ sudo apt-get build-dep emacs24
获取所需的包。
然后将 debian 目录复制到新源中,并开始修改控制和规则文件。运行
$ dch
因为该文件指定了版本号。
为了建设,我敦促
$ dpkg-buildpackage -rfakeroot
当您调整 debian 目录时,许多部分不需要修复。如果出现问题,请考虑将补丁子文件夹移开。这些补丁可能不再相关。
我认为这是一次很好的学习经历!但如果你只是想要 Emacs 软件包,请使用 ppa 中的 Emacs 25
https://emacs.stackexchange.com/questions/12772/prebuilt-ubuntu-emacs-25-1
您甚至可以获取他们的源代码并在 debian 文件夹中研究他们的工作:)
更多软件包的网络来源: