web-dev-qa-db-ja.com

aptはパッケージが取り戻されたと言っています。

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

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

これは何を意味するのでしょうか?私は行動を起こすべきですか?もしそうなら、何?

16

すばやく簡単に解決:

私は同じ問題を抱えています。 しない最初にSudo apt-get dist-upgradeをします。とても重要です。

なぜ?

それはあなたのシステムを非常に不安定にし、プログラムがクラッシュする可能性があり、あなたはあなたのOSの多くの機能を失う可能性があります。

あなたはMUST各パッケージを個別にインストールします、しかしながら、その過程で他の依存関係も自動的にインストールされ、あなたの問題はほんの数分で解決されます。

次の解決策では問題はありませんでした。かなり早く簡単です。


まず、これをしてください:

apt list --upgradable

  • これにより、アップグレード可能なパッケージの一覧が表示されます。

次に、これをしてください:

  • リストの先頭から最初のパッケージを入力して、次のように入力します。

Sudo apt-get install package-name-here

  • これはインストールプロセスと依存関係のpull/installを通して実行されます。

そのプロセスが完了した後、これをして下さい:

apt list --upgradable

  • これにより、どのパッケージをアップグレードできるかがわかります。あなたのパッケージのリストは今減少しているはずです。各パッケージのインストール後に、パッケージのリストに従って、apt list --upgradableと入力します。これが完了するまでに数分かかるだけです。

最後に:

Sudo apt-get autoclean

Sudo apt-get update && Sudo apt-get dist-upgrade

この解決策がうまくいった場合は、正しい解決策が他の人にも利用可能になり、回答リストの一番上になるように、それを支持することを忘れないでください。

何らかの理由でこの解決策がうまくいかない場合は、以下のユーザーGAD3Rの回答を参照してください。これも良い解決策です。

ありがとう。

24

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

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>
11
GAD3R

このUnix SEの答えから

まず上記のようにしてくださいいかなるプロダクションシステムもdist-upgradeしないでください!dist-upgradeはパッケージを "解決"し続けますが、これは間違いなくこの問題の解決策ではないシステムに与える影響を知らずに実行した場合、かなりの可能性がありますが、良い結果よりも深刻な結果を招きます。

パッケージをアップグレードするために追加のパッケージをインストールする必要がある場合は、Sudo apt-get upgradeを実行するときに「元の状態に保たれます」。

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

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

3
Brian Heese

私は私のブログにこの答えを含めました。あなたがこの リンク からそこに行くことができることを見たいのならば。

あなたが(apt-get upgrade)をアップグレードしようとするとき、上記のエラーはUbuntuターミナルで非常に一般的です。これは通常、インストールした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オプションなしで実行を終了してから受け入れることができます。 (あなたは常にオプションいいえを選択することができます)

この記事 これが起こる理由をうまくまとめています:

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

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

Sudo apt install [packages]

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

Sudo apt-mark auto [packages]

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

Sudo apt --with-new-pkgs upgrade

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

1
Karl Bartel

最近の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
Dick Visser