Debianバックポートカーネルを自動的にインストールする


8

次のピンニングセットを持っています。

Package: linux-image-amd64
Pin: release a=wheezy-backports
Pin-Priority: 1001

Package: *
Pin: release a=wheezy-backports
Pin-Priority: 499

次のエラーが発生します。

$ sudo apt-get install linux-image-amd64
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 linux-image-amd64 : Depends: linux-image-3.16.0-0.bpo.4-amd64 but it is not going to   be installed
E: Unable to correct problems, you have held broken packages.

ポリシーは正しいようです:

$ apt-cache policy linux-image-amd64
linux-image-amd64:
  Installed: 3.2+46
  Candidate: 3.16+63~bpo70+1
  Package pin: 3.16+63~bpo70+1
  Version table:
     3.16+63~bpo70+1 1001
        499 http://ftp.nl.debian.org/debian/ wheezy-backports/main amd64 Packages
 *** 3.2+46 1001
        500 http://ftp.nl.debian.org/debian/ wheezy/main amd64 Packages
        100 /var/lib/dpkg/status

$ apt-cache policy linux-image-3.16.0-0.bpo.4-amd64
linux-image-3.16.0-0.bpo.4-amd64:
  Installed: (none)
  Candidate: 3.16.7-ckt4-3~bpo70+1
  Version table:
     3.16.7-ckt4-3~bpo70+1 0
        499 http://ftp.nl.debian.org/debian/ wheezy-backports/main amd64 Packages

したがって、エラーは発生しません。何が悪いのですか?

パペットを使用してすべてのWheezyマシンをバックポートカーネルにアップグレードしようとしています(再起動が予定されています)。すべてのサーバーに手動でログインして実行できます。

sudo apt-get install -t wheezy-backports linux-image-amd64

これは機能しますが、それほど便利ではありません。

更新

要求通り:

/etc/apt/preferences.d$ cat linux-image 
Package: linux-image-*
Pin: release a=wheezy-backports
Pin-Priority: 1001

Package: *
Pin: release a=wheezy-backports
Pin-Priority: 499

/etc/apt/preferences.d$ sudo apt-get update
Hit http://debian.kumina.nl wheezy-kumina Release.gpg
.
.
.
Reading package lists... Done
/etc/apt/preferences.d$ sudo apt-get install linux-image-amd64
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 linux-image-amd64 : Depends: linux-image-3.16.0-0.bpo.4-amd64 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
/etc/apt/preferences.d$ aptitude why-not linux-image-3.16.0-0.bpo.4-amd64
Unable to find a reason to remove linux-image-3.16.0-0.bpo.4-amd64.

回答:


3

そのパッケージが依存しているもの、およびそれらの依存関係に必要なものも確認してください。たとえば、私のマシンでは次のようになっています。

#apt-cache  show linux-image-amd64
Package: linux-image-amd64
<snip>
Depends: linux-image-3.16.0-4-amd64

そして

# apt-cache  show linux-image-3.16.0-4-amd64
Package: linux-image-3.16.0-4-amd64
<snip>
Depends: kmod | module-init-tools, linux-base (>= 3~), debconf (>= 0.5) | debconf-2.0, initramfs-tools (>= 0.110~) | linux-initramfs-tool
Pre-Depends: debconf | debconf-2.0

依存関係がバックポートから取得されているかどうかも確認してください。


それは私の質問ですでに説明されています...
Tim Stoop、2015

1
あなたの質問には依存関係バージョンの固定について何も見当たりません。linux-image-3.16.0-0.bpo.4-amd64に必要なパッケージには、より高い優先度を設定する必要があります。これをチェックしてください:Depends: kmod | module-init-tools, linux-base (>= 3~), debconf (>= 0.5) | debconf-2.0, initramfs-tools (>= 0.110~) | dracut (>= 0.40+1-1~) | linux-initramfs-tooldracutたとえば、使用している場合、Wheezyにはバージョンがあり020-2 0、バックポートにはバージョンがあり040+1-1 0ます。thiksの場合、バックポートから取得するためにDracutパッケージの優先度を上げる必要があります。
刺激物

'apt-get -t wheezy-backports install linux-image-amd64'を介してインストールすると、これらも同様に取り込まれませんか?
Tim Stoop、2015

1
あなたがそれを使ってそれを強制するならば、それはするでしょう-t wheezy-backports。ただし、この強制により、安定したバージョンで十分かどうかに関係なく、バックポートからインストールされていない依存関係のすべての新しいバージョンもインストールされます。バックポートから限られた数のパッケージのみをインストールする必要がある場合は、依存関係を追跡し、手動でそれらを固定する必要があります。あなたがそれを気にしない場合は、必ず先に行き、完全に行ってください-t *backports
刺激

ああ、それは正しいです。私も同様にバックポートからinitramfs-toolsをフェッチする必要があり、それは自動的に行うことができます。ありがとう!
Tim Stoop、2015年

5

sudo apt-get install -t wheezy-backports linux-image-amd64

それは便利だとは思いませんが、将来的に問題なく問題を解決するには正しい方法です(もちろん、IMHOです)


これであなたは将来どんなトラブルを予想しますか?
Tim Stoop

1
-debianがシステムを設計して1つの方法で動作するように設計した場合、私はそれらが正当な理由があると "推測"します;)(バックポートの説明を参照)-ソース全体を固定すると、テストおよび不安定な状態から再コンパイルされる多数のパッケージを優先します。安定したcouterpartsとしてテストされていません-使用する哲学-tは、パッケージにその依存関係をインストールさせることです..「厳密に必要なことを行う」..- そのしばらくの間のリストアプローチ:必要なときに、知っていることを実行します
drAlberT

2
これには十分な賛成票がありません
John Blackberry

1

設定の一番上の行を

Package: linux-image-*

走る

apt-get update

もう一度インストールしてみてください。それでもエラーが発生する場合は、確認してください

aptitude why-not linux-image-3.16.0-0.bpo.4-amd64

動作しません。コマンド出力を質問に追加しました。
Tim Stoop

OK、試してくれてありがとう。aptitude問題を特定するために、リゾルバーをインタラクティブに使用する傾向があります。たぶんlinux-*他の依存関係を含めるのですか?APT::Default-Release "wheezy-backports";構成に一時的に追加することは可能ですか?
セドリックナイト

実際には、すべてのサーバーからaptitudeを削除しました。テストを行うには、aptitudeをインストールする必要がありました。したがって、それは実現可能ではありません。設定オプションを一時的に追加することは現実的ではなく、正直なところ、本当に良い解決策ではありません:)これは、ハッキングなしでapt-getを使用して実行できるはずですが、方法を理解できません!
Tim Stoop
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.