dpkg로 설치 또는 생성되지 않은 데비안 시스템에서 파일을 찾는 방법은 무엇입니까?


20

과거에 수동으로 몇 가지를 설치했으며 모든 관련 파일을 제거하고 싶습니다. 따라서 현재 데비안 시스템에 설치된 패키지에 포함되어 있지 않은 모든 파일 (예 : / usr)을 자동으로 찾는 방법이 필요합니다. 그러나 패키지 설치 중에 작성된 파일 (dpkg 설치 후 스크립트 및 이와 유사한 것)을 필터링해야합니다.


1
또한이 질문을보십시오 : unix.stackexchange.com/questions/18038/…
Taha Jahangir

답변:


25

cruft패키지를 사용하십시오 :

cruft는 시스템에 존재하지 않아야하는 것이 무엇인지 찾아 보는 프로그램입니다. 또는 거기에 있어야하지만 존재하지 않는 모든 것.


4

다음과 같이 시도해보십시오.

dpkg -L --list-all-package-files | grep "^/usr" > dpkg-files.dat   **(don't know the dpkg option "--list-all-package-files", read mand dpkg)**
find /usr -type f -o -type l > all-usr-files.dat
sort dpkg-files.dat all-usr-files.dat | uniq -c | grep " 1 "

이 방법으로 / usr에 있지만 패키지 파일이 아닌 모든 파일을 얻을 수 있습니다. 첫 번째 촬영으로 도움이 될 수 있습니다.


한 번에 둘 이상의 패키지를 나열하기 위해 -L을 얻는 방법을 찾을 수 없지만 다음과 같은 효과를 얻을 수 있습니다.grep -h "^/usr" /var/lib/dpkg/info/*.list > dpkg-files.dat
DerfK

--list-all-package-files옵션 이 없습니다 .
Karol

@DerfK : 예를 들어 다음과 같이 둘 이상의 패키지를 나열하기 위해 -l을 얻을 수 있습니다.dpkg -L `aptitude search ~i -F "%p"`
Karol

이 방법의 문제점은 / usr에 실제로 dpkg에 나열된 것보다 많은 파일 또는 링크가 있다는 것입니다. 예를 들어, / usr / bin / aptitude는 설치 후 스크립트에 의해 생성되었지만 dpkg로 나열되지는 않습니다. 그래서 여기에서 내가 원하는 것은 패키지를 설치하여 설치 하거나 만든 파일 목록입니다 (질문이 바뀔 것입니다).
Karol

@Karol : 파일의 다른 소스는 전환 및 대안이 될 수 있습니다. 결과는 문장 형식이지만 dpkg-divert --list루트로 전환을 볼 수 있습니다 (일반적으로 접미사로 제공됨). 대안은 조금 더 어려우며 / var / lib / dpkg / alternatives /의 파일 형식은 어색하며 update-alternatives링크 이름은 모든 것에 대해 알려줍니다. find /usr -lname '/etc/alternatives/*'아마도 이것을 얻는 가장 쉬운 방법 일 것입니다.
DerfK
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.