Rendez-vous sur Arrakis

C'est lorsque nous croyons savoir quelque chose qu'il faut justement réfléchir un peu plus profondément. F. Herbert

Utiliser compiz sur debian jessie

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!

le 30/11/2015 à 17:25:25, Sabcat a dit :

Ouais alors, si on veut faire ça correctement, on se fait un paquet propre. Pas un chroot.

le 30/11/2015 à 18:03:23, Thuban a dit :

@Sabcat : Je dis pas non, mais pour construire un paquet pour jessie, c'est loin d'être gagné.
Si tu as la méthode, n'hésite pas à l'indiquer ici.

le 30/11/2015 à 21:16:18, Ned a dit :

<troll>ou alors on s'installe une fedora dont un des spin est "mate+compiz", et qui fonctionne "out of the box"</troll>
;o)

le 15/01/2016 à 20:16:49, webmaster a dit :

#!/bin/bash
# Pour wheezy!
# A adapter pour jessie, prendre de preference un paquet stable.
# Les derniers developpement peuvent ne pas compiler.
PATH_INSTALL=/usr
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root." 1>&2D
exit 1
fi
echo "Pour les paquets libgnome-window-setting1 et le paquet dev correspondant a joutez:"
echo "echo deb http://ftp.de.debian.org/debian squeeze main >> /etc/apt/sources. list"
dependance=( bzr
git-core
cmake
libcairo2-dev
librsvg2-dev
libglib2.0-dev
libpng12-dev
libdbus-1-dev
libboost-dev
libboost-serialization-dev
libxml2-dev
libgl1-mesa-dev
libglu1-mesa-dev
libwnck-dev
libgconf2-dev
libx11-xcb-dev
libxslt1-dev
libnotify-dev
# libmetacity-dev
python-gtk2-dev
libgnome-desktop-dev
gnome-control-center-dev
intltool
cython
python2.7-dev
libglibmm-2.4-dev
libprotobuf-dev
python-pyrex
lcov
xsltproc
#libprotobuf
libprotobuf-dev
protobuf-compiler
libjpeg-dev
checkinstall
# libgnome-window-settings1
# libgnome-window-settings-dev
libwnck-3-dev

)
echo "Le fichier /etc/apt/sources.list renseigné.(yes/no)"
read compil
if [[ ${compil} = "yes" ]];then
apt-get install ${dependance[@]}
wget https://bootstrap.pypa.io/get-pip.py
python ./get-pip.py
pip install gcovr
cd ${PATH_INSTALL}/src
exit 0
bzr branch lp:compiz
mkdir compiz/build
cd compiz/build
cmake .. -DCMAKE_INSTALL_PREFIX=${PATH_INSTALL}
echo "faire la compilation?(yes/no)"
read compil
if [[ ${compil} = "yes" ]]
then
make -j 2
fi
echo "installer?(yes/no)"
read installer
if [[ ${installer} = "yes" ]]
then
make install
checkinstall
make findcompiz_install
make findcompizconfig_install
ln -s ${PATH_INSTALL}/lib/python2.7/site-packages/compizconfig.s o ${PATH_INSTALL}/lib/python2.7/dist-packages/
ln -s /usr/lib/python2.7/site-packages/ccm /usr/lib/python2.7/di st-packages/
fi
fi
echo "fin..."

le 14/03/2016 à 01:24:59, JT a dit :

Je ré-ouvre le toptic,
compiz reloaded 0.8.12 est maintenant disponible pour "jessie" et "stretch" via ce projet

http://compiz-debian.tuxfamily.org/

ça sera plus simple pour tout le monde ^^

le 14/03/2016 à 17:34:23, Thuban a dit :

@JT : Bon à savoir :)
Merci pour l'info!

le 08/12/2016 à 07:02:40, Ben a dit :

Bien cette technique,je me demande si on peut faire des trucs plus avancé comme utiliser un WM avec un chroot