
Em sistemas baseados em dpkg/apt, é possível encontrar uma mensagem como a seguinte:
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.
O que isso significa? Como devemos lidar com isso?
Neste caso, qfdevelopment_metapkg é um pacote apt que contém apenas dependências para instalar os pacotes necessários antes de realizar o desenvolvimento do projeto qf. Eu instalei o pacote (originalmente) usando:
sudo dpkg -i qfdevelopment_metapkg-0.3.8-Linux.deb
sudo apt install -f
Estou ansioso para saber como os outros lidam com isso, já que não entendo a solução alternativa que me atrapalhei (que listarei se não aparecer nas respostas).
Responder1
Por que devemos nos preocupar: esse problema se manifesta quando um sudo apt-get upgrade
serviço oferece que o autoremove removerá todos os pacotes recém-adicionados - porque o pacote que depende deles foi removido.
Gambiarra
Parece que isso resulta do pacote não instalar nada. Resolvi o problema adicionando um script trivial que instalei no diretório bin:
INSTALL(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/list_qf_dev_info DESTINATION bin)
O conteúdo deste script list_qf_dev_info é apenas:
#! /bin/sh
apt-cache show qfdevelopment_metapkg
Agora, após a instalação, a presença deste script faz com que o sistema apt/deb mantenha o pacote em vez de fazer com que ele desapareça automaticamente.
Solução alternativa - sem editar deb
Uma solução diferente - que não requer modificação do deb - é apenas instalar novamente no final para resolver as coisas:
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
Eu tinha esquecido esse problema porque havia trabalhado em itens não relacionados. Hoje eu estava me deparando com o problema novamente e fiquei brevemente animado ao ver que alguém havia perguntado antes de perceber que era minha pergunta e que não havia respostas, então tive que me atrapalhar sozinho.