Logram se compose d'une distribution et d'un environnement de bureau. L'environnement de bureau peut être installé sur n'importe quelle distribution. La distribution, par contre, nécessite quelques manipulations.
L'installation de l'environnement de bureau n'est pas spécialement simple mais pas spécialement complexe. Si vous suivez les instructions, tout devrait se passer sans problèmes.
La méthode détaillée se trouve sur la page Tester Logram DE.
Logram ne dispose pas encore d'un installateur, ce qui fait que vous devrez faire son travail à sa place. Pas de panique, ce n'est pas compliqué, et tout est expliqué ici. Il faut également savoir que Setup n'est pas encore empaqueté, et que les instructions pour gérer son installation Logram à partir d'un Setup externe sont données plus bas.
L'installation de Logram ne nécessite rien de trop compliqué, voici ce que vous devez savoir et les outils que vous devez posséder :
La première étape est de créer une partition pour Logram, sur un disque réel, donc pas une image disque. En effet, Logram a besoin d'une installation de GRUB, qui doit détecter le disque sur lequel il est. Il est possible d'installer Logram dans une image disque, mais ça peut être plus compliquer.
Utiliser un stick USB de minimum 256Mio (Logram en occupe 130, plus encore le cache des paquets et éventuellement quelques données) est très pratique car il permet de ne pas toucher aux disques durs, et également de tester Logram sur plusieurs machines (et c'est excellent pour voir si tous les pilotes marchent bien).
Commençons par créer une partition. Dans la suite des instructions, une clef USB de 2Gio, nommée /dev/sdc, sera utilisée.
1 2 3 | cd /mnt
mkdir logram
sudo fdisk /dev/sdc
|
Vous pouvez également utiliser un utilitaire graphique si vous avez à redimensionner des partitions. Si vous utilisez une clef USB, il suffit de taper o [ENTER] n [ENTER] p [ENTER] 1 [ENTER] [ENTER] [ENTER] w [ENTER]. Faites attention à ce que votre partition ne commence pas trop tôt, ou sinon GRUB ne saura pas s'installer. N'utilisez pas le cylindre 1, mais le 100 par exemple. Votre disque USB contient maintenant une seule grosse partition occupant l'entièreté de sa taille.
Il faut maintenant formatter cette partition (/dev/sdc1 ici) en EXT4 pour pouvoir l'utiliser. L'ext3 fonctionne également, si votre noyau ne supporte pas ext4. Il faut obligatoirement un système de fichier ext*, car il n'existe pour le moment que e2fsprogs comme utilitaires de systèmes de fichiers dans Logram.
1 | sudo mkfs.ext4 /dev/sdc1 |
Il faut maintenant que Setup ait une base avec laquelle travailler. Notre partition est vide, nous allons la peupler.
Premièrement, montez cette partition dans /mnt/logram :
1 | sudo mount /dev/sdc1 /mnt/logram |
Ensuite, nous allons créer l'arbre des dossiers FHS :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | sudo mkdir -pv /mnt/logram/{bin,boot,etc/opt,home,lib,mnt,opt} sudo mkdir -pv /mnt/logram/{media/{floppy,cdrom},sbin,srv,var} sudo install -dv -m 0750 /mnt/logram/root sudo install -dv -m 1777 /mnt/logram/tmp /mnt/logram/var/tmp sudo mkdir -pv /mnt/logram/usr/{,local/}{bin,include,lib,sbin,src} sudo mkdir -pv /mnt/logram/usr/{,local/}share/{doc,info,locale,man} sudo mkdir -v /mnt/logram/usr/{,local/}share/{misc,terminfo,zoneinfo} sudo mkdir -pv /mnt/logram/usr/{,local/}share/man/man{1..8} for dir in /mnt/logram/usr /mnt/logram/usr/local; do sudo ln -sv share/{man,doc,info} $dir done case $(uname -m) in x86_64) sudo ln -sv lib /mnt/logram/lib64 && sudo ln -sv lib /mnt/logram/usr/lib64 ;; esac sudo mkdir -v /mnt/logram/var/{lock,log,mail,run,spool} sudo mkdir -pv /mnt/logram/var/{opt,cache,lib/{misc,locate},local} sudo mkdir -v /mnt/logram/{dev,sys,proc} |
La partition est maintenant un minimum peuplée. Il faut maintenant créer les premiers fichiers permettant de gérer le système. Copiez simplement le contenu donné ici dans les fichiers indiqués.
/mnt/logram/etc/group
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | root:x:0: bin:x:1: sys:x:2: kmem:x:3: tty:x:4: tape:x:5: daemon:x:6: floppy:x:7: disk:x:8: lp:x:9: dialout:x:10: audio:x:11: video:x:12: utmp:x:13: usb:x:14: cdrom:x:15: mail:x:34: nogroup:x:99: |
/mnt/logram/etc/passwd
1 2 3 | root::0:0:root:/root:/bin/bash bin:x:1:1:bin:/dev/null:/bin/false nobody:x:99:99:Unprivileged User:/dev/null:/bin/false |
/mnt/logram/bin/which (faites "sudo chmod +x /mnt/logram/bin/which" après)
1 2 | #!/bin/bash type -pa "$@" | head -n 1 ; exit ${PIPESTATUS[0]} |
/mnt/logram/etc/modprobe.d/usb-load-ehci-first.conf
1 2 | install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe --ignore-install ohci_hcd $CMDLINE_OPTS install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe --ignore-install uhci_hcd $CMDLINE_OPTS |
Dernier détail, créer les noeuds nécessaires au fonctionnement du système dès le démarrage, c'est à dire /dev/null et /dev/console. Il faut aussi créer quelques fichiers de log :
1 2 3 4 5 6 7 | sudo mknod -m 600 /mnt/logram/dev/console c 5 1 sudo mknod -m 666 /mnt/logram/dev/null c 1 3 sudo touch /mnt/logram/etc/mtab sudo ln -s bash /mnt/logram/bin/sh # Pas encore de système d'alternatives, et Bash n'installe pas sh sudo touch /mnt/logram/var/run/utmp /mnt/logram/var/log/{btmp,lastlog,wtmp} sudo chgrp -v 13 /mnt/logram/var/run/utmp /mnt/logram/var/log/lastlog sudo chmod -v 644 /mnt/logram/var/run/utmp /mnt/logram/var/log/lastlog |
Il faut également fournir /dev, /sys et /proc au système
1 2 3 | sudo mount -o bind /dev /mnt/logram/dev sudo mount -o bind /proc /mnt/logram/proc sudo mount -o bind /sys /mnt/logram/sys |
Maintenant, les choses amusantes peuvent commencer
. Nous allons installer les fichiers de base de Setup dans notre partition. Notez que Setup, lui, n'est pas installé. Qt n'est pas encore empaqueté, et il ne pourrait pas fonctionner. Vous apprendrez à la fin comment utiliser Setup en dehors de Logram pour gérer Logram, et entre autre installer des mises à jour, installer ou supprimer des paquets, et en créer.
Assurez-vous d'abord de bien suivre le tutoriel Tester Setup, et vérifiez que le dépôt Logram contient bien une bonne centaine de paquets. Si non, attendez un peu, c'est qu'une grosse mise à jour du dépôt est en cours.
Ensuite, copiez le contenu de /tmp/setup/etc/lgrpkg dans /mnt/logram/etc/lgrpkg, si vous avez suivi le tutoriel (si vous utilisez /setup/ à la place de /tmp/setup/, faites également le changement dans cette ligne de commande) :
1 2 3 4 | sudo mkdir -p /mnt/logram/etc/lgrpkg sudo mkdir -p /mnt/logram/usr/libexec sudo cp -r /tmp/setup/etc/lgrpkg/* /mnt/logram/etc/lgrpkg sudo cp /usr/libexec/scriptapi /mnt/logram/usr/libexec |
Éditez maintenant /mnt/logram/etc/lgrpkg/sources.list et vérifiez qu'il est correct, et qu'il installe bien dans / :
1 2 3 4 5 6 7 8 9 10 | Language=fr [repo] Type=remote Mirrors=http://archive.logram-project.org Distributions=experimental Archs=i686 all Active=true Description=Logram's main archive Sign=false |
Notez que vous devez absolument utiliser l'architecture i686, car seuls les paquets pour cette architecture son faits. Pas de panique, c'est possible même si votre distribution principale est en x86_64. Vous pourrez même chrooter dans votre Logram. La vie n'est-elle pas belle
?
Il faut maintenant créer les dossiers de base pour Setup :
1 | sudo mkdir -pv /mnt/logram/var/cache/lgrpkg/{db,download,temp} |
Maintenant que Setup est capable de fonctionner, il est temps de bootstrapper Logram, c'est à dire d'utiliser un Setup externe pour installer des paquets.
ATTENTION : Si vous avez des trucs vraiment importants de lancés ou sur votre disque, sauvegardez-les. Normalement, Setup ne fait rien de mal, mais on n'est jamais à l'abrit d'un bug supprimant ce qu'il ne faut pas. En outre, vos locales seront redéfinies par la Glibc (limitation connue des triggers), ainsi que votre fichier /usr/share/info/dir. Vous aurez les locales en_US, fr_BE et fr_FR uniquement après cette commande. Pour corriger ce petit problème, reconstruisez vous-même vos bonnes locales après, avec la commande qui convient selon votre distribution.
Mettes d'abord à jour la base de donnée de Setup :
1 2 | sudo setup -R /mnt/logram update
sudo setup -R /mnt/logram search linux # Doit afficher un bon résultat
|
Il est temps maintenant de passer aux choses très sérieuses, c'est à dire l'installation des paquets. Cela est fait en plusieurs étapes car des paquets doivent être installés avant d'autres :
1 2 3 4 5 6 7 | sudo setup -R /mnt/logram add initng
# On peut maintenant installer le reste
sudo setup -R /mnt/logram add bash bzip2 curl dbus diffutils file findutils gawk grep
gzip iana-etc inetutils iproute2 kbd less linux-kernel
linux-modules linux-firmware lzop man-db man-pages mkinitcpio
patch perl procps psmisc sed shadow sysklogd tar texinfo udev
xz grub vim
|
Logram est maintenant installé, mais pas bootable. Il faut maintenant rentrer dedans, se logguer, et continue :
1 | sudo chroot /mnt/logram /bin/bash |
Voilà, vous êtes dans Logram
Il faut maintenant faire en sorte que Logram démarre correctement. Pour cela, il faut d'abord créer un initrd, un disque qui permet au système d'initialiser les disques sans en avoir besoin.
Créer un initrd est facile, Logram a repris la commande mkinitcpio de ArchLinux :
1 | mkinitcpio -k 2.6.33-logram -g /boot/initrd.img-2.6.33-logram -S autodetect |
«-S autodetect» permet de sauter la détection du matériel. L'initrd est donc plus lourd, mais vous n'avez pas besoin de binder /dev, /sys et /proc. De plus, Logram démarrera sur tous les ordinateurs, et pas seulement le vôtre.
Maintenant, il faut installer GRUB. Sur un disque USB, c'est très facile. Par contre, si vous avez installé Logram sur une partition, il faudra sauter les instructions suivantes et modifier vous-même votre menu.lst ou grub.cfg pour ajouter une entrée Logram.
1 2 3 | grub-install --grub-setup=/bin/true /dev/sdc --no-floppy # ne pas écrire la MBR, seulement copier les fichiers grub-mkconfig -o /boot/grub/grub.cfg grub-setup /dev/sdc # Là on installe GRUB |
Il est temps maintenant de configurer Logram suivant vos paramètres. C'est simplement la modification de fichiers.
Tout d'abord, configuration de l'horloge :
/etc/conf.d/clock
1 2 | CLOCK="UTC" # Si votre horloge matérielle est réglée sur UTC. Sinon, retirez la ligne.
# Si vous avez un Windows en parallèle, l'horloge matérielle n'est pas UTC.
|
/etc/inputrc
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | # Begin /etc/inputrc # Modified by Chris Lynn <roryo@roryo.dynup.net> # Allow the command prompt to wrap to the next line set horizontal-scroll-mode Off # Enable 8bit input set meta-flag On set input-meta On # Turns off 8th bit stripping set convert-meta Off # Keep the 8th bit for display set output-meta On # none, visible or audible set bell-style none # All of the following map the escape sequence of the value # contained in the 1st argument to the readline specific functions "\\eOd": backward-word "\\eOc": forward-word # for linux console "\\e[1~": beginning-of-line "\\e[4~": end-of-line "\\e[5~": beginning-of-history "\\e[6~": end-of-history "\\e[3~": delete-char "\\e[2~": quoted-insert # for xterm "\\eOH": beginning-of-line "\\eOF": end-of-line # for Konsole "\\e[H": beginning-of-line "\\e[F": end-of-line # End /etc/inputrc |
/etc/resolv.conf : recopiez celui de votre distribution pour pouvoir accéder à Internet.
/etc/hostname
1 | logram |
/etc/hosts
1 2 3 4 5 6 7 8 | # # /etc/hosts: static lookup table for host names # #<ip-address> <hostname.domain.org> <hostname> 127.0.0.1 localhost.localdomain localhost # End of file |
/etc/keymaps.conf
1 2 3 | KEYMAP="be-latin1" # Changez ici si vous ne voulez pas utiliser le clavier le plus puissant au monde :P EXTENDED_KEYMAPS="" UNICODE="yes" |
Modifiez aussi LANG dans /etc/profile. Maintenant que tout ça est fait, nous allons terminer l'installation en lançant les triggers, permettant d'avoir un système tout beau. Ces triggers avaient été lancés par Setup, mais hors du chroot, et n'ont donc rien fait.
1 2 3 | /usr/share/triggers/update-locales /usr/share/triggers/update-info ln -s /bin/bash /sbin/sulogin |
Il faut ensuite créer /etc/fstab. Ici, il y a une petite manipulation : trouver l'UUID de votre disque. Par exemple, voici le résultat d'un ls :
1 2 3 4 5 6 7 8 9 10 | # ls -l /dev/disk/by-uuid total 0 lrwxrwxrwx 1 root root 10 7 mar 09:16 17484ff8-b3fc-4026-999b-207555616881 -> ../../sdb3 lrwxrwxrwx 1 root root 10 7 mar 09:16 1a7ba17b-8910-44a4-8875-360fdf67d591 -> ../../sda3 lrwxrwxrwx 1 root root 10 7 mar 09:16 53ef3808-5d59-4848-8a54-d73a64837482 -> ../../sda4 lrwxrwxrwx 1 root root 10 7 mar 09:16 9acddb7b-0c03-4a99-a51a-6768ca892300 -> ../../sda1 lrwxrwxrwx 1 root root 10 7 mar 09:16 beb6800a-0bb5-4b72-91db-c0732e91d629 -> ../../sdb1 lrwxrwxrwx 1 root root 10 7 mar 10:21 c5032e6f-2608-4aa2-b19a-4cf766aecc59 -> ../../sdc1 lrwxrwxrwx 1 root root 10 7 mar 09:16 d206c6c2-dd67-43f1-a929-36cf89a66391 -> ../../sda2 lrwxrwxrwx 1 root root 10 7 mar 09:16 d7bc0611-5a7d-4aa7-9443-6394859697f0 -> ../../sdb2 |
Je vois donc que /dev/sdc1 (mon disque racine Logram) a comme UUID c5032e6f-2608-4aa2-b19a-4cf766aecc59. Il suffit maintenant de mettre cet UUID dans /etc/fstab :
/etc/fstab
1 2 3 4 5 6 | # Begin /etc/fstab # file system mount-point type options dump fsck-order /dev/disk/by-uuid/c5032e6f-2608-4aa2-b19a-4cf766aecc59 / ext4 defaults 1 1 # End /etc/fstab |
Allez, plus que deux étapes !
Il faut maintenant choisir la configuration de l'horloge. Pour cela, tapez "tzselect" et suivez les instructions. Un dossier vous sera donnés (dernière ligne renvoyée par tzselect), faites simplement ceci après :
1 | cp -v --remove-destination /usr/share/zoneinfo/$DOSSIER /etc/localtime
|
Et comme on a été un peu brutal lors de la mise en place du passwd, root se trouve avec un mot de passe cassé. Comme nous voulons absolument l'utiliser, il faut supprimer ce mot de passe, et le remettre une fois Logram lancé.
1 2 3 4 5 6 7 8 | passwd -d root # Et les derniers préparatifs mkdir -p /var/lib/hwclock mkdir -p /etc/udev/rules.d groupadd -g 18 messagebus && useradd -c "D-BUS Message Daemon User" -d /dev/null \\ -u 18 -g messagebus -s /bin/false messagebus |
Voilà, la fin approche. Il se peut que la suite ne marche pas très bien, mais le problème est généralement facile à corriger. Postez-le sur le forum pour qu'on en discute (pas une demande, c'est difficile de discuter avec une demande, elle sera créée une fois le problème cerné et en cours de résolution
).
Tout d'abord, quittez le chroot et démontez tout :
1 2 3 4 5 | exit
sudo umount /mnt/logram/dev
sudo umount /mnt/logram/proc
sudo umount /mnt/logram/sys
sudo umount /mnt/logram
|
Ensuite, nous allons utiliser Qemu (qemu), ou KVM (qemu-kvm) pour lancer Logram. Le disque dur à lui passer est le disque sur lequel vous avez installé GRUB. C'est celui de votre stick USB. Si vous avez installé Logram sur un disque et GRUB sur un autre, passez les deux disques à Qemu (-boot c -hda disque_grub -hdb disque_logram). Vous aurez de toute façon à modifier l'entrée de menu de GRUB
1 | sudo qemu-kvm -boot c -hda /dev/sdc |
Ne validez pas l'entrée, mais appuyez sur "e", pour l'éditer. Il y a des changements à faire :
Appuyez sur Ctrl+X, Logram démarre. Quand «runlevel "runlevel/default" up in, xxxx ms» s'affiche, appuyez sur Ctrl+Alt+2 (pas F2, le 2 du pavé numérique, ou Maj+2 si vous utilisez les touches du haut (Maj+é)). Vous arrivez dans la console de Qemu. Tapez «sendkey ctrl-alt-f2» pour passer au TTY2, Init-ng se réservant la TTY1 pour son usage. Appuyez maintenant sur Ctrl+Alt+1 (Ctrl+Alt+Maj+&
pour revenir à Logram. Vous pouvez vous logguer
!

Vous pouvez maintenant vous tapoter le dos en vous disant que vous avez réussi une belle chose
.
Amusez-vous un peu avec Logram dans Qemu, essayez de le démarrer en vrai (toujours en mettant hd0 dans GRUB si vous demandez à votre BIOS de faire croire que la clef USB est le disque primaire). Une fois que vous aurez tout exploré (ça va vite), vous allez pouvoir vous intéresser au maintient de Logram.
Pour mettre Logram à jour, il vous suffit de quitter Qemu, et de remonter la clef USB ou votre partition dans /mnt/logram
1 2 3 | # Taper ngc --halt && chvt 1 dans Logram
*** Qemu quitte
sudo mount /dev/sdc1 /mnt/logram
|
Ensuite, utilisez simplement Setup
1 2 | sudo setup -R /mnt/logram update sudo setup -R /mnt/logram upgrade |
Vos paquets sont à jour. Notez que comme Setup n'est pas encore en version stable, mettez toujours Setup à jour avant les paquets, donc faites un «git pull» suivi de l'installation comme décrite dans Tester Setup avant de faire «setup update» et «setup upgrade». Certains nouveau paquets pourraient nécessiter des fonctionnalités nouvelles de Setup pour fonctionner, dont de nouvelles versions de scriptapi. Pour que tout marche bien, après avoir mis à jour Setup, recopiez scriptapi au bon endroit :
1 | sudo cp /usr/libexec/scriptapi /mnt/logram/usr/libexec |
L'installation et la suppression est facilement réalisée, à nouveau avec /mnt/logram monté :
1 2 | sudo setup -R /mnt/logram add à_installer -à_supprimer
# exemple : setup add vim-doc gcc -gawk
|
C'est ici que ça devient intéressant. Pour faire cela, une manipulation dégeulasse doit être faite
. En effet, construire un paquet nécessite Setup, et compiler un paquet nécessite d'être dans le chroot pour ne pas lier le paquet avec des trucs pas dans Logram.
Oui, il vous faut Setup dans le chroot
. Comme il n'existe pas encore de paquet pour Qt et Setup, il faut ... les copier depuis votre distrib (vous comprenez ce qui est dégeulasse ?). Ça ne marche que si votre distrib est en i686.
1 2 3 4 5 6 7 | cd /mnt/logram
sudo cp /usr/bin/setup usr/bin
sudo cp /usr/lib/liblgrpkg.so* usr/lib
sudo cp /usr/lib/libQt* usr/lib
sudo cp /usr/lib/libgpgme* usr/lib
sudo cp /usr/lib/libarchive* usr/lib
sudo cp -r /usr/lib/qt usr/lib
|
Ensuite, chrootez et testez Setup. Il vous insultera peut-être en disant que des bibliothèques manquent, il faut alors les recopier.
1 | sudo chroot /mnt/logram /usr/bin/setup version |
Heureusement, Setup n'utilise pas QtGui ni QtSvg, donc pas besoin de Xorg, pfiou
. Une fois qu'il marche, vous pouvez entrer dans le chroot :
1 | sudo chroot /mnt/logram /bin/bash |
Récupérer un paquet, une fois un Setup correct installé et dans le chroot, n'est pas difficile :
1 2 | cd /root
setup getsource initng
|
Setup vous affiche de quoi le paquet a besoin. Installez-le, ainsi que les paquets suivants :
1 2 | setup add cmake setup add autoconf automake binutils cpp-4.4 g++-4.4 gcc-4.4 gettext libtool make pkg-config |
Vous avez dans votre dossier le paquet source que vous avez téléchargé. Il faut maintenant simplement le décompresser dans un dossier
1 2 | mkdir initng && cd initng xzcat ../initng~0.6.90~1.src.lpk | tar -x |
Si vous projetez de soumettre à Logram vos modifications, créez un répertoire de sauvegarde
1 2 3 | cd .. cp -r initng initng.orig cd initng |
Vous pouvez maintenant modifier, si vous le souhaitez, le metadata.xml. Vous pouvez également ne pas y toucher et simplement recompiler le paquet :
1 2 3 4 | # édition facultative de metadata.xml ou des fichiers dans control (s'il existe)
setup download metadata.xml
setup build metadata.xml
setup binaries metadata.xml
|
Vous n'avez pas besoin de tout ça. Un simple «setup binaries metadata.xml» télécharge, compile et empaquette le tout si rien n'a été fait avant.
Vous pouvez récupérer les scripts checkdeps et checkfiles depuis setup-tools. Ça s'utilise comme ceci :
1 2 3 4 5 6 7 | setup build metadata.xml checkdeps build # Affiche les dépendances sous forme de bibliothèques, # vous devez trouver les paquets qui vont avec setup binaries metadata.xml checkfiles *.lpk # Affiche les problèmes d'empaquetage trouvés (un fichier # dans plusieurs ou aucun paquets, /usr/share/info/dir pas # supprimé, etc. |
Vous pouvez essayer d'installer votre paquet :
1 | setup add initng~0.6.90~1.i686.tlz |
Une fois fini, vous pouvez créer un patch à envoyer à Logram :
1 2 3 4 | rm -rf build src # pas besoin de ça rm *.lpk # pas besoin de ça non-plus, on veut juste metadata.xml et control cd .. diff -ur initng.orig initng > initng-my-very-good-patch.patch |
Créez une demande de code (pas demande, mais proposition), et postez votre patch. Ce sera un plaisir de mettre à jour les paquets officiels avec ce patch
.
Voilà, vous savez installer et utiliser Logram. Ce n'était pas si difficile à installer, non ?