我正在改进我们的安装程序。它的工作方式是将所有组件制作成 .deb 文件。安装程序只需一次调用 dpkg 即可安装所有组件及其依赖项。只要您安装在 Ubuntu Linux 8.04.1 上,这种方法就很好用。例如,在 Ubuntu 8.04.3 中安装时,可能安装的 libc6-dev 版本更高。但 dpkg 似乎仍会安装我们的 libc6-dev 版本,尽管已经安装了更高版本。正如您所预料的,这会导致问题。
正确的做法是什么?检查我们要安装的每个软件包是否与系统上的软件包一致?我以为 dpkg 或 apt 可以帮我们完成这个任务。其次,为什么这必须如此痛苦?目标计算机无法访问互联网,也无法访问镜像。我们必须能够将应用程序完全独立地发布。软件包本应将我们从依赖地狱中解放出来,但似乎并非如此。
答案1
最干净的解决方案似乎是将所有软件包放入本地存储库(如软件包 CD),然后添加一个文件以包含存储库。然后,自动安装正确的软件包/etc/apt/sources.list.d
应该是一件简单的事情。aptitude update; aptitude install <packages>
答案2
我不相信这dpkg
会检查已安装软件包的版本号。 apt
应该这样做,但我不相信它会从磁盘安装,除非您修改sources.list
(通常位于/etc/apt/
)。如果您将源目录添加到中sources.list
,您应该能够运行标准apt-get
安装命令,它会为您完成所有检查。