如何创建自动安装其他软件包的元软件包?


Answers:


47

可以使用一个称为的工具创建这样的元软件包,该工具equivs 将仅创建具有依赖项信息的软件包。

首先,创建目录:

mkdir my-metapackage
cd my-metapackage/

现在运行程序:

equivs-control ns-control

它将创建一个名为的ns-control文件,使用文本编辑器打开该文件。您生成的控制文件应对其DependsRecommends行进行修改,以取决于要安装的软件包:

Section: misc
Priority: optional
Standards-Version: 3.9.1

Package: my-metapackage
Version: 1.0   
Depends: openssh-server, gedit
Description: This package installes an ssh server and a text editor
 The Long description of this package ends with a newline!

(仅举一个例子,您应该包括更多信息)

最后,通过运行

equivs-build ns-control

您的包裹位于my-metapackage/my-metapackage_1.0_all.deb

如果您还希望创建一个源包,--full可以将该选项传递给equivs-build,例如equivs-build --full ns-control。这将使用debuild并创建.dsc和.tar.gz文件。

要创建可上传到PPA的源.changes文件,请使用以下命令解压缩并构建源包

dpkg-source -x my-metapackage_1.0.dsc
cd my-metapackage-1.0
debuild -S

如果您在ns-control中设置的维护者与您的GPG密钥匹配,则它应构建并签名my-metapackage_1.0_source.changes文件,以供您放入PPA。


非常感谢。我很可能稍后会对此进行测试,但到目前为止,这些说明已经奏效。:)
Thomas Ward

2
它完美地工作!
Stefano Palazzo

感谢您的回答,ajmitch,但是正因为如此,我要指出,如果您有一个~/.devscripts文件,并专门定义了一个不同的GPG密钥以在devscripts文件中使用,它将覆盖dpkg / debuild进程并拥有它请使用中指定的特定GPG密钥.devscripts作为答案中最后一句话的值得注意点
托马斯·沃德

我注意到只有在有软件包的情况下,将软件包放在下面Depends:才能使安装良好。如果它们不在我的计算机上,则不会安装它们。要安装它们,我Provides改用了它,它就像一个护身符。看到我的代码(只是改变了它):github.com/palladius/debian-packages/blob/master/…–
Riccardo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.