Apt/Aptitude: 설치할 수 없는 패키지를 필터링하는 방법은 무엇입니까?

Apt/Aptitude: 설치할 수 없는 패키지를 필터링하는 방법은 무엇입니까?

특히 Sid를 실행할 때 종속성이 ABI 버전을 변경하거나 종속성 자체가 제거되었을 수 있으므로 많은 패키지를 제거할 수 없게 됩니다. 잠재적인 관리자가 저장소에 어떤 문제가 있는 패키지가 있는지 확인할 수 있도록 이러한 패키지를 필터링하는 방법을 아는 것이 좋습니다.

지금까지 나는 다음을 생각해 냈습니다.

#!/bin/sh
apt-cache pkgnames|xargs apt-get -s install\
|sed "/ : /h;/installable/{x;/ .* :/{s/ \(.*\) :.*/\1/;b}};d" | sort

"설치하지 않음" 패키지 X에 의존하는 패키지를 재귀적으로 표시하지 않습니다. 여기서 X는 종속성 중 하나가 "설치할 수 없음"이기 때문에 표시된 패키지입니다. 예를 들어 다음과 같습니다.

foo : Depends on bar but not going to be installed
bar : Depends on baz but not installable

bar플래그가 지정되지만 foo그렇지 않습니다. 모든 패키지에 "설치하지 않음" 줄을 표시하면 안 됩니다. 패키지가 존재하지만 설치된 다른 패키지를 손상시킬 수 있기 때문입니다.

답변1

Python을 알고 있다고 가정하고, 그렇지 않다면 오늘이 시작하기에 좋은 시간입니다... 적절한 Python 바인딩에 대한 문서에는 완전한 솔루션이 아닐 수도 있지만 관련 작업 예제가 있습니다.

apt-get install python-apt python-apt-doc

보세요 /usr/share/doc/python-apt-doc/examples/missing-deps.py. 저는 데비안 스퀴즈를 사용하고 있습니다.

방금 시도했어요

python missing-deps.py

작은 패키지 세트를 생성합니다. 제가 이해한 이 스크립트는 현재 데비안 메인에서 제거할 수 있는 패키지 목록을 생성한다는 것입니다. 그러나 현재 이것을 테스트할 수 있는 편리하고 불안정한 데비안 설치가 없습니다.

관련 정보