aptはパッケージが取り残されたと言います、どうすればいいですか?


22

出力apt-get upgradeは次のとおりです。

The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl

これは何を意味するのでしょうか?行動する必要がありますか?もしそうなら、何?

回答:


36

すばやく簡単なソリューション:

同じ問題が何度かありました。最初にしないでください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の回答をご覧ください。それも良い解決策です。

ありがとう。


1
私にとって、パッケージはubuntu-minimalでした。あなたの指示は完璧に機能しました。
DeanM

KDE Neonを使用している場合は、このソリューションを使用しないでください。
グレゴリー・スミザーマン

11

これは何を意味するのでしょうか?

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>

3

このUnixのSEの答え

まず、上記のとおり、本番システムをdist-upgradeしないでくださいdist-upgradingはパッケージを保持したまま「解決」しますが、これは間違いなくこの問題の解決策ではなく、システムへの影響を知らずに実行すると悲惨な結果を招く可能性があります。

パッケージのアップグレードに追加パッケージのインストールが必要な場合、実行時に「保持」されますsudo apt-get upgrade

上記のように、明示的に実行することにより、これらの「保持された」パッケージを手動でインストールできますがsudo apt-get install [paste kept back packages here]、これにより、これらのパッケージが「手動インストール」としてマークされます。

「保持された」パッケージをアップグレードするために必要な追加パッケージを自動的にインストールするには、「保持された」パッケージを手動でインストールされたものとしてマークしないでsudo apt-get --with-new-pkgs upgradeください。


ここ--with-new-pkgsで他の選択肢の副作用と副作用についてもっと説明します
パブロ

2

この答えをブログに含めました。あなたがこのリンクからそこに行くことができることを確認したい場合。

上記のエラーは、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オプション-ssudo apt-get -s dist-upgrade)を使用するか、-s受け入れる前に実行を終了できるオプションなしで、パッケージのリストを必ず確認してください。(オプションnoをいつでも選択できます)


2

最近、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

この記事では、これが起こる理由を簡潔に要約します。

アップグレードを実行するために新しいパッケージをインストールする必要があるように、インストールしたパッケージの1つで依存関係が変更された場合、「保持」としてリストされます。

これに対する解決策は、それらを明示的にインストールすることです

sudo apt install [packages]

依存関係を満たすだけでなく、自分で気にしない限り、これらのパッケージを自動的にインストールされたものとしてマークしたいでしょう。

sudo apt-mark auto [packages]

そもそもこれが起こらないようにするには、

sudo apt --with-new-pkgs upgrade

将来的にパッケージをアップグレードします。これにより、依存関係の変更に合わせて新しいパッケージをインストールできます。


二つの親指--with-new-pkgs!また、 「本番システムをdist-upgradeしないでください。dist-upgradeはパッケージを保持したまま「解決」しますが、この問題の解決策ではないことは間違いありません。システムへの影響を知らずに実行してください。」
xpt
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.