出力apt-get upgrade
は次のとおりです。
The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl
これは何を意味するのでしょうか?行動する必要がありますか?もしそうなら、何?
出力apt-get upgrade
は次のとおりです。
The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl
これは何を意味するのでしょうか?行動する必要がありますか?もしそうなら、何?
回答:
同じ問題が何度かありました。最初にしないでください
sudo apt-get dist-upgrade
。とても重要です。****注:このソリューションはDebianベースのマシン向けですが、KDE Neonでは動作しません。KDE Neonを更新するには、。****を使用する必要がありますsudo pkcon update
システムが非常に不安定になり、プログラムがクラッシュし、OSの多くの機能が失われる可能性があります。
あなたがしなければならない個別のパッケージをインストールし、もつとも、そのプロセスの間に、他の依存関係も自動的にインストールされますと、あなたの問題は、わずか数分で解決されます。
次のソリューションで問題は発生していません。それはかなり迅速かつ簡単です。
apt list --upgradable
sudo apt-get install package-name-here
apt list --upgradable
apt list --upgradable
各パッケージのインストール後に入力します。これを完了するのに数分しかかかりません。
sudo apt-get autoclean
sudo apt-get update && sudo apt-get dist-upgrade
このソリューションがあなたのために働いた場合、正しいソリューションが他の人に利用可能であり、答えのリストの一番上にあるように、それを支持することを忘れないでください。
何らかの理由でこのソリューションが機能しない場合は、以下のユーザーGAD3Rの回答をご覧ください。それも良い解決策です。
ありがとう。
これは何を意味するのでしょうか?
The following packages have been kept back:
答えはこちら
これは、何らかの理由でインストールされないこれらのパッケージの新しいバージョンがあることを意味します。考えられる理由は、依存関係の破損(依存するパッケージにダウンロード可能なバージョンがない)または新しい依存関係(パッケージが前回のバージョン以降の新しいパッケージに依存するようになった)です。
行動する必要がありますか?
dist-upgrade
新しい依存関係をインストールしてパッケージをアップグレードするために使用する必要があります。
sudo apt-get dist-upgrade
この問題は、dist-upgrade
実行する必要がない場合は実行することで解決できます。
壊れた依存関係を修正
sudo apt-get -f install
システムにインストールされなくなったパッケージを削除します。
sudo apt-get autoclean
目的のパッケージを保留にします。
echo "<package_name> hold" | dpkg --set-selections
名前付きパッケージを再構成します。
dpkg-reconfigure <package_name>
まず、上記のとおり、本番システムをdist-upgradeしないでください!dist-upgradingはパッケージを保持したまま「解決」しますが、これは間違いなくこの問題の解決策ではなく、システムへの影響を知らずに実行すると悲惨な結果を招く可能性があります。
パッケージのアップグレードに追加パッケージのインストールが必要な場合、実行時に「保持」されますsudo apt-get upgrade
。
上記のように、明示的に実行することにより、これらの「保持された」パッケージを手動でインストールできますがsudo apt-get install [paste kept back packages here]
、これにより、これらのパッケージが「手動インストール」としてマークされます。
「保持された」パッケージをアップグレードするために必要な追加パッケージを自動的にインストールするには、「保持された」パッケージを手動でインストールされたものとしてマークしないでsudo apt-get --with-new-pkgs upgrade
ください。
この答えをブログに含めました。あなたがこのリンクからそこに行くことができることを確認したい場合。
上記のエラーは、Ubuntuターミナルでアップグレードしようとするとよく発生します(apt-get upgrade
)。これは通常、インストールする1つのパッケージの依存関係が変更されたために発生します。アップグレードするには、それらも最初にアップグレードする必要があります。それを解決するのは非常に簡単です。このエラーメッセージの下に戻ったパッケージを見ることができます。例として、リストに次のパッケージが表示されます。
gnome-software gnome-software-common linux-generic linux-headers-generic
linux-image-generic snapd ubuntu-core-launcher ubuntu-software
ただ入力するのsudo apt-get dist-upgrade
ではなく、保留中の更新をすべてインストールするため、非常に危険です。これにより、作業環境が非常に不安定な状態になる可能性があります。
したがって、私の意見は有名な
sudo apt-get install [package]
[package]
エラーメッセージにあるパッケージに置き換えることができます。また、リストとしてそのまま置くこともできます(コピーして貼り付けてください)。私の場合の例として、私は入力することができます
sudo apt-get install gnome-software gnome-software-common linux-generic linux-headers-generic
linux-image-generic snapd ubuntu-core-launcher ubuntu-software
やりたいなら
sudo apt-get dist-upgrade
何らかの理由で、simulateオプション-s
(sudo apt-get -s dist-upgrade
)を使用するか、-s
受け入れる前に実行を終了できるオプションなしで、パッケージのリストを必ず確認してください。(オプションnoをいつでも選択できます)
最近、Debianセキュリティアップデートにより、いくつかの新しい依存関係が導入されました。この場合、linux-image
パッケージにはが必要linux-firmware
になり始めました。そのため、それらはインストールされずに抑制されましたunattended-upgrade
。いくつかのテストと確認を行った後、他の保留中の更新には触れずに、それらのパッケージのみを選択的にインストールできました。
apt-get -yy install $(apt-get -s upgrade | sed '1,/kept back/d;/will be upgraded/,$d')
この記事では、これが起こる理由を簡潔に要約します。
アップグレードを実行するために新しいパッケージをインストールする必要があるように、インストールしたパッケージの1つで依存関係が変更された場合、「保持」としてリストされます。
これに対する解決策は、それらを明示的にインストールすることです
sudo apt install [packages]
依存関係を満たすだけでなく、自分で気にしない限り、これらのパッケージを自動的にインストールされたものとしてマークしたいでしょう。
sudo apt-mark auto [packages]
そもそもこれが起こらないようにするには、
sudo apt --with-new-pkgs upgrade
将来的にパッケージをアップグレードします。これにより、依存関係の変更に合わせて新しいパッケージをインストールできます。
--with-new-pkgs
!また、 「本番システムをdist-upgradeしないでください。dist-upgradeはパッケージを保持したまま「解決」しますが、この問題の解決策ではないことは間違いありません。システムへの影響を知らずに実行してください。」