일부 파일을 유지하면서 rpm 패키지를 삭제하는 방법

일부 파일을 유지하면서 rpm 패키지를 삭제하는 방법

httpd64비트 및 32비트 패키지를 설치하는 데 문제가 있습니다.

uninstall 을 통해 패키지 중 하나가 제거 되면 yum remove./etc/httpd/conf/httpd.conf

rpm파일 삭제를 통과하거나 제외하는 방법이 있습니까 yum? 두 페이지를 모두 살펴봤지만 man관련 옵션이 표시되지 않았습니다.

참고: 제거 후 파일을 백업하고 복원할 수 있다는 것을 알고 있습니다. 더 깨끗하고 우아한 옵션이 있는지 궁금합니다.

답변1

rpm -e --justdb이상적이지는 않지만 파일을 삭제하지 않고 pkg를 삭제된 것으로 기록 하여 비슷한 문제를 해결했습니다 . 설치 섹션에만 나열 rpm되고 제거 섹션에는 나열되지 않은 이전 v4.4.2.3 이 있지만 제거에도 작동합니다.man rpm--justdb

개요:

  • 각 pkg에서 선언된 파일을 나열합니다.
  • 콘텐츠를 삭제하지 않고 데이터베이스에서 나가는 패키지 제거rpm -e --justdb PKG
  • 삭제된 pkg 선언을 정리하고 삭제하지만 나머지 pkg 선언되지 않은 파일은 삭제합니다.

준비하다

pkg_keep="asterisk-core-1.6.2.24-1_centos5"
pkg_del="asterisk16-core-1.6.2.20-2_centos5"

# Record files claimed by each package
rpm -ql "${pkg_del}" > "files.${pkg_del}"
rpm -ql "${pkg_keep}" > "files.${pkg_keep}"

나가는 pkg에서 선언했지만 나머지 pkg에서는 선언하지 않은 파일을 나열합니다. 경고하다: --line-regexp중요하므로 /file필터링되지 않습니다 /file2.

grep -v -F --line-regexp -f "files.${pkg_keep}" "files.${pkg_del}" > files.cleanup

파일을 삭제하지 않고 RPM DB에서 나가는 PKG를 제거합니다. 암시적 man rpmif에서는 명확하지 않습니다. 필요할 수도 있습니다.--noscripts--justdb--nodeps

rpm -e --justdb --noscripts "${pkg_del}"

검토주의 깊은내용을 삭제 files.cleanup하고 그 안에 나열된 파일을 삭제합니다.

나열된 파일 IMO를 자동으로 삭제할 수 있지만 files.cleanup여기서 명령을 내리면 복사/붙여넣기 판독기가 손상될 수 있습니다.

etckeeper또한 바닥에만 관심이 있다면 이와 같은 것을 사용하는 것이 도움이 될 것입니다 /etc/.

답변2

httpd.conf 파일이 "구성" 파일로 선언되지 않도록 패키지가 구성되어 패키지가 제거될 때 저장되지 않는 것 같습니다. httpd.conf가 구성 파일로 선언되어 설치 후 변경된 경우 패키지 제거 중에 httpd.conf.rpmsave로 저장됩니다. 바라보다http://ftp.rpm.org/max-rpm/ch-rpm-erase.html패키지 제거 중에 수행되는 단계에 대해 설명합니다.

언급한 대로 파일 백업 및 복구를 통해 또는 rpm -qc <package>.

  • 패키지의 구성 파일을 쿼리하고 실행하면아니요거기에서 httpd.conf를 찾으면 패키지 제거 프로세스 중에 해당 파일이 삭제될 것으로 예상할 수 있으며, 미리 안전한 장소에 복사할 수 있습니다.

  • 패키지의 경우했다httpd.conf를 구성 파일로 나열한 다음: (1) 파일을 의미 있게 변경했으며 패키지 제거 후에도 유지됩니다. 또는 (2) 패키지가 설치된 이후 파일이 변경되지 않았으며 (무해하게) 제거됩니다. 포장 제거 중.

답변3

안타깝게도(또는 다행히도 보는 방법에 따라) 선택적 파일 삭제와 같은 기능은 없습니다. 내 제안은 파일, 그렇게 표시된 구성 파일 및 각 관련 패키지에 대한 문서를 나열하고 보관하려는 항목 목록을 살펴보는 것입니다.

사용

  • rpm -ql packagename파일을 나열하는 데 사용됩니다.
  • rpm -qc packagename구성 파일을 나열하는 데 사용됩니다.
  • rpm -qd packagename문서 파일을 나열하는 데 사용됩니다.

@Jeff Schaller가 이미 지적한 것처럼 이러한 목록을 살펴보고 구성 파일이어야 하지만 그렇게 표시되지 않은(즉, rpm -ql출력에 표시되지 않은) 파일에 대한 백업을 수동으로 생성하십시오.

관련 정보