Ceci est une ancienne révision du document !
Méthode de localisation du live-CD Karmic 32bits en français
Dans un but de transparence, voici ci-dessous la méthode que l'on va utiliser pour créer l'ISO Ubuntu 9.10 Edition Francophone (32bits) francophone. Elle est issue de la mise en commun de l'expérience des "créateurs d'ISO" du projet. Merci notamment à smo et titienne pour avoir rédigé la première version de cette méthode.
Cette méthode servira de base pour les autres versions (kubuntu, xubuntu…) francophones.
Page principale du projet : traduction_live_cd. Forum du projet : ici.
Préparation
Installation des outils nécessaires
Le paquet squashfs est nécessaire afin de pouvoir décompresser le système de fichier embarqué sur le live-cd. Le paquet mkisofs servira à la génération de l'iso finale.
sudo apt-get install squashfs-tools genisoimage
Placer l'iso de la Ubuntu 9.10 version desktop 32 bits dans le répertoire personnel
cd ~ wget -c http://releases.ubuntu.com/karmic/ubuntu-9.10-desktop-i386.iso
Création d'un répertoire de travail :
mkdir ~/live cd ~/live
Utilisation de l'image iso récupérée
Nous allons monter l'image iso, afin de pouvoir en parcourir son contenu, et nous faisons une copie locale des fichiers de l'iso afin de pouvoir les modifier.
Extraction du contenu de l'iso :
mkdir mnt sudo mount -o loop ~/ubuntu-9.10-desktop-i386.iso mnt mkdir extract-cd rsync --exclude=/casper/filesystem.squashfs -av mnt/ extract-cd
Nota : nom de l'iso à adapter éventuellement
Dans la foulée nous décompressons le système de fichier embarqué dans l'iso afin de pouvoir y faire des modifications. Ce système sera celui sous lequel l'utilisateur se retrouve lorsqu'il arrive sur la session de test du live-cd. Donc c'est dans ce dernier qu'il faut agir pour ajouter des paquets, changer le fond d'écran etc.
Extraction du système :
mkdir edit sudo unsquashfs -d edit/. -f mnt/casper/filesystem.squashfs
Pour finir, on démonte l'iso :
sudo umount mnt
Le "sources.list"
Nous allons modifier le sources.list en activant les dépôts "universe" et en désactivant les dépôts sources (deb-src).
gksu gedit edit/etc/apt/sources.list
Remplacez le contenu par :
deb http://fr.archive.ubuntu.com/ubuntu karmic main restricted # deb-src http://fr.archive.ubuntu.com/ubuntu karmic main restricted deb http://security.ubuntu.com/ubuntu karmic-security main restricted # deb-src http://security.ubuntu.com/ubuntu karmic-security main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://fr.archive.ubuntu.com/ubuntu karmic-updates main restricted # deb-src http://fr.archive.ubuntu.com/ubuntu karmic-updates main restricted ## Uncomment the following two lines to add software from the 'universe' ## repository. ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team. Also, please note that software in universe WILL NOT receive any ## review or updates from the Ubuntu security team. # deb http://fr.archive.ubuntu.com/ubuntu karmic universe # deb-src http://fr.archive.ubuntu.com/ubuntu karmic universe # deb http://fr.archive.ubuntu.com/ubuntu karmic-updates universe # deb-src http://fr.archive.ubuntu.com/ubuntu karmic-updates universe # deb http://security.ubuntu.com/ubuntu karmic-security universe # deb-src http://security.ubuntu.com/ubuntu karmic-security universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team. # deb http://fr.archive.ubuntu.com/ubuntu karmic multiverse # deb-src http://fr.archive.ubuntu.com/ubuntu karmic multiverse # deb http://fr.archive.ubuntu.com/ubuntu karmic-updates multiverse # deb-src http://fr.archive.ubuntu.com/ubuntu karmic-updates multiverse # deb http://security.ubuntu.com/ubuntu karmic-security multiverse # deb-src http://security.ubuntu.com/ubuntu karmic-security multiverse
Note IMPORTANTE !!! :
quand les sources sont mises à jour, une sauvegarde est faite dans /var/lib/apt, plus il y'a de sources décommentées, plus ce repertoire est gros, exemple main + universe = 54 mo actuellement, sans universe = 11 mo
ceci est donc a prendre en compte pour le poids final de notre live-cd, pour cela il suffit de veiller à ne laisser QUE main décommenté comme dans l'exemple ci-dessus et mettre à jour en fin d'édition en chroot (si besoin)
Le Chroot
Nous allons entrer dans le système de fichier contenu dans le live-cd (et que nous avons décompressé). Mais plus encore nous allons le lancer, faire comme si le live-cd était lancé et nous y connecter. C'est ce à quoi sert un chroot. Nous allons donc nous retrouver dans l'environnement du live-cd et chacune de nos actions va avoir des répercutions sur l'iso que nous génèrerons au final. Nous allons également monter quelques répertoires afin de nous donner accès au net depuis notre chroot.
Quelques réglages préalables puis passage en chroot pour personnaliser le système :
sudo cp /etc/resolv.conf edit/etc/ sudo cp /etc/hosts edit/etc/ sudo mount --bind /dev/ edit/dev sudo chroot edit /bin/bash mount -t proc none /proc mount -t sysfs none /sys export HOME=/root
Mises à jour des dépôts
Nous sommes dans le chroot. La première étape est de mettre à jour la liste des paquets disponibles :
apt-get update
Suppression des paquets inutiles
Afin de libérer de la place on supprime les paquets linguistiques qui sont déjà installés.
LANG=C apt-get remove --purge $(dpkg -l | awk '{print $2}' | egrep "language-pack|aspell-|gimp-help-|language-support-|myspell-|language-pack-gnome-|gimp-help-|thunderbird-locale-" | xargs)
Installation des paquets français
Maintenant on ajoute les paquets linguistiques pour le français :
apt-get install language-pack-fr language-pack-fr-base gimp-help-fr language-support-fr language-support-writing-fr language-pack-gnome-fr language-pack-gnome-fr-base manpages-fr manpages-fr-dev manpages-fr-extra openoffice.org-hyphenation openoffice.org-help-fr openoffice.org-l10n-fr wfrench gimp-help-common LANG=fr_FR.UTF-8
attention, manpages-fr manpages-fr-dev manpages-fr-extra sont dans universe (il faut fixer la procédure, j'ai ajouté temporairement universe puis supprimé)
Suppression des .mo inutiles
On continue notre nettoyage en installant localepurge qui va permettre de supprimer toutes les locales installées pour ne garder au final que celle pour le français.
→ idem localpurge est dans universe
apt-get install localepurge
Ne sélectionner que fr, fr_FR, fr_fr@euro et fr_FR.UTF-8
On lance la purge et on supprime le paquet :
localepurge apt-get remove --purge localepurge
Modifier le nom d'utilisateur
Lorsque vous êtes sur le livecd, vous êtes connecté comme étant Live session user. Nous remplacerons ça par Session CD
sed -i "s/Live session user/Session CD/g" /etc/casper.conf sed -i "s/Live session user/Session CD/g" /usr/share/initramfs-tools/scripts/casper
Nota : la re-génération de initrd est nécessaire afin que soit prise en compte cette modification.
Firefox
Marque-page
Firefox 3 a ses menus en français, mais les marque-pages sont ceux de la version anglaise. Nous allons donc récupérer une archive française de firefox et en extraire les marque-pages en remplacement de ceux existant.
wget http://ubukey.fr/traductions-fr/projet%20LiveCD-fr/ubuntu9.10-fr/firefox/boomarks.html -O /etc/firefox-3.5/profile/bookmarks.html
→ les ICON_URI ont été supprimés de ce fichier
Modifier la page d'accueil
Pour modifier la page d'accueil on doit modifier le module "ubufox" pour ne pas avoir une page d'erreur si on n'a pas de connection à internet.
avant tout ce fichier etant un .jar, si la commande "jar" n'est pas disponible :
sudo apt-get install fastjar
il faut ensuite extraire, éditer puis recomprésser ce jar (a faire directement dans le chroot ou en local mais sans oublier de copier le fichier dans le chroot ensuite…)
## au cas ou on cree un repertoire de travail mkdir -p /tmp/live/ubufox cd /tmp/live/ubufox cp /usr/share/ubufox/chrome/ubufox.jar /tmp/live/ubufox fastjar -xf ubufox.jar rm ubufox.jar
on passe a l'edition
cd /tmp/live/ubufox/content # on change le lien par défaut sed -i 's%http://start.ubuntu.com/9.10%http://start.ubuntu-fr.org/9.10%' startpage.html ## et la langue dans le cas ou la localisation n'est pas détectée correctement sed -i 's/en-US/fr-FR/' startpage.html
Pour finir, on recrée le .jar
cd /tmp/live/ubufox fastjar -cMf ubufox.jar . cp ubufox.jar /usr/share/ubufox/chrome/ apt-get remove --purge fastjar
voilà pour ubufox et la page d'accueil
Autre
Modifier le "useragent" du profile par défaut:
echo 'user_pref("general.useragent.locale", "fr-FR");' >> /etc/firefox-3.5/profile/prefs.js
Modifier le lien de "Notes de version" qui se trouve dans le menu aide de Firefox :
echo 'user_pref("app.releaseNotesURL", "http://doc.ubuntu-fr.org/karmic");' >> /etc/firefox-3.5/profile/prefs.js
Note : en exemple, Les fichiers complets issu de ces explications sont ici : http://ubukey.fr/traductions-fr/projet%20LiveCD-fr/ubuntu9.10-fr/firefox/
Les exemples de documentation en français
Deux choses pour la version Karmic, traduire le .desktop qui fait désormais office de lien et remplacer les exemples anglais par ceux traduits par la communautée
Le .desktop
traduire /etc/skel/examples.desktop
## edition de casper sed -i 's/Desktop/Bureau/g;s/Examples/Exemples/g' /usr/share/initramfs-tools/scripts/casper-bottom/10adduser ## profitons en pour ajouter un saut de ligne au texte de l'icone installer ubuntu 9.10 sed -i 's/Installer RELEASE/Installer \\nRELEASE/' /usr/share/applications/ubiquity-gtkui.desktop
Les exemples
Nous remplaçons ici les exemples du live-cd officiel par ceux traduits par la communauté ubuntu-fr (reprendre l'etape initialisation du chroot plus haut si besoin):
cd /usr/share/example-content rm * wget http://ubukey.fr/traductions-fr/projet%20LiveCD-fr/ubuntu9.10-fr/radline_doc/Doc%209_10.tar.gz tar xvf Doc%209_10.tar.gz rm traductions-exemples.tar.gz mv LiveCD_francais_remerciements.txt Ubuntu_Édition_Francophone_remerciements.txt
Les fichiers de traductions ne correspondent pas au contenu. Comparaison manuelle…
un petit script cron tourne désormais et regenere al doc tous les jours a minuit (jaunty en exemple pour l'instant) ;)
Clavier fr dans le tty1
dpkg-reconfigure console-setup
choisir les configuration suivante : - Generic 105-key (Intl) PC - France - France - Alternative - Pas de touche AltGr - Pas de touche « compose » - UTF-8 - # latin1 et latin5 : langues de l'Europe de l'ouest et turc - VGA - 16 - /dev/tty[1-6]
Installation de Simple Comme Ubuntu
Récupération du .deb, puis:
dpkg -i simplecommeubuntu*deb # création du .desktop sur le bureau… vim /etc/skel/scu-9.10.desktop
Son contenu :
[Desktop Entry] Name=Simple Comme Ubuntu 9.10 Comment=Livre libre décrivant l'utilisation d'Ubuntu Exec=evince /usr/share/doc/simplecommeubuntu/scu-9.10.pdf.gz Icon=/usr/share/icons/oxygen/64x64/apps/accessories-dictionary.png Terminal=false Type=Application StartupNotify=true
Casper et messages de boot
Messages au reboot
Pour traduire les message au reboot du pc, "please remove your disk and close the tray…"
editez simplement le fichier ~live/edit/etc/init.d/casper
fichier exemple : http://ubukey.fr/traductions-fr/projet%20LiveCD-fr/ubuntu9.10-fr/casper/etc-init.d/casper
Messages de vérification du live-cd
Pour les messages de vérification du live cd etc, la méthode que j ai utilisé :
En dehors du chroot:
apt-get source casper cd casper*/casper-md5check # maintenant traduire le fichier casper-md5check.c en console et recompiler avec la commande "make" # restera ensuite à recopier le nouveau binaire: cp casper-md5check ~live/edit/usr/lib/casper/ chmod +x /usr/lib/casper/casper-md5check
et voila :)
fichier recompilé (pour karmic): http://ubukey.fr/traductions-fr/projet%20LiveCD-fr/ubuntu9.10-fr/casper/usr-lib-casper/casper-md5check
Vérifications
Recherche des logins dont l'uid est supérieur ou égal à 1000
grep '^[^:]*:[^:]*:[1-9][0-9][0-9][0-9]:' /etc/passwd grep '^[^:]*:[^:]*:[12][0-9][0-9][0-9][0-9]:' /etc/passwd
Si les commandes précédentes renvoient quelque chose, il faut forcer l'uid à une valeur plus faible, sinon le live-cd ne démarrera pas :
usermod -u 500 $login
Initrd
On supprime l'initrd du squashfs généré lors du changement de locale:
rm boot/initrd.img-2.6.31-14-generic
Là nous mettons à jour le initrd afin de prendre en compte les changements faits plus haut dès qu'on touche à casper :
## genere l init mis à jour mkdir -p /tmp/init mkinitramfs -o /tmp/init/initrd.gz 2.6.31-14-generic ## extrait cd /tmp/init gzip -dc initrd.gz | cpio -id rm *.gz ## recompresse en lzma, specifique à karmic... find . | cpio --quiet --dereference -o -H newc | lzma -7 > /initrd.lz cd / rm -R /tmp/init
Et voila pour l'init en lzma
Nota : il faudra (voir plus loin) faire prendre en compte ce nouvel initrd par le noyau du live-cd. Sinon cela ne sert à rien
Sortie du chroot
nettoyage
On a fini les modifications dans le chroot donc on en sort proprement en enlevant nos traces, qui sinon se retrouveront sur le système final. Comme par exemple les paquets téléchargés qui vont gonfler inutilement la taille de notre système au final.
apt-get clean rm -rf /tmp/* rm -rf /var/tmp/* rm /etc/resolv.conf rm /etc/hosts umount /proc umount /sys exit sudo umount edit/dev
On récupère le initrd.lz
On récupère le initrd.lz précédemment compilé et on le place au bon emplacement afin qu'il soit utilisé par le noyau du live-cd
sudo mv -f edit/initrd.lz ~/live/extract-cd/casper/
Moteurs de recherche dans Firefox
cd edit/etc/firefox-3.5/profile sudo wget http://www.ubukey.fr/traductions-fr/projet%20LiveCD-fr/ubuntu9.10-fr/firefox/searchplugins.tar.bz2 sudo tar xvf searchplugins.tar.bz2 sudo rm searchplugins.tar.bz2 cd ~/live
Suppression de edit/etc/firefox-3.5/profile/searchplugins/ubuntu-france.xml: Il s'agit d'une violation du trademark de canonical (pas une loco et utilisation du nom ubuntu) Renommage de wikipidia-fr.xml en wikipedia-fr.xml
Remplacer les radio RhythmBox
nous allons remplacer les radio de RhythmBox par des radios françaises :
sudo wget http://www.ubukey.fr/traductions-fr/projet%20LiveCD-fr/ubuntu9.10-fr/rhythmbox/radio.pls -O edit/usr/lib/rhythmbox/plugins/iradio/iradio-initial.pls
/!\ il m'a fallu rajouter (vu que la source ne l'avait pas):
[playlist]
autorun.inf
sudo sed -i 's/Install Ubuntu/Installer Ubuntu/' extract-cd/autorun.inf
Pour gfxboot
Ici nous allons modifier le tout premier écran qui apparait lorsque vous démarrez sur le live-cd. Nous modifions le fichier langlist afin qu'il ne propose plus le choix de toutes les langues et que celle choisie automatiquement soit le français. De plus nous créons le fichier lang qui fait en sorte que la langue d'affichage des menus soit le français.
cd ~/live/extract-cd/isolinux sudo su echo "fr" > langlist echo "fr" > lang exit cd ~/live
Création du CD
Pour le manifest
chmod +w extract-cd/casper/filesystem.manifest sudo chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop sudo sed -i '/ubiquity/d;/casper/d;/cryptsetup/d;/dmraid/d;/ecryptfs-utils/d;/gparted/d;/jfsutils/d;/keyutils/d;/kpartx/d;/libdebconfclient0/d;/libdebian-installer4/d;/libntfs10/d;/libreadline5/d;/localechooser-data/d;/ntfsprogs/d;/openoffice.org-hyphenation/d;/openoffice.org-thesaurus/d;/python-pyicu/d;/rdate/d;/reiserfsprogs/d;/user-setup/d;/wamerican/d;/wbritish/d;/xfsprogs/d' extract-cd/casper/filesystem.manifest-desktop
Création du squashfs
Nous allons maintenant créer l'image de notre système de fichier que nous avons personnalisé :
cd ~/live sudo rm extract-cd/casper/filesystem.squashfs sudo mksquashfs edit extract-cd/casper/filesystem.squashfs
Nota : la première commande peut retourner une erreur (aucun fichier). C'est juste pour s'assurer qu'on est prêt pour la deuxième comm nde.
Création du md5sum
Ici on reconstruit le fichier md5sum.txt qui sert lors de l'auto-vérification du cd depuis le menu de boot.
sudo -s rm extract-cd/md5sum.txt (cd extract-cd && find . -type f -not -name md5sum.txt -not -path '*/isolinux/*' -print0 | xargs -0 -- md5sum > md5sum.txt ) exit
Création de l'image iso finale
Il est temps de créer notre iso :
cd extract-cd sudo mkisofs -r -V "Ubuntu 9.10 Edition Francophone" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-9.10-desktop-i386-fr.iso .
Vous pouvez maintenant tester votre image Ubuntu Edition Francophone.