Debian

自動安裝 Debian Backports 核心

  • August 29, 2015

我有以下固定設置:

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

所以我沒有得到錯誤。我究竟做錯了什麼?

我正在嘗試使用 puppet 將所有 Wheezy 機器升級到 backports 核心(計劃重新啟動),這就是我想正確解決它的原因。我可以手動登錄所有伺服器執行:

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.

檢查該軟體包所依賴的內容以及這些依賴項還需要什麼。例如,我在我的機器上看到了這個:

#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

檢查依賴項是否也來自反向埠。

引用自:https://serverfault.com/questions/670088