설치 한 모든 패키지를 완전히 제거 하시겠습니까? 새 것처럼 보이도록 모든 패키지를 제거하고

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

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



답변

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

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)


답변

시도해 볼 수 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 역사에 대한 자세한 내용은 여기를 참조 하십시오 .


답변

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

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

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


답변