Du libre, du code, des idées, du mélange d’ArraKISS…

De l’épice pour la pensée

Oyez oyez,
vous qui profitez des qualités du logiciel libre avez l'opportunité d'apprendre à y contribuer en apprenant à fabriquer votre propre distribution linux sur la base debian.
En effet, une formation aura lieu du vendredi 19 mai à 20h, et se poursuivra tout le week-end jusqu'au dimanche 21 mai.

Mais c'est trop compliqué, ça sera sans moi !

Que nenni, tout ce dont vous aurez besoin pour suivre cette formation, c'est :

  • savoir lire
  • mettre un slip propre
  • ne pas mettre de majuscule au pseudo de Monsieur le professeur : arpinux. Merci monsieur !

Plus d'information par ici : https://lescahiersdudebutant.fr/news/article11/session-de-formation-live-build-pour-construire-son-live-debian

enjoy ;)

Suite au billet précédent, j'ai quand même cherché à compiler compiz sur debian jessie. Et si, c'est possible, bien que la tâche ne soit pas aisée.

Déjà, voici les dépendances à installer. Il y en a un paquet, et je crains d'en avoir oublié :

libnotify-dev libglibmm-2.4-dev build-essential libxcomposite-dev libpng12-dev libsm-dev libxrandr-dev libxdamage-dev libxinerama-dev libstartup-notification0-dev libgconf2-dev libgl1-mesa-dev libglu1-mesa-dev libmetacity-dev librsvg2-dev libdbus-1-dev libdbus-glib-1-dev libgnome-desktop-dev  curl autoconf automake  libtool intltool libxslt1-dev xsltproc libwnck-dev python-dev python-pyrex libboost-dev libboost-serialization-dev cmake checkinstall lcov libwnck-3-dev


Déjà, il faut récupérer l'archive sur... le launchpad d'ubuntu (ça en dit long). Avec la toute dernière archive, la compilation ne passe pas. Je suis donc parti de la compiz-0.9.12.1.tar.bz2.

Une fois décompressée, on se déplace dedans puis on crée un dossier "build" dans lequel on se déplace pour entamer la compilation :

mkdir build
cd build
export COMPIZ_DEB_BUILD=1
cmake .. -DCMAKE_CXX_FLAGS="`pkg-config --cflags glibmm-2.4`"
make

Pour finir, on crée un paquet qui sera installé avec checkinstall :
sudo checkinstall

Et voilà. Vous pouvez lancer le gestionnaire d'options de compiz avec
ccsm
ou bien lancer compiz avec
compiz --replace ccp

Vous vous souvenez de compiz et ses effets délirants? Son cube, ses fenêtres qui ressemblent à de la gelée. Y a pas à dire, c'était marrant. Le projet ne semble cependant plus maintenu. Heureusement, avec un peu d'astuce, on peut le faire tourner sur une debian jessie. Et tant qu'à faire, on va essayer de faire les choses correctement.
Je dis ça parce que, lors de mes recherches sur le net pour installer compiz, j'ai vu du grand n'importe quoi. Alors on va mettre les choses au clair tout de suite : NON, les paquets ubuntu ne sont pas faits pour debian. Il n'y a rien de tel pour mettre en l'air son système.
Alors certes, ça va peut-être fonctionner pendant un temps, jusqu'à la prochaine mise à jour de sécurité où là, crak!

Bref, voilà le principe d'installation de compiz sous debian jessie.
La compilation des sources étant difficile à réaliser, et peu documentée, on va utiliser les derniers paquets debian en date. Compiz était encore disponible sous debian squeeze, qui est à ce jour la old-old-stable. Autant vous dire que ça va être la galère pour espérer une compatibilité des bibliothèques.
Qu'à cela ne tienne, on va utiliser les paquets de squeeze quand même. Mais pour ne rien casser, on va les mettre dans un chroot. Regardons ça ensemble, ça sera plus clair :

1. On commence par récupérer le système de debian squeeze minimum. Cela se fait avec debootstrap (paquet du même nom). Le chroot sera dans un dossier debception :
mkdir debception
sudo debootstrap --arch i386 squeeze debception http://httpredir.debian.org/debian/
On laisse tourner, ça va installer les fichiers de debian squeeze dans le dossier debception.

