如何使用“/var/cache/apt/archives”?

如何使用“/var/cache/apt/archives”?

昨晚我的系统(Ubuntu 12.04)崩溃了,我不得不再次安装 Ubuntu 12.04。实际上我有“/var/cache/apt/archives”,它是我以前的操作系统的,但是当我以 root 用户身份输入此命令时:

sudo dpkg -i /var/cache/apt/archives/*deb

多次之后显示此错误:

system halted because there were too many errors...

我的 Ubuntu 再次无法启动,因此我再次安装了它,现在如何使用/var/cache/apt/archives,有什么方法可以解决这个问题吗?

答案1

我会用简单的例子来回答你,

假设 appA 有依赖项 depA1v1.1 和 depA2v1.5

假设 appB 有依赖项 depB1v1.3 和 depA2V1.3

现在 appA 安装在 Pc#1 上,appB 安装在 PC#2 上。

当您从 PC#1 复制所有 *.deb 文件/var/cache/apt/archives并将其移动到 PC#2 并进行操作时dpkg -i *.deb。会发生什么情况?

现在在 PC#2 中你已经正确安装了 appAappB 会出现问题,为什么呢?

仅仅是因为您具有不兼容的依赖关系,因为 depA2 现在是版本 1.5,而不是所需的 1.3。

希望这能解释这个问题,那么我该如何使用这些档案呢?!

  • 您必须注意您的依赖关系并检查这些 *.debs 是否会给您的系统带来问题,这是辛苦的工作
  • 或者,您应该始终在两个主机上保持一致,因此,每当您更新 PC#1 时,您都应该转到*.debPC#2 并执行相同的更新,这样两个主机的应用程序版本就会始终同步。

暗示:这些 deb 的一个方便用法是将它们从 Pc#1 复制到 PC#2,然后将它们移动到/var/cache/apt/archivesPc#2。

apt-get现在尝试使用常规而不是从这些档案中安装您想要的应用程序dpkg,因此apt-get尝试从这些档案中解析依赖项(如果找到)并检查更新,因此如果存储库中没有新的更新,那么它将使用.deb路径中建立的 /var/cache/apt/archives

答案2

http://people.adams.edu/~cdmiller/posts/Ubuntu-dpkg-recovery/

这可能有助于为您指明正确的方向。看来您必须重新安装 apt,然后强制系统重新安装它认为可以安装的应用程序。

答案3

这里由于缺少依赖项而发生错误,如果未满足必要的依赖项,dpkg -i *.deb 会很危险,因此我建议使用本地存储库或 aptoncd 映像来使用此类 deb

相关内容