yum + Linux Redhat에서 사용하지 않는 rpm/패치를 삭제하는 방법

yum + Linux Redhat에서 사용하지 않는 rpm/패치를 삭제하는 방법

RedHat Linux 시스템에 패치 업데이트를 설치하기 위해 yum을 사용하고 있습니다.

사용하지 않는 rpm/패치를 제거하기 위해 yum을 다른 방법으로 사용할 수 있습니까?

내 목표는 파티션의 일부 공간을 확보하기 위해 불필요한 rpm/패치를 제거하는 것입니다.

이전 rpm 커널을 제거하는 다음 명령을 찾았습니다.

 (package-cleanup) from - yum install yum-utils

 package-cleanup --oldkernels --count=1

답변1

yum을 사용하여 새 업데이트를 설치하면 원래 설치된 패키지와 바이너리도 업데이트됩니다. 여러 개의 복사본을 보관하지 않습니다. 그러나 다양한 것을 캐시합니다.

자신의 캐시 파일을 yum clean구성하는 데 사용할 수 있는 다양한 옵션이 있습니다 .yum

예를 들어, yum clean packages다운로드한 캐시 패키지가 삭제되고 일부 다른 옵션이 도움이 될 수 있지만 일반적으로 yum데이터는 다음 실행 시에만 다시 작성됩니다.

man yum다른 청소 옵션에 대한 정보가 제공됩니다.

답변2

제거할 수 있는 패키지를 결정하려면 두 가지 방법을 사용하는 것이 좋습니다.

  • 관련 RedHat 버전(그런데 언급하지 않았음)을 최소로 설치하고 시스템이 수행할 것으로 예상되는 작업에 필요한 패키지만 맨 위에 추가하십시오.
    그런 다음 이름별로 모든 패키지 목록을 얻은 다음(약간 최신/이전 버전의 패키지와 쉽게 비교할 수 있음) rpm -qa --qf="%{N} \n" | sort > minimal_install "정리"하려는 시스템의 백업을 생성하고 목록에 없는 패키지를 제거합니다 minimal_install. 철저한 검토.

  • 패키지를 크기별로 정렬하고 목록 맨 위에 있는 패키지 중 일부를 제거하여 최소한의 패키지로 디스크 공간을 최대한 절약해 보세요. 예를 들어 목록을 가져옵니다. rpm -qa --qf '%{size} \t%{name}\n' | sort -n > packages_sorted_by_size

  • 실제로 디스크 공간의 대부분을 차지하는 것이 무엇인지 확인하는 것은 예를 들어 du -mx /|sort -rn|head -35/usr이 목록의 맨 위에 없으면 rpm 패키지를 정리할 우선 순위가 되어서는 안 됩니다.

답변3

"yum update" 작업을 실행하면 시스템의 모든 패키지가 업데이트됩니다.

구체적으로 이는 다음을 의미합니다. 새 버전 다운로드 새 버전 다운로드를 확인합니다. 새 버전 설치/업데이트 새 버전 설치 확인

이전 패키지는 더 이상 설치되지 않고 새 패키지만 설치됩니다. 어떤 확장명을 가지고 있는지에 따라 디스크에 rpm 파일만 있을 수 있습니다. "yum clean all"은 다음 yum 작업에서 다시 생성되는 저장소 메타데이터와 함께 해당 파일을 삭제합니다.

또는 예를 들어 Firefox 업데이트에만 관심이 있는 경우 "yum update firefox" 명령을 실행하면 Firefox 업데이트와 새 Firefox 업데이트를 설치하는 데 필요한 모든 종속성이 제한됩니다.

이전에 언급한 증분 업데이트는 drpm(델타 패키지)이며 설치한 버전의 패키지 콘텐츠에 대한 변경 사항과 이를 제공하는 모든 저장소에 대해 RHEL7/Fedora에서 활성화해야 하는 업데이트입니다. RHEL6을 활용하려면 yum 플러그인 "presto"와 이를 지원하는 저장소를 설치해야 합니다.

답변4

RPM 패키지에는 증분 업데이트가 포함되어 있지 않습니다(Solaris 등과 반대). 따라서 각 패키지에는 업그레이드 및 새로 설치에 필요한 모든 것이 포함되어 있습니다.

당신이 전화할 때

yum install firefox

이미 설치되어 있으면 firefox최신 버전이 있더라도 yum은 계속 진행을 거부해야 합니다. 전화해야 할 곳:

yum upgrade firefox

그러면 새 버전의 패키지가 설치되고 이전 패키지가 자동으로 제거됩니다. 따라서 시스템에 남은 콘텐츠가 남아 있어서는 안 됩니다.

다음과 같이 전화할 수도 있습니다.

yum install http://foo.bar/firefox-40-1.rpm

현재 설치된 패키지보다 최신 버전인 경우 yum이 자동으로 이를 yum upgrade명령으로 변환합니다.

한 가지 예외가 있습니다 - 커널입니다.

yum install kernel

사용 가능한 경우 새 커널이 설치되지만 이전 커널은 제거되지 않습니다. 따라서 새 커널이 작동하지 않으면 이전 커널로 부팅할 수 있습니다. 실제로 다른 패키지에서도 작동합니다. 다음 man페이지를 인용하겠습니다 yum.conf.

installonlypkgs제공된 패키지 목록은 설치만 해야 하며 업데이트해서는 안 됩니다. 커널은 특히 이 범주에 속합니다. 기본값은 kernel, kernel-bigmem, kernel-enterprise, kernel-smp, kernel-modules, kernel-debug, kernel-unsupported, kernel-source, kernel-devel, kernel-PAE, kernel-PAE-debug입니다.

패키지 이름뿐만 아니라 이러한 정보도 제공되므로 kernel-devel은 kernel-debug-devel 등과도 작동합니다.

installonly_limitinstallonlypkgs나열된 동안 설치된 패키지 수를 유지하십시오. 0으로 설정하면 이 기능이 비활성화됩니다. 기본값은 "3"입니다. 이 기능은 "installonlyn" 플러그인에 있었는데, 이 옵션은 tokeep을 통해 변경되었습니다. 버전 3.2.24부터 yum은 이제 yumdb에서 설치된 패키지의 installonly 속성을 찾습니다. 속성이 "예약"되어 있으면 삭제되지 않습니다.

따라서 동시에 최대 3개의 커널 패키지를 설치할 수 있습니다. 하지만 4개는 아닙니다. yum이 자동으로 삭제를 시작하기 때문입니다. 말씀하신 것처럼 package-cleanup --oldkernels정말로 원한다면 이전 커널을 제거할 수 있습니다.

upgradeyum은 트랜잭션 중에 매번 이 작업을 수행하므로 일반 패키지의 경우 유사한 작업을 수행할 필요가 없습니다 .

다음을 실행하여 확인할 수 있습니다.

rpm -q kernel

3개의 패키지가 나열될 수 있습니다. 하지만

rpm -q httpd

하나의 패키지만 나열되어야 합니다. 그리고

rpm -q glibc

64비트 시스템에는 2개의 패키지가 나열될 수 있습니다. 하나는 x86_64필요한 패키지가 있는 경우(예를 들어) 다른 하나입니다.i686multilibwine

관련 정보