如何创建自动安装其他包的元包?
我希望能够创建一个不包含任何代码或程序本身的软件包,而是将存储库中存在的其他软件包安装到计算机上,这与ubuntu-restricted-extras
软件包的工作方式有关吗?
像这样的元数据包可以使用名为equivs
的工具创建 这将创建一个只包含依赖信息的包。
首先,创建一个目录:
mkdir my-metapackage cd my-metapackage/
现在运行程序:
equivs-control ns-control
它将创建一个名为ns-control
文件,使用文本编辑器打开此文件。 您生成的控制文件应根据要安装的软件包修改其Depends
或Recommends
行:
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