La personnalisation la plus fondamentale d'un système Debian Live peut-être la sélection de paquets à inclure dans l'image. Ce chapitre vous guide tout au long des différents options dans certains moments de la construction pour personnaliser l'installation des paquets de live-build. Le plus large choix influençant les paquets qui sont disponibles pour l'installation dans l'image sont les zones de distribution et archive areas. Afin de garantir des vitesses de téléchargement décent, vous devez choisir un miroir de distribution proche. Vous pouvez également ajouter vos propres référentiels pour les backports, paquets expérimentaux ou personnalisés, ou inclure des paquets directement en tant que fichiers. Vous pouvez définir vos propres listes de paquets à inclure, utiliser des listes prédéfinies de live-build, utiliser tâches tasksel, ou une combinaison des trois. Enfin, un certain nombre d'options donnent un certain contrôle sur apt, ou si vous préférez, aptitude, au moment de la construction quand les paquets sont installés. Vous pouvez trouver ces très pratique si vous utilisez un proxy, vous voulez désactiver l'installation des paquets recommandés pour économiser l'espace, ou avez besoin de contrôler quels versions des paquets sont installés via APT pinning, pour n'en nommer quelques possibilités.
La distribution que vous choisissez a le plus large impact sur les paquets qui sont disponibles à inclure dans votre image live. Indiquez le nom de code, qui est par défaut squeeze pour la version de live-build dans Squeeze. Toute distribution actuelle dans l'archive Debian peut être spécifié par son nom de code ici. (Voir Termes pour plus de détails.) L'option --distribution non seulement influence la source des paquets dans l'archive, mais aussi dit live-build comme it doit construire chaque distribution supportée. Par exemple, pour construire contre *unstable*, Sid, précisez:
$ lb config --distribution sid
Dans l'archive de distribution, les «archive areas» sont les principales divisions de l'archive. Dans Debian, ce sont main, contrib et non-free. Seulement main contient des logiciels qui font partie de la distribution Debian, donc qui est la valeur par défaut. Une ou plusieurs valeurs peuvent être spécifiées, par exemple
$ lb config --archive-areas "main contrib"
Support expérimental est disponible pour certains dérivés de Debian par l'option --mode. L'option debian est définie par défaut, même si vous êtes en créant sur un système non-Debian. Si vous spécifiez --mode ubuntu ou --mode emdebian, les noms de distribution et des archive areas pour les dérivés spécifiés sont supportés au lieu de ceux de Debian. Le mode modifie également le comportement de live-build en fonction des dérivés.
Remarque: Les projets pour lesquels ces modes ont été ajoutés sont principalement responsables de aider les utilisateurs de ces options. Le projet Debian Live, à son tour, fournit un support de développement sur une base des meilleurs efforts seulement, en fonction des commentaires sur les projets dérivés que nous n'avons pas développé ou supporté nous-mêmes.
L'archive Debian est répliqué à travers un large réseau de miroirs autour du monde pour que les gens dans chaque région peuvent choisir un miroir proche avec la meilleur vitesse de téléchargement. Chacune des options --mirror-* qui régit quel miroir de distribution est utilisée à différents stades de la construction. Rappelez-vous de Etapes de la construction que l'étape *bootstrap* c'est quand le chroot est initialement peuplée par debootstrap avec un système minimal, et l'étape *chroot* c'est quand le chroot utilisé pour construire le système de fichiers du système live est construit. Ainsi, les commutateurs des miroirs correspondants sont utilisées pour ces étapes, et plus tard, dans le *binary* stade les valeurs --mirror-binary et --mirror-binary-security sont utilisées, remplaçant tout miroir utilisé dans une étape antérieure.
Pour définir les miroirs de distribution utilisés au temps de construction pour pointer vers un miroir local, il suffit de fixer --mirror-bootstrap et --mirror-chroot-security comme suit.
$ lb config --mirror-bootstrap http://localhost/debian/ \
--mirror-chroot-security http://localhost/debian-security/
Le miroir chroot, spécifiée par --mirror-chroot, par défaut, c'est la valeur --mirror-bootstrap.
Les options --mirror-binary* régissent les miroirs de distribution placés dans l'image binaire. Ils peuvent être utilisés pour installer des paquets supplémentaires lors de l'exécution du système live. Les valeurs par défaut emploient cdn.debian.net, un service qui choisit un miroir géographiquement proche basé sur le numéro IP de l'utilisateur. C'est un choix approprié lorsque vous ne pouvez pas prédire quel miroir sera mieux pour tous vos utilisateurs. Ou vous pouvez spécifier vos propres valeurs, comme indiqué dans l'exemple ci-dessous. Une image construite avec cette configuration seulement serait approprié pour les utilisateurs sur un réseau où "mirror" est accessible.
$ lb config --mirror-binary http://mirror/debian/ \
--mirror-binary-security http://mirror/debian-security/
Vous pouvez ajouter plus de référentiels, élargir vos choix de paquets au-delà ceux disponibles dans votre distribution objectif. Il peut être, par exemple, pour backports, expérimentaux ou des paquets personnalisés. Pour configurer des référentiels supplémentaires, créer les fichiers config/chroot_sources/your-repository.chroot, et/ou config/chroot_sources/your-repository.binary. Comme avec les options --mirror-*, elles gouvernent les référentiels utilisés dans l'étape *chroot* lors de la construction de l'image, et dans l'étape *binaire*, c'est à dire pour une utilisation au moment de l'exécution du système live.
Par exemple, config/chroot_sources/live.chroot vous permet d'installer des paquets du référentiel des instantanés debian live au moment de la construction du système live.
deb http://live.debian.net/ sid-snapshots main contrib non-free
Si vous ajoutez la même ligne à config/chroot_sources/live.binary, le référentiel sera ajouté à le répertoire /etc/apt/sources.list.d/ de votre système live.
Si ces fichiers existent, ils seront sélectionnés automatiquement.
Vous devriez également mettre la clé GPG utilisée pour signer le référentiel dans fichiers config/chroot_sources/your-repository.{binary,chroot}.gpg
Remarque: certains référentiels de paquets préconfigurés sont disponibles pour une sélection facile grâce à l'option --repository, par exemple pour permettre des instantanés live, une simple commande suffit pour l'activer:
$ lb config --repository live.debian.net
Il y a un certain nombre de façons de choisir quels paquets live-build va installer dans votre image, couvrant une variété de besoins différents. Vous pouvez tout simplement nommer les paquets individuels à installer, que ce soit avec l'option --packages pour quelques paquets, ou dans une liste de paquets pour un grand nombre de paquets. Vous pouvez également choisir grandes listes prédéfinies de paquets, ou utilisez des tâches APT. Et enfin, vous pouvez placer paquets dans votre arbre config/ qui est bien adapté aux essais de nouveaux paquets ou expérimentaux avant qu'ils ne soient disponibles à partir d'un référentiel.
Si le nombre de paquets ajoutée est petit il suffit de spécifier --packages. Par exemple:
$ lb config --packages "package1 package2 package3"
Le comportement de live-build pour spécifier un paquet qui n'existe pas est déterminé par votre choix de l'utilité APT. Voir Choisir apt ou aptitude pour plus de détails.
Si vous avez besoin de spécifier un grand nombre de paquets à installer ou vous avez besoin de flexibilité en ce qui concerne les paquets à installer, utilisez des listes de paquets tel que discuté dans la section suivante, Listes de paquets.
Les listes de paquets sont un excellent moyen d'exprimer quels paquets doivent être installés. La syntaxe de la liste supporte les fichiers inclus et sections conditionnelles qui les rend facile de construire à partir d'autres listes et de les adapter pour une utilisation dans configurations multiples. Vous pouvez utiliser des listes de paquets prédéfinies, offrant une sélection modulaire de paquets provenantes de chacun des environnements de bureau majeurs et certaines listes de but spécial, ainsi que les autres listes standard sont basées sur elles. Vous pouvez également fournir votre propre liste de paquets, ou utiliser une combinaison des deux.
La façon la plus simple d'utiliser des listes consiste à spécifier une ou plusieurs listes prédéfinies avec la option --packages-lists. Par exemple:
$ lb config --packages-lists "gnome-core rescue"
En plus de ces listes, live-build supporte quatre listes de paquets virtuels: gnome-desktop, kde-desktop, lxde-desktop et xfce-desktop, chacun d'entre eux offrent une sélection plus grande de paquets qui correspond à valeurs par défaut de l'installateur Debian pour ces environnements de bureau. Voir Tâches de bureau et de la langue pour plus de détails.
Remarque: Les images préconstruites GNOME, KDE, LXDE et XFCE disponibles pour téléchargement à ‹http://live.debian.net› sont construites en utilisant les listes virtuels correspondantes *-desktop.
L'emplacement par défaut pour les fichiers liste sur votre système est /usr/share/live/build/lists/. Pour déterminer les paquets dans une liste donnée, lire le fichier correspondant, en accordant une attention aux fichiers inclus et les conditionnels tels que décrits dans les sections suivantes.
Vous pouvez compléter ou remplacer entièrement les listes fournies en utilisant listes de paquets locaux stockées dans config/chroot_local-packageslists/.
Les listes de paquets qui existent dans ce répertoire ont besoin d'avoir un suffixe .list pour être traitées. Les listes locaux de paquets ont toujours priorité sur les listes de paquets distribués avec live-build. Cela peut causer des effets indésirables, nous recommandons donc d'utiliser des noms uniques pour listes de paquets locaux.
Dans le cas où vous voulez inclure certains paquets .deb dans pool/ de votre support live (sans les installer sur l'image live) vous pouvez avoir besoin d'utiliser des listes à l'aide de listes locaux de paquets binaires stockées dans config/binary_local-packageslists/. Ces supports peuvent être utilisés comme une image d'installation de Debian personnalisés pour les installations hors-ligne.
Les listes de paquets qui existent dans ce répertoire ont besoin d'avoir un suffixe .list pour être traitées.
Les listes de paquets qui sont incluses avec live-build font un grand usage des «includes». Reportez-vous à ceux-ci dans le répertoire /usr/share/live/build/lists/, car ils servent d'exemples pour savoir comment écrire vos propres listes.
Par exemple, pour faire une liste qui comprend la liste prédéfinie gnome, plus iceweasel, créer config/chroot_local-packageslists/mygnome.list avec le contenu suivant:
#include <gnome>
iceweasel
Toutes les variables de configuration de live-build stockées dans config/* (sans le préfixe LB_) peuvent être utilisés dans instructions conditionnelles dans les listes de paquets. Généralement, cela signifie une option lb config majuscule et avec tirets changées en caractères de soulignement. Mais en pratique, c'est seulement ceux qui influencent lasélection des paquets qui font sens, comme DISTRIBUTION, ARCHITECTURE ou ARCHIVE_AREAS.
Par exemple, pour installer ia32-libs si la --architecture amd64 est spécifié:
#if ARCHITECTURE amd64
ia32-libs
#endif
Vous pouvez tester pour un certain nombre de valeurs, par exemple pour installer memtest86+ si --architecture i386 ou --architecture amd64 est spécifié:
#if ARCHITECTURE i386 amd64
memtest86+
#endif
Vous pouvez également tester contre des variables qui peuvent contenir plus d'une valeur, par exemple pour installer vrms si contrib ou non-free est spécifié via --archive-areas:
#if ARCHIVE_AREAS contrib non-free
vrms
#endif
Un conditionnel peut entourer une directive #include:
#if ARCHITECTURE amd64
#include <gnome-full>
#endif
L'imbrication des conditionnels n'est pas supportée.
L'installateur Debian offre l'utilisateur le choix d'un certain nombre de listes présélectionnées de paquets, chacun centré sur un type particulier de système ou d'une tâche pour laquelle un système peut être utilisé, comme «environnement de bureau graphique», «serveur de messagerie» ou «portable». Ces listes sont appelés «tâches» et sont supportés par APT à travers l'option «Task:» Vous pouvez spécifier une ou plusieurs tâches en live-build via l'option --tasks, comme dans l'exemple ci-dessous.
$ lb config --tasks "mail-server file-server"
Les tâches principales disponibles dans l'installateur Debian peuvent être listés avec tasksel --list-tasks dans le système live. Le contenu de n'importe quelle tâche, y compris ceux non inclus dans cette liste, peuvent être examinées avec tasksel --task-packages.
Les tâches de bureau et de la langue sont des cas particuliers. Dans l'installateur Debian, si le milieu a été préparé pour un environnement de bureau particulier, la tâche correspondante sera automatiquement installée. Ainsi, il y a tâches gnome-desktop, kde-desktop, lxde-desktop et xfce-desktop, dont aucun n'est offert dans le menu tasksel. De même, il n'y a pas entrées de menu pour les tâches de les langues, mais le choix de la langue de l'utilisateur lors de l'installation influence le choix des tâches de la langue correspondante.
En live-build, par conséquent, ces cas particuliers sont également d'une attention particulière, mais avec trois différences notables au moment de l'écriture.
D'abord, il n'existe aucune disposition fait encore automatiquement pour des tâches de la langue, même si un sous-ensemble de ces packages sont inclus si vous spécifiez lb config --language. Si vous avez besoin de ces tâches, qui comprennent des éléments tels que des polices spécifiques de la lange et des paquets de méthodes d'entrée, vous devez les spécifier dans votre configuration. Par exemple:
$ lb config --tasks "japanese japanese-desktop japanese-gnome-desktop"
En second lieu, live-build supporte *-desktop listes de paquets virtuels pour chacune des saveurs de bureau mentionnés ci-dessus, qui sélectionnent la liste prédéfinie de paquets standard-x11, le correspondant *-desktop et trois tâches supplémentaires: desktop, standard et laptop. Ainsi, par exemple, si vous spécifiez --packages-lists gnome-desktop, il est équivalent à spécifier --packages debian-installer-launcher --packages-lists standard-x11 --tasks "gnome-desktop desktop standard laptop".
En troisième lieu, si une des tâches de bureau pour ces saveurs sont sélectionnés, soit explicitement par --tasks ou implicitement par --packages-lists, live-build préconfigurera la valeur de bureau correspondante pour l'installateur Debian (si elle est incluse) pour s'assurer qu'il suit ses propres règles pour l'installation de saveurs de bureau différents.
Remarque: Il existe également une option expérimental --language qui a un objectif qui se chevauche avec des tâches des langues. Pour toute langue pour laquelle il est connu qu'il y a des paquets *-l10n, si --language est spécifié, ces paquets seront installés. Par ailleurs, si tous les modèles syslinux correspondants à la langue sont trouvés, ils seront utilisés au lieu des modèles par défaut en anglais. La sélection des paquets fait par --language est une mauvaise approximation aux tâches de langue, car elle exige que la liste des paquets à inclure par langue sera maintenu en interne en live-build, et d'ailleurs, des langues sont plus complets et flexibles. Cependant, l'aspect syslinux est encore utile. Ainsi, si vous utilisez --bootloader syslinux et des modèles pour la langue spécifiée existe, soit dans /usr/share/live/build/templates/syslinux/ ou config/templates/syslinux/, pensez à utiliser cette option, éventuellement en combinaison avec des tâches pour s'assurer que tous les paquets concernés sont installés. Par exemple:
$ lb config --language es
Même ainsi, elle est limitée en ce qu'elle ne supporte que d'une seule langue et un chargeur de démarrage unique. Par conséquent, pour toutes ces raisons, l'avenir de cette option est à l'étude, qui pourrait être remplacé par quelque chose d'entièrement différent dans la prochaine version majeure de live-build.
Tandis qu'il est contre la philosophie de Debian Live, il peut parfois être nécessaire de construire un système live avec des versions modifiées des paquets qui sont dans le référentiel Debian. C'est peut-être de modifier ou soutenir des fonctionnalités supplémentaires, des langues et de la marque, ou même de supprimer des éléments de paquets existants qui sont indésirables. De même, les paquets "de tiers" peuvent être utilisés pour ajouter des fonctionnalités sur mesure et/ou propriétaires.
Cette section ne couvre pas les conseils concernant la construction ou la maintenance des paquets modifiés. La méthode de Joachim Breitner 'How to fork privately' ‹http://www.joachim-breitner.de/blog/archives/282-How-to-fork-privately.html› peut, cependant, être d'intérêt. La création de paquets sur mesure sont couverts dans le Debian New Maintainers' Guide at ‹http://www.debian.org/doc/maint-guide/› et ailleurs
Il y a deux façons d'installer des paquets personnalisés modifiés:
Utilisant chroot_local-packages est plus simple à réaliser et utile pour les personnalisations ponctuels mais a un certain nombre d'inconvénients, tout en utilisant un réferéntiel personnalisé APT est plus fastidieux à mettre en place.
Pour installer un paquet personnalisé, il suffit de le copier dans le répertoire config/chroot_local-packages/. Les paquets qui sont dans ce répertoire seront automatiquement installés dans le système live pendant la construction du systéme - vous n'avez pas besoin de les spécifier ailleurs.
Les paquets doivent être nommés de la manière prescrite. Une façon simple de le faire consiste à utiliser dpkg-name.
L'utilisation de chroot_local-packages pour l'installation de paquets personnalisés a des inconvénients:
Contrairement à l'utilisation de chroot_local-packages, lorsque vous utilisez un réferéntiel personnalisé APT vous devez vous assurer que vous spécifiez les paquets ailleurs. Voir Choisir les paquets à installer pour plus de détails.
Si créer un référentiel APT pour installer des packages personnalisés peut sembler un effort inutile, l'infrastructure peut être facilement ré-utilisée à une date ultérieure pour offrir les mises à jour des paquets modifiés.
live-build utilise apt pour installer tous les paquets dans le système live donc il héritera des comportements de ce logiciel. Un exemple pertinent est que (en supposant une configuration par défaut), étant donné un paquet disponible dans deux référentiels différents avec différents numéros de version, APT choisira d'installer le paquet avec la numéro de version supérieur.
Pour cette raison, vous pouvez incrémenter le numéro de version dans les fichiers debian/changelog de vos paquets personnalisés pour s'assurer que votre version modifiée est installée en lieu d'une dans les référentiels officiels Debian. Cela peut aussi être atteint en modifiant les préférences de pinning d'APT dans le système live - voir APT pinning pour plus d'informations.
Vous pouvez configurer APT par un certain nombre d'options appliquées uniquement au moment de la construction. (La configuration d'APT utilisé dans le système live en fonctionnement peut être configurée de façon normale pour un système live, qui est, en incluant les configurations appropriées à config/chroot_local_includes/.) Pour une liste complète, regardez les options commençant par apt dans la page de manuel de lb_config.
Vous pouvez choisir d'utiliser soit apt ou aptitude Quel logiciel est utilisé est régi par l'argument --apt de lb config. Choisissez la méthode du comportement préférée pour l'installation de paquets, la différence notable étant la manière dont les paquets manquants sont traitées.
Une configuration communément requis par APT est pour faire face à la construction d'une image derrière un proxy. Vous pouvez spécifier votre proxy APT avec les options --apt-ftp-proxy ou --apt-http-proxy si nécessaire, par exemple
$ lb config --apt-http-proxy http://proxy/
Vous pouvez avoir besoin d'économiser de l'espace sur les supports d'images, auquel cas l'un ou l'autre ou les deux options suivantes peuvent être d'intérêt.
Si vous ne voulez pas inclure les indices de l'APT dans l'image, vous les pouvez omettre avec:
$ lb config --binary-indices false
Cela ne influencera les entrées dans /etc/apt/sources.list, mais simplement de savoir si /var/lib/apt contient les fichiers indices ou non. La contrepartie est que APT a besoin de ces indices afin d'opérer dans le système live, alors avant de procéder à apt-cache search or apt-get install, par exemple, l'utilisateur doit faire apt-get update pour créer ces indices.
Si vous trouvez que l'installation des paquets recommandés gonfle votre image trop, vous pouvez désactiver l'option par défaut d'APT avec:
$ lb config --apt-recommends false
La contrepartie ici est que si vous n'installez pas les paquets recommandés par un paquet, c'est-à-dire, "paquets qu'on trouverai avec celui-ci dans toute installation standard" (Debian Policy Manual, section 7.2), certains paquets que vous avez vraiment besoin peuvent être omis. Par conséquent, nous vous suggérons d'examiner la différence de désactiver recommends rend à votre liste de paquets (voir le fichier binary.packages généré par lb build) et re-inclure dans votre liste tous les paquets manquants que vous souhaitez toujours installées. Alternativement, si vous trouvez que vous voulez seulement un petit nombre de paquets recommandés exclus, laissez recommends activé et défini une priorité APT pin négative sur les paquets sélectionnés pour éviter les installér, comme expliqué dans APT pinning.
S'il n'y a pas une option lb config pour modifier le comportement d'APT dans la façon dont vous avez besoin, utiliser --apt-options ou --aptitude-options pour passer des options grâce à votre outil APT configuré. Voir les pages de manuel apt et aptitude pour plus de détails
Pour le contexte, s'il vous plaît lire d'abord la page de manuel apt_preferences(5). APT pinning peut être configuré soit pour le temps de construction, ou encore pendant l'exécution. Pour le premier, créez config/chroot_apt/preferences. Pour ce dernier, créez config/chroot_local-includes/etc/apt/preferences.
Imaginons que vous voulez construire un système live Squeeze mais il faut installer tous les paquets live qui finissent dans l'image binaire depuis Sid au moment de la construction. Vous devez ajouter Sid à votre APT sources et le fixer de sorte que seulement les paquets que vous voulez sont installés au temps de construction et tous les autres sont de la distribution du système cible, Squeeze. Ce qui suit devrait accomplir ça:
$ echo "deb http://mirror/debian sid main" > config/chroot_sources/sid.chroot
$ cat >>config/chroot_apt/preferences <<END
Package: live-boot live-boot-initramfs-tools live-config live-config-sysvinit
Pin: release n=sid
Pin-Priority: 600
Package: *
Pin: release n=sid
Pin-Priority: 1
END
Remarque: Caractères génériques peuvent être utilisés dans les noms des paquets (par exemple Package: live-*) avec la version 0.8.14 ou supérieure d'Apt. Cela signifie qu'il fonctionne avec Wheezy en utilisant:
$ lb config --distribution wheezy
Une priorité pin négative évitera installér un paquet, comme dans le cas où vous ne voulez pas un paquet qui est recommandé par un autre paquet. Supposons que vous construisez une image LXDE en utilisant l'option --packages-lists lxde mais ne veulez pas que l'utilisateur soit invité à stocker les mots de passe wifi dans le trousseau de clés. Cette liste comprend gdm, que dépend de gksu, que à son tour recommends gnome-keyring. Donc, vous voulez omettre le paquet recommandé gnome-keyring. Cela peut être fait en ajoutant la strophe suivante à config/chroot_apt/preferences:
Package: gnome-keyring
Pin: version *
Pin-Priority: -1