설치 한 모든 패키지를 완전히 제거 하시겠습니까?


12

CentOS7이 설치된 하나의 Linux 서버를 사용하여 일부 도구를 테스트하고 설치했습니다. 그리고 나는 내가 얼마나 많은 패키지를 설치했는지 기억하지 못한다.

서버가 새 것처럼 보이도록 모든 패키지를 제거하고 싶습니다. 모든 패키지를 검색하고 하나씩 제거하고 싶지 않습니다. 단 하나의 명령으로 제거 할 수있는 방법이 있습니까?


/var/log/yum.log패키지 이름과 타임 스탬프를 모두 나열하면 도움이 될 수 있습니다. 내가 볼 수있는 한, 초기 설치로 추가 된 패키지는 나열하지 않습니다.
Ulrich Schwarz

yum.log 파일에는 설치된 모든 패키지가 나열되지만 하나의 명령으로 모든 패키지를 어떻게 삭제할 수 있습니까?
하나의

2
"표준 쉘 기술";)sudo yum remove $(gawk '$0 ~ /Installed/ {printf "%s ", $NF}' /var/log/yum.log)
Ulrich Schwarz

답변:


14

설치 날짜의 역순으로 모든 파일을 파일에 나열하십시오.

rpm -qa --last >list

당신은 같은 줄을 얻을 것이다

atop-2.1-1.fc22.x86_64                        Wed Apr 13 07:35:27 2016
telnet-server-0.17-60.fc22.x86_64             Mon Apr 11 20:10:43 2016
mhddfs-0.1.39-3.fc22.x86_64                   Sat Apr  9 21:26:06 2016
libpcap-devel-1.7.3-1.fc22.x86_64             Fri Apr  8 09:40:43 2016

귀하에게 적용되는 마감 날짜를 선택하고 그 뒤에 나오는 모든 줄을 삭제하십시오. 날짜 부분을 제거한 후 나머지 줄을 yum에 제거하십시오. 예 :

sudo yum remove $(awk '{print $1}' <list)

7

시도해 볼 수 yum history있으며 일반적으로 다음과 같이 설치된 항목의 번호가 매겨진 목록을 얻습니다.

[root@localhost ~]# yum history
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
ID | Login user               | Date and time    | Action(s)      | Altered
 3 | root <root>              | 2011-09-14 14:36 | Install        |    1   
 2 | root <root>              | 2011-09-12 15:48 | I, U           |   80   
 1 | System <unset>           | 2011-09-12 14:57 | Install        | 1025  

yum history undo 3예를 들어 나중에 사용할 수 있습니다 .

m 역사에 대한 자세한 내용은 여기를 참조 하십시오 .


0

모든 히스토리 트랜잭션을 롤백하기 위해 아래의 o-liner를 사용할 수 있습니다.

# yum history list|awk '$1 ~ /[0-9]+/ {print $1}'| while read a; do yum history undo -y $a; done

설치된 모든 패키지가 제거되므로이 명령을 실행하는 동안주의하십시오! 확인을 원하면 -y 플래그를 제거하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.