web-dev-qa-db-ja.com

Ubuntuでdo-release-upgradeを使用してリリースアップグレードに失敗した後、古いパッケージを削除するにはどうすればよいですか?

do-release-upgradeを使用してシステムをアップグレードすると、更新プロセスが失敗し、dpkg --configure -aを使用して手動でプロセスを終了するように指示されることがあります。これは深刻な問題ではありません-依存関係の問題を手動で解決し、アップグレードプロセスがすべて正常に機能した後。

ただし、do-release-upgradeスクリプトには、アップグレードの終了後にクリーンアッププロセスがあります。

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

古いバージョンのシステムから古いパッケージを削除します。

自動アップグレードが失敗し、手動でアップグレードを完了すると、このプロセスが実行されないため、古いバージョンの古いパッケージがシステムにインストールされたままになります。

手動でアップグレードを完了した後、「古いパッケージの削除」プロセスを手動で実行するにはどうすればよいですか?

13
Murz

これをテストします:

ターミナルを開き、

押す 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
15
kyodake

「古いパッケージの削除」は実際にはSudo apt-get autoremoveを実行するだけだと思います。それを試して、それが役立つかどうかを確認してください。

2
Dan Johansen

無関係な質問のこの答え は、使用されていないものをより多く削除するように見えるユーティリティとコマンドを提供する可能性があります:

  1. 「deborphan」パッケージをインストールします。
  2. Sudo deborphan | xargs Sudo apt-get -y remove --purge
1
DustWolf