Historique: live-build
Aperçu de cette version: 42
Live-build est une suite de scripts permettant de créer un Live CD optimisé MAO sous Debian.
Informations du tutoriel :
★ But : Créer un Live CD ou une Live USB optimisé MAO.
★ Date : créé le 08 Juin 2012.
★ Auteur(s) : Leyoy
Pour rappel, un LiveCD permet de tester ou de faire tourner une distribution GNU/Linux sur un ordinateur sans altérer le disque dur, puisque le système n'utilise que la RAM. La distribution TangoStudio par exemple est un Live CD. Je trouve cela très utile, notament pour mes cours de MAO où je peux faire passer ces DVD aux élèves pour qu'ils puissent utiliser ce que l'on voit en cours. Certains ont franchi le pas et sont passer sous TangoStudio.
Cependant, le projet TangoStudio risque de s'arrêter, je me suis donc dit qu'il serait intéressant de construire ensemble un système que l'on puisse se partager. Quand je dis ensemble cela peut être tous les gens présents sur ce site ...
Ce qui suit est un essai en même temps qu'un appel à contribution. Nous pouvons par exemple nous échanger les fichiers de configuration pour créer l'iso et rajouter sur ces fichiers ce que nous aimerions voir en plus. Cela est beaucoup plus rapide que de s'échanger des iso complètes.
Pour créer cette Debian je me suis inspiré du tuto du site : Debian_Squeeze_MAO. Ainsi j'ai essayer d'utiliser les programmes les moins gourmands en ressources. J'utilise Openbox comme gestionnaire de fenêtre et pcmanfm comme gestionnaire de fichier et non pas gnome ou nautilus.
D'autre part live-helper qui est toujours présent dans squeeze est l'ancien nom de live-build. Tout cela rend un peu confus l'installation de ce logiciel. Ainsi nous utiliserons ici la version 3.0.
http://live.debian.net/manual/index.fr.html
Nous allons dans ce dossier :
Ici nous allons créer un dossier où nous allons écrire les scripts qui vont nous permettre de créer notre image Iso.
Nous allons dans ce nouveau dossier :
Live-build fonctionne avec 3 scripts principaux :
Étant des scripts nous allons les rendre exécutables :
Dans clean nous allons mettre les lignes suivantes :
Dans build nous allons mettre les lignes suivantes :
Dans config nous allons éditer les lignes suivantes :
Voilà, notre environnement est pret. Nous allons pouvoir créer notre premier système live sous debian.
Cela aura pour effet de créer les fichiers de configuration que le script build va utiliser. Nottament vous devriez avoir maintenant un dossier config dans votre répertoire de travail.
Par ce script nous demanderons à build de créer un système Debian standard (donc sans interface graphique) avec l'architecture qui sera prise par défaut sur la machine sur laquelle vous travaillez. Mais l'on peut tout à fait spécifier une autre architecture.
Ensuite nous allons construire notre image avec le script build. Attention cela va vous demander votre mot de passe, mais ne mettez pas sudo devant votre commande car elle est présente dans le script :
Après cela, vous aurez dans votre répertoire DebMusicLive des fichiers qui ont été créés lors de la configuration mais aussi et surtout un fichier binary.hybrid.iso qui n'est autre que votre système live.
Tout d'abord mettez votre clé en place. Normalement elle devrait se situer sur /dev/sdb. Vous pouvez saisir la commande :
pour vérifier.
Si c'est bien le cas vous pouvez graver votre iso sur votre clé en faisant :
Quelquefois j'ai été obligé de faire cela en root, donc si cela ne marche pas mettez sudo devant.
Une fois l'image testée, si vous voulez changer des choses dans votre fichier config et créer un nouvel Iso, il faut que vous nettoyez le répertoire en faisant :
Puis que vous relancier la configuration :
et enfin une nouvelle construction :
Voilà ce sont les bases du fonctionnement de cet outil et c'est aussi simple que ça. Nous allons voir maintenant comment configurer le fichier config pour que notre LiveMachin devienne une station de travail MAO.
Cette commande vous renvoie tous les parametrages nécessaires.
La première chose importante est que si vous restez sous Squeeze (l'actuelle version stable de Debian) vous allez vous retrouver avec un vieux noyau en dessous du 2.6.39 qui nous permet de ne plus avoir besoin (au moins pour le Live CD) du patch rt. Il faut donc se mettre sous Wheesy, la version en devenir et donc instable mais moins dangereuse que Sid pour avoir un noyau 3.2.x.
Ensuite vous gagnerez du temps si vous vous mettez sur un serveur proche de chez vous. En fait les logiciels sont gardés en cache pour éviter de les re-télécharger mais s'il y a des mises à jours c'est mieux.
Si vous ne précisez pas l'architecture, le programme prendra par défault celle de l'ordinateur avec lequel vous travaillez. Si vous voulez la changer référez vous au man de lb_config.
Voici mon fichier config avec lequel je travaille :
Pour que cela fonctionne comme il faut, nous devons mettre deux suffixes qui vont préciser au programme de quoi il s'agit :
J'ai ainsi un fichier que je peux remplir avec les logiciels que je veux utiliser. Voici un exemple :
l'include signifie que l'on a des préconfigurations qui exite déjà, ainsi nous pouvons nous en servir pour nous épargner une liste trop longue. standard-x11 signifie que nous aurons un système de base avec uniquement xorg.
feh permet d'afficher un fond d'écran, tint2 permet d'avoir une barre des tâches, obconf de configurer openbox.
Nous allons donc commencer par y créer un répertoire etc qui sera donc le future /etc de notre système Live. À l'intéreur de celui-ci nous allons créer également un répertoire skel. Ce répertoire va représenter le home du future Live utilisateur. Nous allons donc pouvoir y mettre tous les fichiers de configuration qu'il nous faut.
Il semble que par défault, la configuration rend impossible l'utilisation du fichier /etc/security/limits.d/audio.conf. Il faut donc créer ce fichier et y ajouter la configuration décrite dans le tuto pour PAM.
L'avantage de ce programme est aussi son inconvénient:
Attention cependant jack ne fonctionne pas sous virtualbox ...
Je n'ai pour l'instant pas tester une installation du Live CD sur une machine (pour cela il faut l'inclure dans le script config).
J'ai quelques xruns sous jack en Live USB mais j'ai mis ma clé dans diverses machines et cela à l'air de fonctionner ...
Informations du tutoriel :
★ But : Créer un Live CD ou une Live USB optimisé MAO.
★ Date : créé le 08 Juin 2012.
★ Auteur(s) : Leyoy
Présentation
live-build est une suite de scripts qui facilite la création d'une image iso pouvant être démarrée par le biais d'un DVD ou d'une clée USB. Le site de ce logiciel est http://live.debian.net/. Il a été écrit par Daniel Baumann.Pour rappel, un LiveCD permet de tester ou de faire tourner une distribution GNU/Linux sur un ordinateur sans altérer le disque dur, puisque le système n'utilise que la RAM. La distribution TangoStudio par exemple est un Live CD. Je trouve cela très utile, notament pour mes cours de MAO où je peux faire passer ces DVD aux élèves pour qu'ils puissent utiliser ce que l'on voit en cours. Certains ont franchi le pas et sont passer sous TangoStudio.
Cependant, le projet TangoStudio risque de s'arrêter, je me suis donc dit qu'il serait intéressant de construire ensemble un système que l'on puisse se partager. Quand je dis ensemble cela peut être tous les gens présents sur ce site ...
Ce qui suit est un essai en même temps qu'un appel à contribution. Nous pouvons par exemple nous échanger les fichiers de configuration pour créer l'iso et rajouter sur ces fichiers ce que nous aimerions voir en plus. Cela est beaucoup plus rapide que de s'échanger des iso complètes.
Pour créer cette Debian je me suis inspiré du tuto du site : Debian_Squeeze_MAO. Ainsi j'ai essayer d'utiliser les programmes les moins gourmands en ressources. J'utilise Openbox comme gestionnaire de fenêtre et pcmanfm comme gestionnaire de fichier et non pas gnome ou nautilus.
Installation
Version
Attention à la version que vous utilisez. La documentation est basée sur la nouvelle version et beaucoup de choses ont changées depuis la version précédente. Le problème est que si vous utiliser la documentation avec la version qu'il y a dans les dépôts de Debian squeeze, cela ne correspondra pas. Je le sais car je me suis fait avoir 😉.D'autre part live-helper qui est toujours présent dans squeeze est l'ancien nom de live-build. Tout cela rend un peu confus l'installation de ce logiciel. Ainsi nous utiliserons ici la version 3.0.
Prérecquis
- Avoir les droits super utilisateur
- Un shell
- debootstrap ou cdebootstrap installé
- Linux 2.6.x (mais 3.x.x fonctionne)
- Être connecté à Internet
Téléchargement et installation
Pour éviter toute confusion de la version je suis allé sur le site http://live.debian.net/debian/pool/main/l/live-build et j'ai téléchargé le fichier live-build_3.0~a37+20111013.180312_all.deb, ensuite il ne reste plus qu'à taper cette ligne pour l'installer :Copy to clipboard
sudo dpkg -i live-build_3.0~a37+20111013.180312_all.deb
Documentation
La documentation doit donc se référer à la version du programme. Elle existe heureusement en français. Vous pouvez la télécharger à cette adresse :http://live.debian.net/manual/index.fr.html
Mise en œuvre
création d'un espace de travail et édition des scripts.
La majorité des actions que nous allons effectuer seront faites avec le terminal. La première chose à faire est de créer un dossier dans lequel nous allons travailler. Je vais quand même mettre les commandes de ce que j'explique même si ce tuto s'adresse à des personnes qui connaissent la majoritée d'entre elles.Copy to clipboard
mkdir DebMusicLive
Nous allons dans ce dossier :
Copy to clipboard
cd DebMusicLive
Ici nous allons créer un dossier où nous allons écrire les scripts qui vont nous permettre de créer notre image Iso.
Copy to clipboard
mkdir scripts
Nous allons dans ce nouveau dossier :
Copy to clipboard
cd scripts
Live-build fonctionne avec 3 scripts principaux :
- clean : Ce script permet de nettoyer les anciens dossier dans le but de créer une nouvelle version de l'iso.
- config : Il s'agit du script le plus important. C'est par ce script que nous allons demander à live-build comment construire notre Iso.
- build : Ce script permet de créer l'image. Attention plus il y a de logiciels plus l'opération est longue ...
Copy to clipboard
touch clean build config
Étant des scripts nous allons les rendre exécutables :
Copy to clipboard
chmod +x *
Dans clean nous allons mettre les lignes suivantes :
Copy to clipboard
#! /bin/sh cd .. sudo lb clean noauto "${@}" sudo rm -f config/binary config/bootstrap \ config/chroot config/common config/source sudo rm -f binary.log cd scripts
Dans build nous allons mettre les lignes suivantes :
Copy to clipboard
#! /bin/sh cd .. sudo lb build noauto "${@}" | tee binary.log cd scripts
Dans config nous allons éditer les lignes suivantes :
Copy to clipboard
#!/bin/sh cd .. lb config noauto \ --package-lists "standard" \ "${@}" cd scripts
Voilà, notre environnement est pret. Nous allons pouvoir créer notre premier système live sous debian.
Lancer les scripts
Si vous n'avez encore rien fait le script clean n'a pour l'instant aucune utilité. Donc pour l'instant nous allons simplement configurer ce que l'on va construire. Nous lançons donc le script config avec :Copy to clipboard
./config
Cela aura pour effet de créer les fichiers de configuration que le script build va utiliser. Nottament vous devriez avoir maintenant un dossier config dans votre répertoire de travail.
Par ce script nous demanderons à build de créer un système Debian standard (donc sans interface graphique) avec l'architecture qui sera prise par défaut sur la machine sur laquelle vous travaillez. Mais l'on peut tout à fait spécifier une autre architecture.
Ensuite nous allons construire notre image avec le script build. Attention cela va vous demander votre mot de passe, mais ne mettez pas sudo devant votre commande car elle est présente dans le script :
Copy to clipboard
./build
Après cela, vous aurez dans votre répertoire DebMusicLive des fichiers qui ont été créés lors de la configuration mais aussi et surtout un fichier binary.hybrid.iso qui n'est autre que votre système live.
Essai de l'image
Bien sûre, pour le respect de la nature et de votre portefeuille, vous n'avez pas intérêt à griller une montagne de CD ou de DVD vierges. Il existe plusieurs solutions pour essayer ces Iso. Virtualbox vous permet en effet de lancer votre Live CD et voir ce que vous avez effectué. Sinon il y a encore la clé USB. Je ne vais pas détailler l'utilisation de virtualbox, il y a plein de choses sur Internet là dessus. Par contre en ce qui concerne la clé Usb, une seule commande vous permet de charger l'Iso dessus. Attention cette commande grillera tout ce que vous avez dans la clé. Donc videz ce que vous avez dedans surtout si c'est important ...Tout d'abord mettez votre clé en place. Normalement elle devrait se situer sur /dev/sdb. Vous pouvez saisir la commande :
Copy to clipboard
sudo fdisk -l
pour vérifier.
Si c'est bien le cas vous pouvez graver votre iso sur votre clé en faisant :
Copy to clipboard
dd if=binary.hybrid.iso of=/dev/sdb
Quelquefois j'ai été obligé de faire cela en root, donc si cela ne marche pas mettez sudo devant.
Une fois l'image testée, si vous voulez changer des choses dans votre fichier config et créer un nouvel Iso, il faut que vous nettoyez le répertoire en faisant :
Copy to clipboard
./clean
Puis que vous relancier la configuration :
Copy to clipboard
./config
et enfin une nouvelle construction :
Copy to clipboard
./build
Voilà ce sont les bases du fonctionnement de cet outil et c'est aussi simple que ça. Nous allons voir maintenant comment configurer le fichier config pour que notre LiveMachin devienne une station de travail MAO.
Les différents paramètres de config
Configuration du script config
Vous avez beaucoup d'ajustements possible à faire dans ce fichier. Vous pouvez consulter le manuel de ce script en faisant :Copy to clipboard
man lb_config
Cette commande vous renvoie tous les parametrages nécessaires.
La première chose importante est que si vous restez sous Squeeze (l'actuelle version stable de Debian) vous allez vous retrouver avec un vieux noyau en dessous du 2.6.39 qui nous permet de ne plus avoir besoin (au moins pour le Live CD) du patch rt. Il faut donc se mettre sous Wheesy, la version en devenir et donc instable mais moins dangereuse que Sid pour avoir un noyau 3.2.x.
Ensuite vous gagnerez du temps si vous vous mettez sur un serveur proche de chez vous. En fait les logiciels sont gardés en cache pour éviter de les re-télécharger mais s'il y a des mises à jours c'est mieux.
Si vous ne précisez pas l'architecture, le programme prendra par défault celle de l'ordinateur avec lequel vous travaillez. Si vous voulez la changer référez vous au man de lb_config.
Voici mon fichier config avec lequel je travaille :
Copy to clipboard
#! /bin/sh cd .. lb config noauto \ --distribution "wheezy" \ --archive-area "main contrib non-free" \ --mirror-bootstrap "http://ftp.fr.debian.org/debian" \ --mirror-chroot-security "http://security.debian.org" \ --bootappend-live "locales=fr_FR.UTF-8 keyboard-layout=fr timezone=Europe/Paris" \ "${@}" cd scripts
Le répertoire config
Lorsque vous avez lancer le script config celui-ci vous a créé entre autre un répertoire config dans votre répertoire de travail. Dans ce répertoire nous allons pouvoir faire tout un tas de choses :- Mettre des fichier de configuration
- Mettre une liste de logiciels à installer
- package-lists
- includes.chroot
- Récupérer la dernière version de live-boot et live-boot-initramfs-tools.
- Installer ces deux paquets dans le dossier config/packages.chroot
Package-lists
C'est ici que nous allons mettre la liste des logiciels que nous voulons utiliser. Ce répertoire est donc essentiel ...Pour que cela fonctionne comme il faut, nous devons mettre deux suffixes qui vont préciser au programme de quoi il s'agit :
- list (ben oui c'est une liste)
- chroot (si vous avez bien suivi ce sont des logiciels qui seront installés à la création du Live CD)
Copy to clipboard
touch MesLogiciels.list.chroot
J'ai ainsi un fichier que je peux remplir avec les logiciels que je veux utiliser. Voici un exemple :
Copy to clipboard
#include <standard-x11> openbox obconf roxterm dbus-X11 leafpad pcmanfm chromium-browser chromium-browser-l10n alsa-oss alsa-tools-gui alsa-tools alsa-oss alsa-base libasound2-plugins feh tint2 usbmount jack2 qjackctl qsynth vkeybd rosegarden audacity ardour hydrogen hydrogen-drumkits fluidsynth-dssi
l'include signifie que l'on a des préconfigurations qui exite déjà, ainsi nous pouvons nous en servir pour nous épargner une liste trop longue. standard-x11 signifie que nous aurons un système de base avec uniquement xorg.
feh permet d'afficher un fond d'écran, tint2 permet d'avoir une barre des tâches, obconf de configurer openbox.
includes.chroot
Il s'agit là encore d'un dossier. Mais il est particulier car il représente la racine de notre système. Il va donc pouvoir contenir tous les fichiers de configuration de notre Live CD.Nous allons donc commencer par y créer un répertoire etc qui sera donc le future /etc de notre système Live. À l'intéreur de celui-ci nous allons créer également un répertoire skel. Ce répertoire va représenter le home du future Live utilisateur. Nous allons donc pouvoir y mettre tous les fichiers de configuration qu'il nous faut.
Il semble que par défault, la configuration rend impossible l'utilisation du fichier /etc/security/limits.d/audio.conf. Il faut donc créer ce fichier et y ajouter la configuration décrite dans le tuto pour PAM.
Copy to clipboard
@audio - rtprio 90 @audio - memlock unlimited
Conclusion
Voilà un outils assez simple d'utilisation. J'ai beaucoup galéré au départ car la doc que j'avais ne correspondait pas à la version du logiciel, et les dossiers présents à l'intérieur de config étaient totalement différents ...L'avantage de ce programme est aussi son inconvénient:
- Tout ce que l'on effectue est écrit dans la configuration. C'est donc beaucoup plus fiable que de rentrer dans le chroot et faire des choses que l'on va oublié de noter.
- Si l'on doit changer une virgule dans un fichier on est obligé de tout recompliler et cela peut être très long pour une distrib complète (1/2 heure à 3/4 d'heure). Cela dit on peut mettre l'option --interactive=true dans le script config, cela permet de se loger dans un chroot avant la construction et de savoir si tout fonctionne.
Attention cependant jack ne fonctionne pas sous virtualbox ...
Je n'ai pour l'instant pas tester une installation du Live CD sur une machine (pour cela il faut l'inclure dans le script config).
J'ai quelques xruns sous jack en Live USB mais j'ai mis ma clé dans diverses machines et cela à l'air de fonctionner ...