![如何将软件包及其依赖项捆绑到单个 DEB 文件中?](https://linux22.com/image/821138/%E5%A6%82%E4%BD%95%E5%B0%86%E8%BD%AF%E4%BB%B6%E5%8C%85%E5%8F%8A%E5%85%B6%E4%BE%9D%E8%B5%96%E9%A1%B9%E6%8D%86%E7%BB%91%E5%88%B0%E5%8D%95%E4%B8%AA%20DEB%20%E6%96%87%E4%BB%B6%E4%B8%AD%EF%BC%9F.png)
我在从软件中心或终端安装软件时复制了下载的 deb 包。是否可以制作单个包而不是多个包。Exp:我下载时 Thunder bird 有 3 个包。现在我想制作独立包。
答案1
至少需要重新包装所有东西dpkg-deb
(而且这并不容易tar
)。
我建议您将所有 deb 打包成 tar 或 zip 文件,将它们提取到一个目录中,然后cd
进入其中并运行sudo dpkg -i *.deb
以安装它们(dpkg
只要它们都存在,就会自动解决依赖关系)。
答案2
很难准确定义依赖项是什么。如果一台机器上有三个 Thunderbird 软件包,那么在另一台机器上安装的依赖项数量可能会有所不同,除非您考虑将数千个可能的软件包全部加在一起。
问题是,每个软件包都有很多依赖项。有些已经安装,有些还没有。因此,软件包管理器会确定哪些尚未安装并安装它们——尽管实际上还有更多依赖项,但它只会向您提及这些依赖项。当然,列表会因安装的其他软件而异。
您可以通过将一些东西捆绑在一起来减少需要单独安装的依赖项的数量(代价是浪费已经拥有一些捆绑软件的机器上的空间),但您无法消除它。
另一个问题是,有时一个源包会被拆分成几个二进制包。同样,这是为了提高效率。也许您可能不想安装整个程序。或者可能有一些部分与平台无关,不需要为不同类型的机器单独构建。