如何处理“以下包从您的系统中消失了……”?

如何处理“以下包从您的系统中消失了……”?

在基于 dpkg/apt 的系统上,可能会遇到如下消息:

The following package disappeared from your system as
all files have been overwritten by other packages:
  qfdevelopment_metapkg
Note: This is done automatically and on purpose by dpkg.

这到底意味着什么?我们该如何应对?

在这种情况下,qfdevelopment_metapkg 是一个 apt 包,它仅包含依赖项,以便在执行 qf 项目开发之前安装必要的包。我最初使用以下命令安装了该包:

sudo dpkg -i qfdevelopment_metapkg-0.3.8-Linux.deb
sudo apt install -f

我很想知道其他人是如何解决这个问题的,因为我不明白我摸索出来的解决方法(如果答案中没有出现,我会列出来)。

答案1

我们为什么要关心:当有sudo apt-get upgrade帮助地提供自动删除将删除所有刚刚添加的包时,就会出现此问题 - 因为依赖于它们的包已被删除。

解决方法

看起来这是因为软件包没有安装任何东西。我通过添加一个简单的脚本解决了这个问题,并把它安装到 bin 目录中:

INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/list_qf_dev_info DESTINATION bin)

这个list_qf_dev_info脚本的内容只是:

#! /bin/sh

apt-cache show qfdevelopment_metapkg

现在,安装后,该脚本的存在会导致 apt/deb 系统保留该包,而不是自动导致其消失。

替代解决方法 - 无需编辑 deb

一个不同的解决方法 - 不需要修改 deb - 就是在最后再次安装以解决问题:

sudo dpkg -i qfdevelopment_metapkg-0.3.8-Linux.deb
sudo apt install -f
sudo dpkg -i qfdevelopment_metapkg-0.3.8-Linux.deb

附言

我忘记了这个问题,因为我处理了不相关的项目。今天我又遇到了这个问题,看到有人问了,我兴奋了一阵子,然后才意识到这是我的问题,而且没有人回答,所以我不得不自己摸索着解决。

相关内容