267 votes

Comment puis-je exécuter Debian stable mais installer certains paquets de testing ?

Dites que vous exécutez un serveur et que vous ne voulez pas passer de Stable (Lenny) à Testing (Squeeze) juste pour installer un ou deux paquets requis.

Quel est le meilleur moyen d'installer uniquement certains paquets de Testing ?

9 votes

Voici ce que dit la dernière documentation officielle : Paquets provenant de sources mixtes d'archives.

10voto

gerlos Points 225

Une autre méthode, qui pourrait empêcher l'installation de trop nombreuses dépendances à partir de Testing ou Sid, est la suivante : vous demandez à apt-get de récupérer la source du paquet depuis Testing ou Sid et de créer un paquet pour votre système en utilisant les outils Debian (pas besoin de bidouiller manuellement les sources).

Cité d'ici :
https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F

Comment puis-je rétroporter un paquet sid vers testing ou stable ?

Installez la source Debian (et les outils de développement, en particulier debhelper, devscripts et build-essential), puis créez le paquet.

Étapes à suivre :

ajoutez une ligne deb-src pour sid dans votre sources.list

apt-get update

apt-get build-dep PACKAGE_NAME

apt-get -b source PACKAGE_NAME 

Les fichiers deb résultants devraient se trouver dans le répertoire actuel et peuvent être installés avec dpkg -i le.deb.

4voto

Daniel Sokolowski Points 839

J'ai été en train de le faire pendant une période prolongée pour être suffisamment confiant pour dire qu'il est suffisamment sûr et peut être rendu pratique. Avec la configuration ci-dessous, la version stable sera installée par défaut, cependant Aptitude vous permettra également de choisir la version rétroportée ou instable si vous le souhaitez :

entrer la description de l'image ici

Il y a quatre choses à éditer, la version de publication par défaut doit être définie, les sources doivent inclure des rétroportages et des instables, abaisser la priorité de publication des paquets rétroportés/instables et modifier les paramètres d'affichage de l'aptitude pour afficher la publication.

3voto

TitiJoanne Points 21

Ce que je fais pour éviter de mélanger stable/testing/experimental, c'est d'installer un Debian Sid dans un répertoire sur mon système Debian stable avec debootstrap, puis je peux utiliser les outils que je veux. Dans cet exemple, j'ai besoin d'un outil récent xmllint (traitement XML).

Pour ce faire, voici ce que j'ai fait:

apt install debootstrap
mkdir /home/sid-chroot
debootstrap --arch amd64 sid /home/sid-chroot http://mirrors.ircam.fr/pub/debian/
chroot /home/sid-chroot
apt install libxml2-utils

Maintenant, je peux sortir du chroot et utiliser la librairie en 'piratant' le LD_LIBRARY_PATH pour des bibliothèques de chargement dynamique spécifiques.

Dans ~/.bashrc:

alias xmllint='LD_LIBRARY_PATH=/home/sid-chroot/usr /home/sid-chroot/usr/bin/xmllint'

Maintenant, lorsque je lance xmllint, j'ai la version 2.9.10 de libxml2-utils (versions 2019 vs 2016).

Les avantages:

  • Je peux facilement installer n'importe quel autre paquet
  • aucun dommage causé, aucun risque de crash de mon bureau en mélangeant des éléments de testing/experimental
  • Je garde mon système Debian stable à jour avec les mises à jour de sécurité
  • Je garde mon système largement utilisé par de nombreuses personnes (contrairement à sid), de cette façon, les logiciels aléatoires restent suffisamment compatibles

Les inconvénients:

  • cela prend 410 Mo sur le système (je m'en fiche)
  • cela nécessite un aliasing dans .bashrc

2voto

beppe9000 Points 155

Si votre sélection de packages est plus complexe ou que l'installation sera répétée sur plusieurs machines, vous pourriez envisager de configurer un dépôt privé qui reflète une partie des dépôts officiels. Cela nécessite un travail de configuration du dépôt, mais la récompense est une facilité de maintenance avec un minimum de configuration sur chaque client et des résultats reproductibles lors de dizaines d'installations. Je trouve cela utile même lorsque seulement un ou deux packages sont installés, et j'utilise cette méthode pour automatiser et maintenir les installations cloud. Un seul serveur sur un VPS bon marché peut gérer plusieurs dépôts privés.

Pour configurer votre serveur de dépôt privé :

# Installer aptly.
apt-get install aptly

# Créer un miroir local (choisissez un miroir source près de chez vous).
aptly mirror create -filter="mirror-contains-no-packages" stretch-roundcube http://httpredir.debian.org/debian stretch main

# Configurer les filtres pour le miroir local.
aptly mirror edit -filter="Name (% roundcube*)" stretch-roundcube

# Mettre à jour le miroir local.
aptly mirror update stretch-roundcube

# Supprimer les dépôts et miroirs précédemment publiés, si vous exécutez ces commandes dans un script.
aptly publish drop stretch

# Supprimer le snapshot, si vous exécutez ces commandes dans un script.
aptly snapshot drop stretch-roundcube

# Créer un nouveau snapshot.
aptly snapshot create stretch-roundcube from mirror stretch-roundcube

# Publier le snapshot.
aptly publish snapshot -architectures=i386,amd64 -distribution=stretch -component=roundcube -label="Votre Nom" -origin="Votre Nom" stretch-roundcube

Ensuite, configurez votre serveur web de choix pour servir les fichiers du dépôt statique. Éventuellement protégez le dépôt avec un certificat de sécurité et une authentification de base.

Pour maintenir automatiquement votre dépôt privé et récupérer les mises à jour en amont, mettez ce qui précède dans un script et exécutez-le depuis une tâche cron.

Pour configurer votre machine cliente, sur votre machine cliente :

# Configurer le dépôt privé sans authentification.
echo 'deb http://private.repository.example.com/ stretch roundcube' > /etc/apt/sources.list.d/private.repository.example.com.list

# Configurer le dépôt privé avec authentification.
echo 'deb https://hostname:password@private.repository.example.com/ stretch roundcube' > /etc/apt/sources.list.d/private.repository.example.com.list
apt-get install apt-transport-https

# Mettre à jour.
apt-get update

# Installer le package.
apt-get install roundcube

Pour maintenir votre machine cliente et récupérer toutes les mises à jour de votre dépôt privé, sur votre machine cliente :

# Mettre à jour.
apt-get update

# Mettre à niveau.
apt-get upgrade

2voto

temy Points 11

Une autre option consiste à télécharger plutôt le paquet source à partir de testing. APT peut auto-construire le paquet source après l'avoir téléchargé. De cette façon, vos paquets stables ne seront pas affectés par les mises à jour de testing. Le seul compromis est que cela prendra plus de temps que de simplement télécharger et installer le paquet binaire.

Pour configurer APT afin de télécharger les paquets source à partir de testing, il suffit d'ajouter :

deb-src http:// testing main

Si vous voulez simplement suivre le testing actuel et pas les futurs testings, remplacez "testing" par le nom de code actuel (au moment de la rédaction, il s'agit de "buster")

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X