
En sistemas basados en dpkg-/apt, es posible encontrar un mensaje como el siguiente:
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.
¿Qué significa esto siquiera? ¿Cómo debemos afrontarlo?
En este caso, qfdevelopment_metapkg es un paquete apto que contiene solo dependencias para instalar los paquetes necesarios antes de realizar el desarrollo del proyecto qf. Instalé el paquete (originalmente) usando:
sudo dpkg -i qfdevelopment_metapkg-0.3.8-Linux.deb
sudo apt install -f
Estoy ansioso por saber cómo otros lidian con esto, ya que no entiendo la solución alternativa que encontré (que enumeraré si no aparece en las respuestas).
Respuesta1
Por qué debería importarnos: este problema se manifiesta cuando alguien sudo apt-get upgrade
ofrece útilmente que la eliminación automática eliminará todos los paquetes recién agregados, porque el paquete que depende de ellos fue eliminado.
Solución alterna
Parece que esto se debe a que el paquete no instala nada. Resolví el problema agregando un script trivial que instalo en el directorio bin:
INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/list_qf_dev_info DESTINATION bin)
El contenido de este script list_qf_dev_info es simplemente:
#! /bin/sh
apt-cache show qfdevelopment_metapkg
Ahora, después de la instalación, la presencia de este script hace que el sistema apt/deb conserve el paquete en lugar de hacer que desaparezca automáticamente.
Solución alternativa: sin editar deb
Una solución diferente, que no requiere modificar el archivo deb, es simplemente instalar nuevamente al final para arreglar las cosas:
sudo dpkg -i qfdevelopment_metapkg-0.3.8-Linux.deb
sudo apt install -f
sudo dpkg -i qfdevelopment_metapkg-0.3.8-Linux.deb
PD
Me había olvidado de este tema porque había trabajado en elementos no relacionados. Hoy me encontré con el problema nuevamente y me emocioné brevemente al ver que alguien había preguntado antes de darme cuenta de que era mi pregunta y que no había respuestas, por lo que tuve que buscarla a tientas.