「次のパッケージは保存されていません」とはどういう意味ですか?


72

を実行するapt-get upgradeと、「次のパッケージは保存されました」というメッセージが表示されることがあります。例えば:

$ sudo apt-get upgrade                                                                                                
Reading package lists... Done                                                                                                          
Building dependency tree                                                                                                               
Reading state information... Done                                                                                                      
The following packages have been kept back:                                                                                            
  linux-headers-server linux-image-server linux-server                                                                                 
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

これはどういう意味ですか?明らかに、パッケージは抑制され、インストールされていませんが、なぜですか?

次の質問は、これらの保存されたパッケージをどのようにアップグレードしますか?


2
非常に明確な説明はここで見つけることができます:debian-administration.org/article/69/...
jplandrain

以下に関するコメントと技術文書を要約しました。以下のパッケージは保存されています。これを改善するために、私の記事を読んでコメントを残してください。この請願に対処するための時間をありがとう。また、この投稿がお役に立てば幸いです。これはそのリンクです:guillermo.lopez.co.cr/…このトピックについて誰かが助けを必要とするとき、リソースとしてこの記事を引用してください。
イタン

回答:


63

アップグレードのために別のパッケージを削除するか、新しいパッケージをインストールする必要がある場合、パッケージは「保持」されます。apt-get upgrademanページで説明されているように:

現在利用可能な新しいバージョンでインストールされているパッケージが取得され、アップグレードされます。現在、インストールされているパッケージが削除されたり、まだインストールされていないパッケージが取得およびインストールされたりすることはありません。

これを乗り越えるには、次のことができます

sudo apt-get --with-new-pkgs upgrade

これにより、新しいパッケージをインストールできます。どのパッケージがインストールされるかを知らせ、実際にインストールを行う前にプロンプ​​トを表示します。


6
ニース、これが最も明確な説明です。ただし、die.netでリンクしたmanページには--with-new-pkgsオプションは含まれていません。これは:manpages.debian.org/cgi-bin/man.cgi
Charles Roper

1
しかし、すべてのパッケージを更新およびアップグレードしたので、なぜそれらのパッケージはアップグレードしないのですか?
ヌルポインター

2
@Nullpointer "apt-get upgrade"は、新しいパッケージをインストールしません(フラグを指定しない限り)。フラグがなければ、既存のパッケージのアップグレードで新しいパッケージのインストールが必要になる場合、そのアップグレードは行われません。
チャド

18

基本的なレポートはapt-get upgrade、パッケージマネージャーがパッケージを削除して再インストールするパッケージをアップグレードしないことです。多くの場合、実際にパッチが適用されたのは最終的な配布可能なコンパイルの前のライブラリであったため、これはセキュリティパッチで頻繁に発生します。「先に進んで物を削除する」機能が残りますが、最後に試した後で上流の人が何かを見つけた場合に備えて、最初apt-get dist-upgradeに実行apt-get updateしてください。時々、彼らは物事を逃し、すぐにそれらを修正します。


3

試してくださいapt-get dist-upgrade。manページから:

dist-upgrade

dist-upgradeの機能を実行することに加えてupgrade、パッケージの新しいバージョンとの依存関係の変更をインテリジェントに処理します。apt-get 「スマート」な競合解決システムがあり、必要に応じて重要度の低いパッケージを犠牲にして最も重要なパッケージのアップグレードを試みます。そのため、dist-upgradeコマンドによって一部のパッケージが削除される場合があります。この/etc/apt/sources.listファイルには、目的のパッケージファイルを取得する場所のリストが含まれています。apt_preferences(5)個々のパッケージの一般設定を上書きするメカニズムについても参照してください。

このコマンド、オペレーティングシステムの新しいメジャーバージョンにアップグレードするために使用されますが、デフォルトではこれを行いませ。ファイルは/etc/apt/sources.list新しいバージョンに変更する必要があり、その後、dist-upgrade使用されています。


0

ただやる

sudo apt-get install linux-headers-server linux-image-server linux-server

保留パッケージをアップグレードします。

その後、実行apt-get upgradeすると元気になります。


5
これは間違っています。apt-get dist-upgradeしない新しいバージョンにあなたのOSをアップグレードしてください。man apt-get違いを確認します。
BT643 14年

@ BT643(およびコメントを支持した人)は、単にコメントを残すのではなく、間違った答えを支持してください。特に、このように露骨に間違った答えは、一般的な誤解を永続させます。良いコンテンツを前面に出すだけでなく、間違ったコンテンツを押し下げるために、私たちは投票に依存しています。
テルドン

1
@terdon試しましたが、十分な担当者がいません:)(ダウン票するには125が必要です)。
BT643 14年

最初の部分(保留されたパッケージだけをインストール/アップグレードする)は良い答えではありませんか?次に、アップグレードを続行します。dist-upgradeについての問題のあるアドバイスを削除することは、部分的に正しい答えをただ
投票

最初に使用を検討してください:sudo apt-get --with-new-pkgs upgradeパッケージが手動でインストールされたとマークされることによる副作用はありません
l --marc l
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.