Instal kernel Debian Backports secara otomatis

8

Saya memiliki set pin berikut:

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

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

Saya mendapatkan kesalahan berikut:

$ 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.

Kebijakan tampaknya benar:

$ 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

Jadi saya tidak mendapatkan kesalahan. Apa yang saya lakukan salah?

Saya mencoba menggunakan boneka untuk memutakhirkan semua mesin Wheezy ke kernel backports (langkah reboot direncanakan), itulah sebabnya saya ingin menyelesaikannya dengan benar. Saya bisa masuk secara manual ke semua server untuk menjalankan:

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

Yang berhasil, tetapi tidak nyaman.

MEMPERBARUI

Seperti yang diminta:

/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.
Tim Stoop
sumber

Jawaban:

3

Periksa apa paket itu tergantung dan apa yang dibutuhkan dependensi juga. Misalnya saya melihat ini untuk mesin saya:

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

dan

# 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

Periksa apakah dependensi diambil dari backports juga.

stimur
sumber
Itu sudah dijelaskan dalam pertanyaan saya ...
Tim Stoop
1
Saya tidak melihat apa pun tentang menyematkan versi dependensi dalam pertanyaan Anda. Anda perlu mengkonfigurasi prioritas yang lebih tinggi untuk paket yang dibutuhkan untuk linux-image-3.16.0-0.bpo.4-amd64. periksa ini: 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-tool. Jika Anda menggunakan dracutmisalnya, Wheezy memiliki versi 020-2 0, sedangkan backports memiliki 040+1-1 0. Dalam hal ini Anda perlu meningkatkan prioritas paket Dracut yang akan diambil dari backport juga.
merangsang
Bukankah itu juga akan ditarik ketika saya menginstalnya melalui 'apt-get -t wheezy-backports install linux-image-amd64'?
Tim Stoop
1
Itu akan, jika Anda menegakkannya dengan -t wheezy-backports. Tetapi penerapan ini juga akan menginstal semua versi yang lebih baru untuk dependensi yang tidak diinstal dari backports juga, terlepas dari apakah versi stabil sudah cukup atau tidak. Jika Anda hanya perlu menginstal jumlah paket yang terbatas dan terkontrol dari backports, Anda perlu melacak dependensi dan menyematkannya secara manual. Jika Anda tidak peduli tentang itu, silakan lanjutkan dan lakukan penuh -t *backports.
merangsang
Ah mengerti, kamu benar. Saya perlu mengambil initramfs-tools dari backports juga dan kemudian dapat dilakukan secara otomatis. Terima kasih!
Tim Stoop
5

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

itu tidak nyaman saya tahu .. tetapi itu adalah cara yang tepat untuk melakukan sesuatu tanpa memiliki masalah di masa depan (tentu saja IMHO)

drAlberT
sumber
Masalah apa di masa depan yang Anda harapkan dengan ini?
Tim Stoop
1
- jika debian telah merekayasa sistemnya untuk bekerja dengan satu cara saya "mengira" mereka memiliki alasan yang bagus;) (lihat Instruksi backports ) - menyematkan seluruh sumber yang Anda berikan prioritas lebih tinggi ke sejumlah besar paket yang disusun ulang dari pengujian dan tidak stabil dan tidak diuji sebagai couterparts yang stabil - filosofi yang digunakan -tadalah membiarkan paket untuk menginstal dependensinya .. "lakukan apa yang Anda butuhkan" .. - pendekatan daftar sementara: lakukan apa yang Anda sadari lakukan, saat Anda membutuhkan
drAlberT
2
Ini tidak memiliki cukup upvote
John Blackberry
1

Ubah baris teratas di preferensi Anda menjadi

Package: linux-image-*

Lari

apt-get update

Coba pasang lagi. Jika Anda masih mendapatkan kesalahan, periksa

aptitude why-not linux-image-3.16.0-0.bpo.4-amd64
Cedric Knight
sumber
Tidak bekerja Menambahkan output perintah ke pertanyaan saya.
Tim Stoop
OK, terima kasih sudah mencoba. Saya cenderung menggunakan aptituderesolver secara interaktif untuk mengidentifikasi masalah. Mungkin linux-*untuk memasukkan dependensi lain? Apakah layak untuk menambah APT::Default-Release "wheezy-backports";konfigurasi sementara?
Cedric Knight
Kami benar-benar menghapus aptitude dari semua server kami, saya harus menginstalnya untuk melakukan tes. Jadi itu tidak akan layak. Menambahkan opsi konfigurasi sementara tidak layak dan, jujur, bukan solusi yang bagus :) Saya cukup yakin ini bisa dilakukan dengan apt-get tanpa peretasan, hanya tidak tahu caranya!
Tim Stoop