Ubuntu에서 do-release-upgrade를 통해 릴리스 업그레이드에 실패한 후 더 이상 사용되지 않는 패키지를 제거하는 방법은 무엇입니까?


14

때때로을 통해 시스템을 업그레이드 do-release-upgrade하면 업데이트 프로세스가 실패하고 스크립트가을 통해 수동으로 프로세스를 완료하라는 메시지를 표시 dpkg --configure -a합니다. 의존성 문제를 수동으로 해결하고 업그레이드 프로세스를 마무리 한 후에도 문제가되지 않습니다.

그러나 do-release-upgrade스크립트는 업그레이드가 완료된 후 정리 프로세스를 수행합니다.

Remove obsolete packages?  
XXX packages are going to be removed.  
Continue [yN]  Details [d]y

이전 버전의 시스템에서 사용되지 않는 일부 패키지를 제거합니다.

자동 업그레이드가 실패하고 수동으로 업그레이드를 완료 할 때이 프로세스가 실행되지 않는 것 같습니다. 따라서 이전 버전의 오래된 패키지는 시스템에 설치된 상태로 유지됩니다.

직접 업그레이드를 완료 한 후 "사용하지 않는 패키지 제거"프로세스를 수동으로 실행하려면 어떻게해야합니까?

답변:


16

이것을 테스트하십시오 :

터미널을 열고

Ctrl+ Alt+를 누릅니다T

그것을 실행 :

sudo -i

apt-get update

apt-get autoremove

apt-get clean

UNUSCONF=$(dpkg -l|grep "^rc"|awk '{print $2}')

apt-get remove --purge $UNUSCONF

NEWKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g')

ADDKERNEL="linux-(image|headers|ubuntu-modules|restricted-modules)"

METAKERNEL="linux-(image|headers|restricted-modules)-(generic|i386|server|common|rt|xen)"

UNUSKERNELS=$(dpkg -l|awk '{print $2}'|grep -E $ADDKERNEL |grep -vE $METAKERNEL|grep -v $NEWKERNEL)

apt-get remove --purge $UNUSKERNELS

update-grub

1
고맙게도, 그 명령은 내가 원하는 것입니다. 주요 명령은 dpkg -l|grep "^rc"|awk '{print $2}'제거 할 패키지를 보여줍니다. apt-get 또는 aptitude가 제거하기 위해보고 싶지 않다는 것은 이상합니다.
Murz

2
예제를 기반으로 한 do-release-upgrade 실패 후 폐기 된 패키지를 제거하기위한 한 줄 cli 명령은 다음과 같습니다 sudo dpkg -l|grep "^rc"|awk '{print $2}' | xargs sudo apt-get remove -y --purge. 주의 :이 명령은 확인없이 패키지를 제거하지만 시스템을 빠르게 정리하는 데 유용합니다.
Murz

내 시스템에서 '^rc'표시된 패키지가 설치되지 않았지만 더 이상 사용되지 않는 패키지를 검색하기 전에 업그레이드에 실패했습니다. 따라서이 답변은 불완전한 것 같습니다. 성공 하더라도 패키지가 모두 제거되지는 않습니다 do-release-upgrade.
Ruslan

2

"사용하지 않는 패키지 제거"는 실제로을 실행한다고 생각합니다 sudo apt-get autoremove. 시도해보고 도움이되는지 확인하십시오.


2
sudo apt-get autoremove패키지의 작은 부분을 없애기가 없어 do-release-upgrade, 예를 들면, do-release-upgrade동일한 시스템에 대한 패키지 (150)가 제거되지만에 apt-get autoremove- 삭제 약 5-10 패키지.
Murz

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