Arch Linux에서 pacman이 설치한 오래된 소프트웨어 패키지를 삭제하는 방법은 무엇입니까?

Arch Linux에서 pacman이 설치한 오래된 소프트웨어 패키지를 삭제하는 방법은 무엇입니까?

최근에 Arch Linux를 설치했는데 비교적 빨리 많은 저장 공간을 사용하고 있다는 사실을 발견했습니다. 무슨 이유에서인지 단 2주 만에 17GB를 사용했습니다. 나는 많은 양의 소프트웨어를 설치하지 않았으므로 모든 이전 패키지가 어딘가에 유지 관리될 것이라고 확신합니다.

이를 지원하기 위해 패키지를 설치하고 패키지를 제거한 다음 다시 설치하면 팩맨이 소프트웨어를 다시 다운로드하지 않고 압축을 풀고 다시 설치한다는 것을 알았습니다.

기본 시스템을 설치한 후 추가 소프트웨어를 설치하기 전까지 대략 2GB 정도를 사용했던 것 같습니다. 그 이후로 저는 Matlab, Skype, Wine 및 기타 몇 가지 작은 프로그램만 설치했습니다. 물론 누락된 라이브러리 등도 설치했지만 15GB 미만입니다.

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

그렇다면 사용하지 않는 패키지를 어떻게 제거할 수 있습니까?

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

답변1

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

캐시를 지우는 데 사용할 수 있는 두 가지 방법이 있습니다. 무차별 대입 방법 pacman -Sc:

-c, --clean은
더 이상 설치되지 않는 캐시 패키지에서 제거하고 현재 사용하지 않는 데이터베이스를 동기화하여 디스크 공간을 확보합니다. 팩맨은 패키지를 다운로드할 때 캐시 디렉토리에 저장합니다. 또한 다운로드한 각 동기화 데이터베이스는 데이터베이스를 저장하며 구성 파일 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패키지 종속성과 그에 종속된 패키지도 제거하기 때문에 이 방법을 선호합니다. 언제나 그렇듯이 어떤 패키지가 제거될 것인지 주의 깊게 읽어 보십시오. 시스템을 쉽게 사용할 수 없게 만들 수 있기 때문입니다.

관련 정보