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

我希望能够创建一个不包含任何代码或程序本身的软件包,而是将存储库中存在的其他软件包安装到计算机上,这与ubuntu-restricted-extras软件包的工作方式有关吗?

像这样的元数据包可以使用名为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中设置的Maintainer与您的GPG密钥匹配,它应该构建并签署my-metapackage_1.0_source.changes文件,以便您输入PPA