Arch Linux에서 pacman이 설치한 이전 패키지를 삭제하는 방법은 무엇입니까?

Arch Linux에서 pacman이 설치한 이전 패키지를 삭제하는 방법은 무엇입니까?

저는 최근에 Arch Linux를 설치했는데 상대적으로 많은 저장 공간을 비교적 빠르게 소모하고 있다는 사실을 발견했습니다. 어떤 이유에서인지 저는 약 2주 만에 이미 17GB를 사용했습니다. 나는 많은 양의 소프트웨어를 설치하지 않았기 때문에 모든 이전 패키지가 어딘가에 유지 관리되고 있다고 믿게 되었습니다.

이를 지원하기 위해 패키지를 설치하고 해당 패키지를 제거한 다음 다시 설치하면 팩맨은 소프트웨어를 다시 다운로드할 필요 없이 압축을 풀고 다시 설치한다는 사실을 발견했습니다.

기본 시스템을 설치한 후 추가 소프트웨어를 사용하기 전에 약 2GB 정도를 사용했습니다. 그 이후에는 Matlab, Skype, Wine 및 기타 몇 가지 작은 프로그램만 설치했습니다. 물론 누락된 라이브러리 등도 설치했지만 거의 15GB에 해당하지 않습니다.

제가 완전히 틀렸습니까? 아니면 새 버전을 다운로드/업그레이드할 때 Arch가 이전 패키지를 절대 삭제하지 않습니까?

그렇다면 사용하지 않는 패키지를 어떻게 삭제합니까?

또한 설치된 패키지를 제거할 때 사용합니다.pacman -R ...

답변1

아니요, 팩맨은 캐시( /var/cache/pacman/pkg)에서 오래된 패키지를 제거하지 않으므로 시간이 지나면 가득 차게 됩니다.

캐시를 지우는 두 가지 접근 방식을 채택할 수 있습니다. 즉, 다음을 사용하는 무차별 대입 접근 방식입니다 pacman -Sc.

-c, --clean
캐시와 현재 사용하지 않는 동기화 데이터베이스에서 더 이상 설치되지 않는 패키지를 제거하여 디스크 공간을 확보합니다. 팩맨은 패키지를 다운로드할 때 캐시 디렉토리에 저장합니다. 또한 데이터베이스는 다운로드하는 모든 동기화 DB에 대해 저장되며 구성 파일 pacman.conf(5)에서 제거되더라도 삭제되지 않습니다. 더 이상 설치되지 않는 패키지만 제거하려면 하나의 --clean 스위치를 사용하십시오. 캐시에서 모든 파일을 제거하려면 두 개를 사용하십시오. 두 경우 모두 패키지 및/또는 사용하지 않는 다운로드 데이터베이스를 제거하기 위한 예 또는 아니요 옵션이 제공됩니다.

또는 보다 미묘한 접근 방식을 위해 pacman-contrib과 함께 제공되는 유틸리티 중 하나를 사용할 수 있습니다 paccache.

paccache는 팩맨 패키지 타르볼이 포함된 디렉터리에서 삭제되는 양과 내용을 제어하는 ​​데 도움이 되는 다양한 옵션이 있는 유연한 팩맨 캐시 정리 유틸리티입니다.

기본적으로 paccache -r설치된 패키지의 마지막 세 버전을 제외한 모든 버전을 제거하지만 스위치를 사용하여 이 숫자를 변경할 수 있습니다 -k, --keep. -d, --dryrun변경 사항을 미리 볼 수 있는 스위치 도 있습니다 . -m, --move <dir>옵션을 사용하여 패키지를 선택한 별도의 디렉터리로 이동할 수도 있습니다 . 모든 스위치에 대해서는 paccache -h또는 를 참조하십시오 .paccache --help

pacman-contrib 패키지에는 패키지 관리를 지원하는 여러 유틸리티가 있습니다. 모두 살펴보고 작동 방식을 이해하고 Arch 실행을 훨씬 쉽게 만드는 것이 좋습니다. 다음을 사용하여 전체 목록을 볼 수 있습니다.

pacman -Ql pacman-contrib | awk -F"[/ ]" '/\/usr\/bin/ {print $NF}'

답변2

패키지 캐시는 /var/cache/pacman/pkg/.

메모: pacman패키지는 2018년에 업데이트되었으며 아래 설명된 pacman-contrib것과 같은 스크립트/도구를 사용하려면 추가로 설치가 필요합니다 paccache.

하다:

paccache -d

-dryrun다음 작업을 수행할 때 해당 유틸리티를 실행하면 무엇을 제거할 수 있는지 확인하려면 다음을 수행하세요 .

paccache -r

캐시된 패키지를 제거하려면 17GB는 가파른 것 같습니다. 런어웨이 로그가 없는지 확인하세요. 하다:

du -h /var/log

아니면 그냥:

du -h /var

무슨 일이 일어나고 있는지에 대한보다 일반적인 아이디어를 얻으려면.

답변3

나는 다음의 사용을 강력히 제안한다.paccache대신에 pacman -Sc. 제거된 패키지의 버전을 선택적으로 제거하기 위한 매우 효과적인 플래그도 있습니다 -u. 내가 추천하는 플래그는 paccache다음과 같습니다(paccache v5.0.2의 일부로).

  • -d, --dryrun: 연습 실행을 수행하고 후보 패키지만 찾습니다.
  • -r, --remove: 후보 패키지 제거
  • -u, --uninstalled: 제거된 패키지만 대상으로 지정
  • -k, --keep <num>: 캐시에 각 패키지의 "num"을 유지합니다(기본값: 3).

예: 제거된 패키지의 남은 캐시 버전 확인

paccache -dvuk0

답변4

pacman -Scc요청한 대로 수행되지만 권장되지는 않습니다. 로부터위키

다음을 사용하여 캐시 폴더를 완전히 비울 수도 있습니다.팩맨 -Scc, 그러나 이를 수행하는 것은 위의 방법 외에도 필요한 경우 캐시 폴더에서 직접 패키지를 다시 설치하는 것을 방지하여 강제로 다시 다운로드하도록 하기 때문에 나쁜 습관으로 간주됩니다. 더 많은 디스크 공간이 절실히 필요한 경우가 아니면 절대 사용해서는 안 됩니다.

여담으로, 패키지를 제거할 때 pacman -Rnsc패키지 종속성뿐만 아니라 이 패키지에 종속된 패키지도 제거하므로 를 사용하는 것을 선호합니다. 항상 그렇듯이 어떤 패키지가 제거되는지 주의 깊게 읽어 보십시오. 시스템을 사용할 수 없는 상태로 만들기가 매우 쉽기 때문입니다.

관련 정보