CentOS7이 설치된 Linux 서버를 사용하여 일부 도구를 테스트하고 설치합니다. 이제 얼마나 많은 패키지를 설치했는지 기억이 나지 않습니다.
내 서버가 새 것과 같을 수 있도록 이러한 패키지를 모두 제거하고 싶습니다. 각 패키지를 검색하여 하나씩 삭제하고 싶지 않습니다. 명령어 하나로 제거할 수 있는 방법이 있나요?
답변1
설치 날짜의 역순으로 모든 파일을 파일로 나열합니다.
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)
답변2
을 사용해 볼 수도 있습니다. 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
예를 들어 나중에 사용할 수 있습니다.
Yum!의 역사에 대한 자세한 내용여기.
답변3
모든 과거 거래를 롤백하려면 다음 o-liner를 사용할 수 있습니다.
# yum history list|awk '$1 ~ /[0-9]+/ {print $1}'| while read a; do yum history undo -y $a; done
이 명령을 실행하면 설치된 모든 패키지가 제거되므로 주의하세요! 확인하려면 -y 플래그를 제거하면 됩니다.