
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는 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
추신
관련 없는 항목을 작업했기 때문에 이 문제를 잊어버렸습니다. 오늘 나는 다시 문제에 직면했고 그것이 내 질문이고 대답이 없다는 것을 깨닫기 전에 누군가가 질문한 것을 보고 잠시 기뻤습니다. 그래서 나는 스스로 그것을 더듬어 봐야 했습니다.