Login Logout

Howto Debian backports

Une distribution stable de Debian garde en permanence (ou presque) les mêmes versions des logiciels (c’est le principe d’une version stable). Certaines versions plus récentes sont néanmoins distribuées via des packages Debian de backports.

Utilisation

Pour disposer des backports, on ajoutera le dépôt Debian Backports dans un fichier /etc/apt/sources.list.d/backports.list :

deb http://mirror.evolix.org/debian stretch-backports main

La priorité des packages de Backports est de 100, cela signifie qu’ils ne seront installés que si c’est explicitement demandé. Pour s’assurer de n’installer que les packages nécessaires et de recevoir ensuite les mises à jour, on utilise le pinning APT en en créant le fichier /etc/apt/preferences.d/backports. Exemple ici pour avoir un backport du package ansible :

Package: *
Pin: release n=stretch-backports
Pin-Priority: -1

Package: ansible
Pin: release n=stretch-backports
Pin-Priority: 999

Mise-à-jour du noyau Linux

On précisera éventuellement les sections contrib et non-free si besoin de firmwares comme firmware-bnx2 ou firmware-bnx2x :

deb http://backports.debian.org/debian-backports stretch-backports main contrib non-free

avec un pinning APT :

Package: *
Pin: release n=stretch-backports
Pin-Priority: -1

Package: linux-image-4.17.0-0.bpo.1-amd64 linux-base initramfs-tools firmware-linux-free firmware-bnx2 firmware-bnx2x apparmor libapparmor-perl
Pin: release n=stretch-backports
Pin-Priority: 999

Créer une image CD netinst de stretck avec un kernel backports (DRAFT)

# apt build-dep debian-installer
# dpkg-checkbuilddeps
$ apt-get source debian-installer
$ cd debian-installer-20170615+deb9u3/build

Éditer le fichier ./build/config/amd64.cfg:

KERNELVERSION = 4.15.0-0.bpo.2-amd64
KERNELMAJOR = 4.15

Éditer le fichier ./build/config/common:

LINUX_KERNEL_ABI ?= 4.15.0-0.bpo.2
DEBIAN_RELEASE = stretch
USE_UDEBS_FROM ?= stable

Éditer le fichier ./build/sources.list.udeb.local :

deb http://deb.debian.org/debian stretch main
deb http://deb.debian.org/debian stretch main/debian-installer
deb http://deb.debian.org/debian stretch-backports main/debian-installer
# make reallyclean
# fakeroot make build_netboot
[...]
install -m 644 -D ./tmp/netboot/mini.iso dest/netboot/mini.iso
update-manifest dest/netboot/mini.iso "tiny CD image that boots the netboot installer" ./tmp/netboot/udeb.list

Si tout se passe bien, vous obtiendrez un nouvel ISO:

$ file ./tmp/netboot/mini.iso dest/netboot/mini.iso
./tmp/netboot/mini.iso: DOS/MBR boot sector; partition 2 : ID=0xef, start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), startsector 240, 832 sectors; partition 3 : ID=0x1, start-CHS (0x25,0,1), end-CHS (0x2a,63,32), startsector 75776, 12288 sectors
dest/netboot/mini.iso:  DOS/MBR boot sector; partition 2 : ID=0xef, start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), startsector 240, 832 sectors; partition 3 : ID=0x1, start-CHS (0x25,0,1), end-CHS (0x2a,63,32), startsector 75776, 12288 sectors

Pour copier le fichier ISO sur une clé USB:

$ cat dest/netboot/mini.iso > /dev/sdX
$ fdisk -l /dev/sdX
Disque /dev/sdX : 14,6 GiB, 15664676864 octets, 30595072 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x0421e6d7