linux - 从一个来源为数据文件创建多个 Debian 软件包

标签 linux debian packaging apt deb

我有一堆 dictd 词典程序的词典文件。每个词典有 2 个文件(一个 dict.dz 和一个 .index 文件),总共有 8 个词典。

字典的安装非常简单,这就是我目前在脚本中的内容:

install -o root -g root -m 644 /path/to/dictd_dictionaries/* /usr/share/dictd
/usr/sbin/dictdconfig --write
service dictd restart

现在我想将这么多文件打包成 .deb 包,每个字典一个 .deb 包。我真的很想拥有一个源 .deb 包,然后创建所有单独的包,而不是必须创建和维护 8 个单独的包(这个数字可能会随着时间的推移而增长)。

但是我不明白 debian/packagename.dirs 文件与 debian/rules 文件中的内容有何关联。我尝试下载并查看了freedict的源码包,它与我想要做的非常相似,但是它的规则文件非常复杂。

最佳答案

您可以使用 dh-make 包并指定“多个二进制文件”。它有点像创建 debian/目录框架的向导。

例如

# dh_make --packagename=skeleton_1.0
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_GB:en",
    LC_ALL = (unset),
    LANG = "en_GB.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or cdbs?
 [s/i/m/l/k/n/b] 

此时输入“m”将进行设置,以便单个源包构建多个包。

在 dh_make 向导完成设置后,您需要维护 debian/[packagename].dirs 和 debian/[packagename].install,以便打包器知道哪些文件位于哪个 .deb 中。

例如
骨骼.dirs

usr/bin

骨骼.install

usr/bin/skeleton*

关于linux - 从一个来源为数据文件创建多个 Debian 软件包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11347377/

相关文章:

postgresql - 在远程服务器上安装 pgAdmin 并在没有桌面环境的情况下进行配置

python - GNOME:在备份运行时禁止关机

linux - "/etc"在Zen of Unix/GNU Linux中的作用

linux - Shell 脚本语句不能一一运行

linux - autotools 不删除某些文件夹和文件

Debian Linux 中的 JavaFX MediaPlayer 异常

java - GenJar 替换或更新?

java - 如何将 Java .jar 编译/打包为 Mac OS X 命令行工具?

java.lang.Exception 与滚动您自己的异常

linux - aclocal 的版本不匹配