2. On va reporter les utilisateurs du système existant dans le chroot :
sudo grep "^[^:]*:x:[0-9][0-9][0-9][0-9]:" /etc/passwd | sudo tee -a debception/etc/passwd
sudo grep "^[^:]*:x:[0-9][0-9][0-9][0-9]:" /etc/group | sudo tee -a debception/etc/group

3. On relie les dossiers du chroot au système actuel :
sudo mount -t proc none debception/proc
sudo mount -o bind /dev debception/dev
sudo mount -o bind /var/run debception/var/run
sudo mount -o bind /home debception/home

4. On va maintenant se servir du paquet schroot, qui va nous permettre de lancer des commandes dans le chroot squeeze facilement. Une fois ce paquet installé, mettez ceci dans le fichier /etc/Schroot/schroot.conf
[debception]
directory=/chemin/vers/le/dossier/debception
users=vous

5. On peut désormais installer compiz dans le nouveau système après avoir installé les langues :
sudo schroot -c debception --directory / apt-get update
sudo schroot -c debception --directory / -- apt-get -y upgrade
sudo schroot -c debception --directory / -- apt-get -y dist-upgrade
sudo schroot -c debception --directory / -- apt-get -y install locales
sudo schroot -c debception --directory / -- dpkg-reconfigure locales
sudo schroot -c debception --directory / -- apt-get -y install compizconfig-settings-manager fusion-icon compiz-fusion-plugins-extra compiz-fusion-plugins-main xserver-xorg-video-all libgl1-mesa-dri pciutils

Voilà, compiz est installé

6. (facultatif) : je met à jour avec les backports, car mon matériel n'a pas l'accélération 3D sinon :
echo "deb http://http.debian.net/debian-backports squeeze-backports main" | sudo tee -a debception/etc/apt/sources.list
sudo schroot -c debception --directory / apt-get update
sudo schroot -c debception-$(whoami) --directory / -- apt-get -t squeeze-backports -y upgrade
sudo schroot -c debception-$(whoami) --directory / -- apt-get -t squeeze-backports -y dist-upgrade

7. Lancement de compiz :
On peut maintenant lancer compiz tranquillement, à partir de sa debian jessie en allant le chercher dans le chroot squeeze :
schroot -c debception -p -- compiz --replace ccp
Ou alors :
schroot -c debception -p -- fusion-icon
Et voilà! Génial hein?
Alors par contre, il faut que les dossiers soient montés avant, donc que vous ayez exécuté ceci :
sudo mount -t proc none debception/proc
sudo mount -o bind /dev debception/dev
sudo mount -o bind /var/run debception/var/run
sudo mount -o bind /home debception/home
Pour ne pas avoir à le faire à chaque fois, vous pouvez le rajouter dans le fichier /etc/fstab :
/home          /chemin/vers/debception/home       none    bind            0       0
/tmp           /chemin/vers/debception/tmp        none    bind            0       0
proc            /chemin/vers/debception/proc       proc    defaults        0       0
/var/run        /chemin/vers/debception/var/run    none    bind            0       0
/dev            /chemin/vers/debception/dev        none    bind            0       0

Vous êtes ainsi certains de ne pas avoir cassé votre système debian jessie.

Amusez-vous bien!

La plupart des utilisateurs de debian français utilisent les dépôts ftp.fr.debian.org. Il existe pourtant tout un tas de miroirs, certainement plus proches de chez vous et donc plus rapides. Ça a aussi pour avantage de décharger les serveurs principaux. Vous pourriez tester chaque miroir dans cette liste, mais c'est très fastidieux.
Heureusement, on peut utiliser un outil automatique, qui ira tout seul prendre le miroir le plus proche de chez vous : httpredir.debian.org .

Les avantages notables d'utiliser ce service sont par exemple :

  • Pas de miroir hors-ligne dans vos sources
  • Pas de miroir obsolète
  • Meilleure répartition de la charge
  • Téléchargements plus rapides à partir de plusieurs dépots
  • ... (voir le site officiel :) )

Pour l'utiliser, on va juste changer les sources de paquets dans le /etc/apt/sources.list pour pouvoir l'utiliser.
Concrètement, il faut remplacer tous les

http://ftp.fr.debian.org

par

http://httpredir.debian.org

Les dépôts security ne sont pas à remplacer.

Et voilà! Vous avez des dépôts super-rapides rien que pour vous, et vous limitez la charge sur le serveur principal.
Et plus jamais vous n'aurez un lien mort dans vos sources.list, alors j'en laisse un ici :