我有一个包,我使用 shell 脚本在 Ubuntu 上安装它。我想改用文件.deb
,并且这个软件包有先决条件,包括 DOTNET 和 Docker。
为此目的制作 .deb 文件的步骤是什么?
答案1
我实际上有这样一个项目这里。每次创建新的 Ubuntu 安装时,我都希望一次性安装一组基本工具和一组 Debian 软件包。
该项目包括一个脚本bin/create-packages.sh
,我运行该脚本来创建.deb
包。
在我的例子中,所有依赖项都存在于 Ubuntu 系统中,因此我只需在Depends: ...
包的字段中输入它们的名称即可。这可以在debian/control
文件中找到。在我的例子中,我有两个包,一个用于非 GUI,一个用于 GUI。GUI 具有以下Depends
字段:
Depends: vim-gtk3, alex-tools, ${shlibs:Depends}, ${misc:Depends}
这会强制安装基础包 ( alex-tools
),并且我还安装了vim-gtk3
软件。默认情况下,gvim
不会安装,这样我就有了它免费。
但是,正如 Thomas Ward 提到的,如果您需要执行诸如将 URL 安装到不同的存储库之类的操作,则脚本将无法正常工作.postinst
。这是因为在您安装 Debian 软件包时,Debian 环境已被锁定。因此,您的软件包可以安装客户端必须运行的脚本。也许这是他们每次必须运行的命令的名称,并且当您第一次检测到尚未 100% 安装时,您会在那时运行该附加安装。
如果您要处理许多非免费软件包,那么无论哪种方式都不太实用。话虽如此,如果您有一些法律帮助,您可能能够在一个地方获得一个包含所有必要文件的软件包(即提取 .NET 文件并将它们安装在您的存储库中,当您创建软件包时,您就可以随意使用它们……从法律上讲,如果没有适当的协议,您可能不允许这样做)。