Comment installer certains paquets de Debian «instable» sur un ordinateur exécutant Debian «stable»?

14

Sur un ordinateur exécutant Debian "stable", lorsque j'essaie d'installer un paquet qui se trouve dans la liste instable sur le site Web Debian à l'aide de la aptitude install <package>/unstablecommande, j'obtiens une sortie similaire à ceci:

Couldn't find any package whose name or description matched "<package>"
Couldn't find any package whose name or description matched "<package>"
No packages will be installed, upgraded, or removed.
0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 0 B will be used.

Que puis-je faire pour pouvoir installer des packages "instables"? (J'ai pensé à ajouter le référentiel à sources.list, mais je ne veux pas que tout commence à être installé à partir de "instable").

Alors: comment puis-je installer des packages instables (en utilisant /stableà la fin du nom du package)?

Abbafei
la source
Voir unix.stackexchange.com/q/112157/4671 pour une réponse approfondie à cette question.
Faheem Mitha
1
Version courte: non. Version plus longue: ne faites pas ça . Utilisez des rétroportages si vous le devez, mais ne mélangez pas stable / instable.
Shadur
Je pense que cela s'appelle un "FrankenDebian": "Debian Stable ne doit pas être combiné avec d'autres versions. Si vous essayez d'installer un logiciel qui n'est pas disponible dans la version actuelle de Debian Stable, ce n'est pas une bonne idée d'ajouter des référentiels pour d'autres versions de Debian. Les problèmes pourraient ne pas se produire immédiatement, mais la prochaine fois que vous installerez des mises à jour. " De Don't Break Debian .
malan

Réponses:

29

Vous devez avoir unstableinscrit dans votre sources.list. Sinon, apt ne trouvera tout simplement pas le paquet.

Pour éviter que des unstablepaquets ne soient récupérés, vous avez deux manières.

  • Le moyen le plus simple est d'ajouter une Default-Releaseclause à /etc/apt/apt.conf(ou à un fichier sous /etc/apt/apt.conf.d/, par exemple /etc/apt/apt.conf.d/my-default-release).

    APT::Default-Release "stable";
    
  • La difficulté est d'utiliser les préférences APT . Dans /etc/apt/preferences:

    Package: *
    Pin: release o=Debian,a=unstable
    Pin-Priority: 10
    

Notez que pendant la majeure partie de la durée de vie d'une version de Debian, il n'est pas pratique d'installer la plupart des paquets d'instable sur un système stable, car ils tireront beaucoup de bibliothèques d'unstable, et vous vous retrouverez avec un système instable. Si vous voulez exécuter instable, cela vous évitera de devoir cibler uniquement instable (ou test). Il est préférable de s'en tenir à une seule version ou de tester avec l'instable occasionnel si vous vous sentez audacieux. Et bien sûr, sur un système de production, restez stable.

Si vous utilisez stable mais que vous avez besoin d'une version plus récente d'une application, regardez d'abord s'il y a un backport pour eux. Sinon, si vous souhaitez installer un package à partir d'instable sans avoir à extraire ses dépendances, essayez d'obtenir la source à partir d'instable et de recompiler.

apt-get source foo=1.42
apt-get build-dep foo  # pulls the dependencies of foo in stable but that's often good enough
dpkg-source -x foo_1.42.dsc
cd foo-1.4210126#10126
dpkg-buildpackage -rfakeroot -us -uc -b -nc
dpkg -i ../foo_1.42_$(arch).deb
Gilles 'SO- arrête d'être méchant'
la source
2
+1 pour mentionner les rétroportages, mais vous devez vraiment souligner avec plus d'insistance que mélanger stable / instable est vraiment dangereux et si vous ne savez pas ce que vous faites, vous ne devriez pas le faire sur un système de production .
Shadur