Ceci est une ancienne révision du document !
Méthode de localisation du live-CD lucid 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 10.04 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
V_NUM=10.04 # Stand for version number V_NAME=lucid # stand for version name ARCH=i386 # Architecture WD=$HOME/tmp/ubuntu # our working directory, should not interfere with anything you have if [ -e $WD ] then rm -rf $WD ; mkdir -p $WD ; else mkdir $WD ; fi ; mkdir $WD/tmp wget -c http://cdimage.ubuntu.com/daily-live/current/${V_NAME}-desktop-${ARCH}.iso #http://releases.ubuntu.com/karmic/ubuntu-9.10-desktop-i386.iso # Going into working directory cd $WD mkdir $WD/mnt sudo mount -o loop $WD/ubuntu-${V_NAME}-desktop-${ARCH}.iso $WD/mnt mkdir $WD/extract-cd rsync --exclude=/casper/filesystem.squashfs -av $WD/mnt/ $WD/extract-cd mkdir $WD/edit unsquashfs -d $WD/edit/. -f $WD/mnt/casper/filesystem.squashfs sudo umount mnt # Just replace archives by French ones sed -i 's/archive/fr.archive/' $WD/edit/etc/apt/sources.list # We just uncomment universe and multiverse for special package. They # will be commented out by the end of the installation dans /var/lib/apt # will be purged to gain space. sed -i -r -e 's/# (deb .* iverse)/\1/' $WD/edit/etc/apt/sources.list # Preparing and entering the chroot environment cp /etc/resolv.conf edit/etc/ 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 mount -t devpts none /dev/pts export HOME=/root export PS1="(chroot-trad-ubuntu) $PS1" # Updating repositories aptitude update # Removing unused packages aptitude purge `dpkg -l | awk '{print $2}' | egrep "^language-pack-|^language-pack-gnome-|^language-support-|^aspell|^myspell-|^hunspell-|^wamerican$|^wbritish$|^openoffice.org-help-|^openoffice.org-hyphenation-|^openoffice.org-thesaurus-|^gimp-help-|^evolution-documentation-" | xargs` # Installing packages aptitude 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 openoffice.org-hyphenation-fr openoffice.org-help-fr openoffice.org-l10n-fr wfrench gimp-help-fr manpages-fr manpages-fr-dev manpages-fr-extra LANG=fr_FR.UTF-8 # Purging *.mo files # May be inmproved # Creating localepurge configuration file cat >> /etc/locale.nopurge << EOF #################################################### # This is the configuration file for localepurge(8). #################################################### #################################################### # Uncommenting this string enables removal of localized # man pages based on the configuration information for # locale files defined below: MANDELETE #################################################### # Uncommenting this string causes localepurge to simply delete # locales which have newly appeared on the system without # bothering you about it: DONTBOTHERNEWLOCALE #################################################### # Uncommenting this string enables display of freed disk # space if localepurge has purged any superfluous data: SHOWFREEDSPACE ##################################################### # Commenting out this string enables faster but less # accurate calculation of freed disk space: #QUICKNDIRTYCALC ##################################################### # Commenting out this string disables verbose output: #VERBOSE ##################################################### # Following locales won't be deleted from this system # after package installations done with apt-get(8): fr fr_FR fr_FR@euro fr_FR.UTF-8 EOF # Really purging locale aptitude install localepurge localepurge aptitude purge localepurge # Changing the name onto the 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 ## 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 # TTY localisation dpkg-reconfigure -phigh console-setup sed -i 's/Please remove the disc, close the tray (if any)/Retirez le disque, refermez le tiroir (si nécessaire)'/ /etc/init.d/casper sed -i 's/and press ENTER to continue/et appuyer sur Entrée pour continuer/' /etc/init.d/casper # Todo : casped-md5sum translation # Live CD doesn't accept UID greater than 500 if [ -neq `grep '^[^:]*:[^:]*:[1-9][0-9][0-9][0-9]:' /etc/passwd` "" ] then usermod -u 500 $login ; fi ; if [ -neq `grep '^[^:]*:[^:]*:[12][0-9][0-9][0-9][0-9]:' /etc/passwd` "" ] then usermod -u 500 $login ; fi ; KV-KB=boot/initrd.img-* 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 # On supprime l'initrd du squashfs généré lors du changement de locale: rm boot/initrd.img-2.6.31-14-generic # Getting out the chroot environment 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 # Getting out the chroot environment mv -f $WD/edit/initrd.lz $WD/extract-cd/casper/ # Updating the autorun.inf sed -i 's/Install Ubuntu/Installer Ubuntu/' $WD/extract-cd/autorun.inf # Dealing with gfxboot cd $WD/extract-cd/isolinux chmod u+w . echo fr > lang echo fr > langlist cp fr.* $WD/tmp/ rm *.hlp *.tr mv $WD/tmp/fr.* . chmod u-w . lang langlist # Creating CD 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 sed -i '/casper/d;/cryptsetup/d;/dmraid/d;/ecryptfs-utils/d;/gparted/d;/jfsutils/d;/keyutils/d;/kpartx/d;/libdebconfclient0/d;/libdebian-installer4/d;/libdmraid1.0.0.rc15/d;/libecryptfs0/d;/libntfs10/d;/libreadline5/d;/localechooser-data/d;/lupin-casper/d;/ntfsprogs/d;/python-pyicu/d;/rdate/d;/reiserfsprogs/d;/ubiquity/d;/ubiquity-casper/d;/ubiquity-frontend-gtk/d;/ubiquity-slideshow-ubuntu/d;/ubiquity-ubuntu-artwork/d;/user-setup/d;/xfsprogs/d' extract-cd/casper/filesystem.manifest-desktop # Creating the squashfs sudo rm $WD/extract-cd/casper/filesystem.squashfs sudo mksquashfs $WD/edit $WD/extract-cd/casper/filesystem.squashfs rm $WD/extract-cd/md5sum.txt cd $WD/extract-cd && find . -type f -not -name md5sum.txt -not -path '*/isolinux/*' -print0 | xargs -0 -- md5sum > md5sum.txt cd $WD/extract-cd mkisofs -r -V "Ubuntu ${V_NUM} 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-${V_NUM}-desktop-i386-fr.iso .
Vous pouvez tester l'image avec
kvm -m 512 -enable-kvm -cdrom ubuntu-10.04-desktop-i386-fr.iso -boot d -net nic -net user -net vde