2

В системах на основе 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 ответ1

2

Почему мы должны заботиться: эта проблема проявляется, когда sudo apt-get upgrade предупреждает, что autoremove удалит все только что добавленные пакеты - потому что пакет, который зависит от них, был удален.

Временное решение

Кажется, это происходит из-за того, что пакет ничего не устанавливает. Я решил проблему, добавив простой скрипт, который я устанавливаю в каталог 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 - это просто установить заново в конце, чтобы все было в порядке:

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

PS

Я забыл об этой проблеме, так как работал с не связанными предметами. Сегодня я снова столкнулся с проблемой и был немного взволнован тем, что кто-то спросил, прежде чем понял, что это мой вопрос, и что ответов не было, поэтому мне пришлось самому покопаться в нем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .