Provided by: schroot_1.6.13-6_amd64 bug

NOM

       Foire aux questions de schroot

DESCRIPTION

       Cette  page  de  manuel  couvre différentes questions fréquentes sur la configuration et l'utilisation de
       schroot.

CONFIGURATION

   Pourquoi schroot écrase-t-il des fichiers de configuration dans le chroot ?
       Par défaut, schroot copie les bases de donnée NSS du système  (‘passwd’,  ‘shadow’,  ‘group’,  ‘gshadow’,
       ‘services’,  ‘protocols’, ‘networks’, ‘hosts’, etc.) dans le chroot. La raison est que l'environnement de
       chroot n'est pas complètement séparé du système, et copier ces fichiers permet de les maintenir  à  jour.
       Cependant, ce n'est pas toujours désirable, en particulier si installer un paquet dans le chroot crée des
       utilisateurs  et groupes système qui ne sont pas présents chez l'hôte, car ils disparaîtront la prochaine
       fois que les bases de données seront copiées.

       La solution de repli suggérée ici est de désactiver la copie. Cela peut être effectué en  définissant  la
       clé  setup.nssdatabases  comme  vide dans schroot.conf. Dans les versions précédentes de schroot, c'était
       effectué en commentant le fichier NSSDATABASES pour le chroot (/etc/schroot/default/config  par  défaut).
       La  liste  de bases de données peut être également personnalisée en éditant le fichier contenant la liste
       des bases de données (/etc/schroot/default/nssdatabases par défaut).

       Prochainement, nous travaillerons à un meilleur schéma pour garder les bases de données de l'hôte  et  du
       chroot  synchronisées  ce qui permettra des fusions d'entrée plutôt qu'un écrasement entier de la base de
       données et qui garderait les changements spécifiques du chroot.

   Quel type de chroot dois-je utiliser : « plain » ou « directory » ?
       Ces deux types de chroot sont en principe équivalents car ce sont simplement des répertoires  du  système
       de fichiers. « plain » est très simple et n'effectue aucune tâche de mise en place ; la seule raison pour
       laquelle  vous  pourriez  vouloir  l'utiliser  est  que  vous  mettez  à niveau depuis un programme comme
       dchroot(1) ou chroot(8) qui ne font rien d'autre qu'exécuter une commande ou un shell dans un répertoire.
       D'un autre coté, les chroots « directory » exécutent des scripts de mise en place qui peuvent monter  des
       systèmes de fichiers additionnels ou d'autres tâches de mise en place.

CONFIGURATION AVANCÉE

   Que sont les « instantanés »  snapshots ») et les « unions » ?
       Certains  types  de  chroot  gèrent  le  clonage. Cela veut dire que quand vous démarrez une session vous
       obtenez une copie du chroot qui ne dure que pour la durée de la session. C'est utile  quand  vous  voulez
       une  copie  propre  temporaire du système pour une tache simple, qui est ensuite automatiquement détruite
       quand vous ne l'utilisez plus. Par exemple, les démons  de  construction  des  paquets  Debian  exécutent
       sbuild(1)  pour construire les paquets Debian et ce programme utilise schroot pour créer un environnement
       de  construction  propre  pour  chaque  paquet.  Sans  création  d'instantané,  le  chroot  devrait  être
       réinitialisé à la fin de chaque construction afin de le préparer pour le suivant, et chaque débris laissé
       par  la  désinstallation  de  paquet  ou  de construction précédente peut interférer avec la construction
       suivante.

       La méthode de création d'instantané la  plus  utilisée  utilise  les  instantanés  LVM  (chroot  de  type
       ‘lvm-snapshot’).  Dans  ce  cas,  le chroot doit exister sur un volume logique LVM (LV) ; les instantanés
       d'un LV peuvent ainsi être effectués avec la commande lvcreate(8) pendant l'initialisation de la  session
       de chroot. Cependant, cela utilise beaucoup d'espace disque. Une nouvelle méthode consiste à utiliser les
       instantanés  Btrfs  qui  utilisent  beaucoup  moins d'espace disque (chroot de type ‘btrfs-snapshot’), et
       peuvent être plus sûrs que les instantanés LVM. Cependant,  Btrfs  est  encore  expérimental,  mais  cela
       deviendra certainement la méthode conseillée quand il deviendra mature.

       Les  unions  sont des alternatives aux instantanés. Dans ce cas, au lieu de créer une copie du système de
       fichiers du chroot, un système de fichiers temporaire inscriptible est superposé au système  de  fichiers
       du  chroot.  Toute  modification  est  ainsi  sauvée dans la surcouche, laissant le système de fichier du
       chroot original inchangé. Le noyau Linux n'a pas encore intégré la prise en charge des unions de  système
       de  fichiers  comme  aufs  et  unionfs.  Ainsi les instantanés LVM restent la méthode recommandée pour le
       moment.

UTILISATION

   Puis-je exécuter un démon  daemon ») dans un chroot ?
       Un problème commun est d'essayer d'exécuter un démon dans un chroot et découvrir que cela ne marche  pas.
       Typiquement, le démon est tué rapidement après avoir été démarré.

       Quand  schroot  est  exécuté, il initie une session, exécute la commande ou le shell spécifié, attend que
       cette commande ou ce shell se termine et ferme la session. Pour une commande ou  un  shell  normal,  cela
       marche bien. Cependant les services commencent par se lancer en tâche de fond et se détachent du terminal
       les  contrôlant.  Ils  font  cela  en fourchant deux fois et en laissant le processus parent se terminer.
       Malheureusement schroot détecte que le programme s'est terminé (le démon est un petit-fils orphelin de ce
       processus) et il ferme la session. Une partie de la terminaison de  la  session  est  de  tuer  tous  les
       processus restant dans le chroot, ce qui veut dire tuer le démon lors de la fermeture de la session.

       En conséquence, il n'est pas possible d'exécuter un démon directement avec schroot. Vous pouvez cependant
       le  faire si vous créez une session avec --begin-session et ensuite exécutez le démon avec --run-session.
       Il est alors de votre responsabilité de terminer la session avec --end-session quand le démon  a  terminé
       ou que vous n'en avez plus besoin.

   Comment puis-je nettoyer manuellement une session cassée ?
       Occasionnellement,  il  peut  être  nécessaire  de nettoyer manuellement des sessions. Si quelque chose a
       changé dans votre système qui fait échouer les scripts de mise en place lors de la fin  de  session,  par
       exemple  le retrait d'un fichier ou répertoire requis, il peut être impossible à schroot de nettoyer tout
       automatiquement. Pour chaque répertoire de session listé dans la section “Répertoires  de  session”  dans
       schroot(1),  tout  fichier avec le nom d'un identifiant de session doit être supprimé, et tout répertoire
       avec le nom d'un identifiant de session doit être démonté (s'il y a des systèmes  de  fichiers  montés  à
       l'intérieur) et également supprimé.

       Par exemple, pour supprimer une session nommée ma-session à la main :

       •      Supprimez le fichier de configuration de la session
              % rm /var/lib/schroot/session/ma-session↵

       •      Vérifiez les systèmes de fichiers montés
              % /usr/lib/x86_64-linux-gnu/schroot/schroot-listmounts -m \
                /var/run/schroot/mount/ma-session↵

       •      Démontez tout système de fichiers monté

       •      Supprimez  /var/run/schroot/mount/ma-session

       •      Répétez     pour     les     autres     répertoires     comme     /var/lib/schroot/union/underlay,
              /var/lib/schroot/union/overlay et /var/lib/schroot/unpack

       NOTE : Ne supprimez aucun répertoire sans vérifier s'il y a des systèmes de fichiers montés sous eux, car
       les systèmes de fichiers comme /home pourraient toujours être montés en liaison. Ne  pas  le  faire  peut
       engendrer la perte irréparable de données.

UTILISATION AVANCÉE

   Comment utiliser les sessions ?
       Lors d'une utilisation normale, lancer une commande peut ressembler à ça :
       % schroot -c squeeze -- commande↵

       Cela  lancera  la  commande commande dans le chroot squeeze. Alors qu'il n'est pas évident qu'une session
       est utilisée ici, schroot effectue en fait les étapes suivantes :

       •      Création d'une session utilisant le chroot squeeze. Cela va donner automatiquement un nom  unique,
              comme  squeeze-57a69547-e014-4f5d-a98b-f4f35a005307,  que  normalement  vous  n'avez pas besoin de
              connaître.

       •      Les scripts de mise en place sont exécutés pour créer la session de chroot et la configurent  pour
              vous.

       •      La commande commande est exécutée dans la session de chroot.

       •      Les scripts de mise en place sont exécutés pour nettoyer la session de chroot.

       •      La session est supprimée.

       Maintenant si vous voulez exécuter plus d'une commande, vous pouvez exécuter un interpréteur de commandes
       et  les  exécuter  interactivement,  ou  vous pouvez les mettre dans un script shell et l'exécuter à leur
       place. Mais vous pourriez vouloir faire quelque  chose  d'intermédiaire,  comme  exécuter  des  commandes
       arbitraires  d'un  programme  ou  script  où  vous ne savez pas quelle commande exécuter à l'avance. Vous
       pourriez également vouloir préserver l'état du chroot entre les commandes. C'est  la  raison  d'être  des
       sessions  : une fois créée, la session est persistante et ne sera pas automatiquement supprimée. Avec une
       session, vous pouvez exécuter autant de commandes que vous le voulez, mais vous devez créer et  supprimer
       la session manuellement car schroot ne peut pas savoir par lui-même quand vous avez fini à l'exception du
       cas de la commande unique ci-dessus. C'est relativement facile :
       % schroot --begin-session -c squeeze↵
       squeeze-57a69547-e014-4f5d-a98b-f4f35a005307

       Cela crée une nouvelle session basée sur le chroot squeeze. Le nom unique de la session, l'identifiant de
       session,  a  été écrit sur la sortie standard. Nous pouvons donc l'enregistrer en tant que variable shell
       en même temps comme cela :
       % SESSION=$(schroot --begin-session -c squeeze)↵
       % echo $SESSION↵
       squeeze-57a69547-e014-4f5d-a98b-f4f35a005307

       Maintenant nous avons créé la session et nous avons son identifiant, nous pouvons y lancer des  commandes
       en utilisant l'identifiant de session :
       % schroot --run-session -c squeeze-57a69547-e014-4f5d-a98b-f4f35a005307 \
         -- commande1↵

       ou
       % schroot --run-session -c "$SESSION" -- commande1↵

       et ensuite nous pouvons avoir autant de commandes que nous le voulons
       % schroot --run-session -c "$SESSION" -- commande2↵
       % schroot --run-session -c "$SESSION" -- commande3↵
       % schroot --run-session -c "$SESSION" -- commande4↵

       etc.

       Quand nous avons fini avec cette session, nous pouvons la supprimer avec --end-session :
       % schroot --end-session -c squeeze-57a69547-e014-4f5d-a98b-f4f35a005307↵

       ou
       % schroot --end-session -c "$SESSION"↵

       Comme  les  noms  de  sessions  générés  automatiquement  peuvent  être  longs et peu maniables, l'option
       --session-name vous permet de spécifier votre propre nom :

       % schroot --begin-session -c squeeze --session-name mon-nom↵
       mon-nom

CONTRIBUER

   Recevoir de l'aide ou s'impliquer.
       La  liste  de  diffusion  <buildd-tools-devel@lists.alioth.debian.org>  est  utilisée  pour  l'aide   aux
       utilisateurs  et  les  discussions au sujet du développement. Vous pouvez vous inscrire à la liste sur le
       site web du projet à l'adresse https://alioth.debian.org/projects/buildd-tools/ ou  avec  l'interface  du
       gestionnaire de listes à l'adresse http://lists.alioth.debian.org/mailman/listinfo/buildd-tools-devel.

   Signaler des bogues.
       Sur  les  systèmes  Debian, les bogues peuvent être signalés en utilisant l'utilitaire reportbug(1) ou en
       envoyant un message à <submit@bugs.debian.org> (consultez http://bugs.debian.org pour plus de détails sur
       comment le faire).

   Obtenir les dernières sources.
       schroot est maintenu dans le système de gestion de source git. Vous pouvez obtenir les dernières  sources
       à partir de git://git.debian.org/git/buildd-tools/schroot.
       % git clone git://git.debian.org/git/buildd-tools/schroot↵

       La  branche  maîtresse  contient  la version de développement courante. Les versions stables peuvent être
       trouvées dans les branches. Par exemple la série de version 1.4 est la branche schroot-1.4.

AUTEURS

       Roger Leigh.

COPYRIGHT

       Copyright © 2005-2012 Roger Leigh <rleigh@codelibre.net>

       schroot est un logiciel libre : vous pouvez le redistribuer et/ou le  modifier  aux  conditions  définies
       dans  la  licence  publique générale GNU telle que publiée par la Free Software Foundation, version 2 ou,
       selon votre préférence, toute version ultérieure.

VOIR AUSSI

       dchroot(1), sbuild(1), schroot(1), schroot.conf(5), schroot-setup(5).

TRADUCTION

       Ce document est une traduction, réalisée par Thomas Blein le 30 mai 2012.

       L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité.

       La version anglaise de ce document est toujours consultable en ajoutant l'option « -L C » à  la  commande
       man.

       N'hésitez  pas  à  signaler à l'auteur ou à la liste de traduction <debian-l10n-french@lists.debian.org>,
       selon le cas, toute erreur dans cette page de manuel.

Aug                                                    14                                      FAQ de SCHROOT(7)