
削除するパッケージが 1546 個リストされています。xorg
、xserver
およびその他のコア パッケージが含まれます。 以前「はい」と入力したところ、予想どおり OS が壊れてしまい、最初から再インストールする必要がありました。 今回は「いいえ」と答えて、次のことを試しました。
sudo apt-get -y update --fix-missing
しかし、まだすべてを削除しようとしています。どうすれば修正できますか?
答え1
これは、デスクトップを最小インストールにボルトで固定するときに最もよく発生します。ただし、Ubuntu システムにあらゆる種類の主要なスタックをボルトで固定した場合にも発生する可能性があります。
デスクトップの例では、デスクトップ スタック全体が単一のメタパッケージ (ubuntu-desktop
パッケージなど) に依存していることを意味します。デスクトップの要素またはアプリケーションを削除すると (デスクトップ メタパッケージが削除されます)、そのアクションによってデスクトップ スタック全体が自動削除の対象になります。
防止
実際のデスクトップ インストーラーを使用する場合、デスクトップ全体が自動削除されるのを防ぐための apt マーキング保護の追加レイヤーがあります。
使用するアプリケーションを明示的にインストール (または apt-mark) することもできます。 そうすれば、デスクトップの依存関係のほとんどは自動的に削除されなくなります。
sudo apt install shotwell # Example of explicitly installing sudo apt-mark manual shotwell # Example of apt-marking
タスクパッケージを使用してインストールします。たとえば、Ubuntu MATEは次のようにインストールできます。
sudo apt-get install ubuntu-mate-desktop^
注意してください
^
sudo apt autopurge ubuntu-mate-desktop
はタスクを意味します。この方法でインストールすると、誰かがメタパッケージのような潜在的に危険なコマンドを実行したい場合にシステムが破壊されるのを防ぐことができます。
回復
デスクトップ タスク パッケージを再インストールするだけです。
sudo apt install --reinstall ubuntu-desktop^ # Example of re-installing a Ubuntu desktop task
削除する項目の長いリストをコピーして、インストールコマンドに貼り付けることもできます。ネーミングパッケージは将来の自動削除の対象から外されますが、自動削除が少なすぎるのではなく多すぎることが懸念事項のようです。そのリストを復元する必要がある場合は、ファイル内にあります
/var/log/apt/history.log
。
答え2
自動削除によって保持したいものが削除されると思われる場合は、パッケージごとに次の操作を行う必要があります。
dpkg -l | grep $shortpackagename
新しいバージョンもインストールされているかどうかを確認するために使用します。その場合は古いバージョンを削除しても問題ありません。- 必要な親パッケージがあるかどうかを確認するために使用します
apt rdepends $packagename
。ある場合は、その親パッケージまたはその親パッケージの逆依存関係をインストールします。 - 保持したい (明らかな) 親依存パッケージがないが、
apt install $packagename
自動削除によってアンインストールされないように保持したい場合。
上記の良い例 (コメントに記載されているとおり) では、autoremove が削除してxorg
からインストールする場合ubuntu-desktop
、多くの autoremove に親依存関係がインストールされ、リストが短くなることが分かるでしょう。
リストが十分に短くなり、残っているのが古いパッケージか、気にする必要がないことが確実なものだけになったら、自動削除は安全です。
この状況は正常ではなく、自動的に発生するものではありません。ある時点で、システムから何か重要なものが削除され、重要な親パッケージ (ubuntu-desktop など) が削除されることが原因です。