Howto Compiz und Compiz Fusion aus dem Git-Repository
Eine Bitte. Lest zunächst das ganze erst einmal vollständig durch bevor ihr anfangt
Vorbemerkung:
Dieses howto ist, wie viele andere auch zu diesem Thema, für fortgeschrittene Benutzer gedacht, die zumindest Programme aus dem Quellcode kompilieren können und wissen was Git eigentlich ist und wie es aufgebaut ist. Letzteres ist notwendig um neue Plugins in das Skript einzubinden und diese zu installieren. Ferner sollte man wissen, wie man Pakete installiert und vollständig deinstalliert, da nicht alle „trivialen“ Sachen hier explizit aufgeführt sind.
Außerdem existieren im Web zahlreiche Howto‘s zu diesem Thema und ebenso viele Skripte, die die Installation weitestgehend automatisieren.
Allerdings war dieses Skript das einzige, was für mich (Kubuntu-standalone und Ubuntu/Kubuntu-zusammen) am besten funktionierte.
Das hier verwendete Skript „makefusion“ ist relativ einfach gehalten und funktioniert bei mir tadellos und ist anpassbar. Der hauptsächliche Dank für dieses Skript gebührt in erster Linie Kristian Lyngstøl (Erstautor), Franz Rogar und Telemako. Siehe für weitere Informationen die Headlines in dem Skript.
Ich habe lediglich die Ausgabe des Skriptes ins deutsche übersetzt und einige symbolische Links für die Installation unter K(U)buntu angepasst. Das Skript ist hier http://ubuntuusers.de/paste/30553/ im no-paste-service zu finden, da ich keinen Webspace besitze und die „Free-Hoster“ ablehne (e-mail Adresse angeben etc.). Einfach den Text kopieren und als makefusion abspeichern.
!!Achtung!!
Compiz und Compiz Fusion aus dem Git-Repository benötigen einen Xserver, der die xcb-lib‘s bereitstellt. Dies wird meines Wissens für Hardy Herdon standardmäßig der Fall sein, für Gutsy Gibbon (7.10) ist dies jedoch nicht der Fall.
Um diese Probleme zu umgehen existieren zwei Möglichkeiten:
1.Einen Patch verwenden, der die Compiz-Git-Version von der „Notwendigkeit“ befreit (Empfohlen)
2.Die xcb-libraries kompilieren und installieren (hab ich gemacht)
Die zweite Version erfordert das manuelle herunterladen des Quellcodes der libX11 Bibliothek und das Einspielen eines Patches, der die xcb Funktionalität bereitstellt.
!!Achtung!! Mit der Kompilierung und Installation der xcb-libs können Probleme bei Java-Anwendungen auftreten, die mit dem später beschriebenen Workaround zumindest für JabRef, KeyJNote und TVBrowser (die einzigen Java Programme die ich benutze) behoben werden können
Die erste Methode („Compiz patchen“) funktioniert genauso gut. Diese hat jedoch den Nachteil, dass wenn man Compiz aktualisiert, der Patch erneut eingespielt werden muss. Sollte sich bei einem solchen Update die Code-Basis stark verändert haben, muss eventuell ein neuer Patch gesucht und eingespielt werden.
Außerdem sei nochmal betont, dass es sich bei der hier beschriebenen Installationsmethode um ein bzw. mehrere Programme handelt, die ständig (teilweise täglich) Neuerungen erfahren und diese nicht immer funktionieren. Um einen Anhaltspunkt zu bekommen, wie der derzeitige Status des Git-Repository ist, kann man unter http://status.compiz-fusion.org/ nachschauen.
Noch ein Hinweis:
Die Compiz Version, die installiert wird trägt die Nr. 0.5.5. Dies ist normal und keine veraltete Version. Aus diesem Zweig, wird das spätere Compiz 0.7 hervorgehen, während die Git-Version wahrscheinlich die 0.5.5 beibehalten wird.
Die Git-Version ist nicht kompatibel zum 0.6 (stable) Zweig und vice verse. Dementsprechend können hier auch nur die Compiz-Fusion-Plugins installiert werden, die aus dem selben Zweig (sprich Git) stammen. Ein Mischen ist nicht möglich.
Aus diesem Grund muss zunächst auch Compiz und Compiz-Fusion sowie Emerald vollständig deinstalliert werden.
Vorarbeit:
Zunächst müssen alle Pakete die Compiz, Compiz-Fusion und Emerald betreffen vollständig deinstalliert werden.
Anschließend wird die libX11 mit xcb support installiert. Dieser Schritt kann übersprungen werden, wenn die oben erwähnte Methode Nr.1 (Compiz patchen) verwendet werden soll.
1. Schritt
Zunächst installieren wir die notwendigen Abhängigkeiten
sudo apt-get build-dep libx11-6
und
sudo apt-get install git-core automake build-essential intltool libtool python python-pyrex python-gtk2 python2.5-dev
Anschließend holen wir uns den Quellcode und einen Patch
wget http://ftp.debian.org/debian/pool/main/libx/libx11/libx11_1.1.3.orig.tar.gz
wget http://ftp.debian.org/debian/pool/main/libx/libx11/libx11_1.1.3-1.diff.gz
Nun packen wir den Quellcode aus
tar xvf libx11_1.1.3.orig.tar.gz
und wechseln in das Verzeichnis um den patch einzuspielen
gunzip -c ../libx11_1.1.3-1.diff.gz | patch -p1
Jetzt machen muss die gepatchte debian/rules ausführbar gemacht werden um wieder ein debian Paket zu erzeugen
chmod +x debian/rules
Paket bauen
sudo debian/rules binary
Paket installieren
cd.. sudo dpkg -i libx11*deb
Aufräumen
sudo rm libx11*deb rm libx11_1.1.3.orig.tar.gz rm libx11_1.1.3-1.diff.gz sudo rm -rf libX11-1.1.3
2. Schritt (für alle)
Als erstes ein Arbeitsverzeichnis erstellen (im Home-Verzeichnis). Dieses sollte erhalten werden können, wegen späterer Updates. Ich beziehe mich im weiteren auf folgend erstelltes Beispielverzeichnis
mkdir /home/“username“/Downloads/Compiz
Zunächst das Skript makefusion holen (Download Link) und in dem zuvor erstellten Ordner abspeichern. Anschließend das Skript mit einem Texteditor der Wahl öffnen und mal durchblättern.
!! Achtung !! Die Installation von Compiz erfordert das Vorhandensein von moc. Dieses Programm befindet sich, wie es sich gehört, unter /usr/bin.
Das Makefile von Compiz sucht jedoch standardmäßig unter /bin. Nun kann man das Makefile anpassen, was meines Erachtens nicht so gut ist (z. B. wg. Updates von Compiz).
Also legen wir einen symbolischen Link von /usr/bin/moc nach /bin/moc
sudo ln -s /usr/bin/moc /bin/moc
Nun wechseln wir in das Verzeichnis in dem das Skript gespeichert ist und machen es ausführbar
cd /home/“username“/Downloads/Compiz chmod +x makefusion
Anschließend müssen wir das Skript bearbeiten. In Zeile 76 findet sich ein Eintrag „COMPIZREMOVE=… Hier trägt man ein, welche Desktopumgebung nicht verwendet werden soll. Also z. B. „gnome“ wenn KDE die einzige Desktopumgebung ist, die installiert ist. Ich habe das Skript so angepasst, dass wenn KDE und Gnome installiert ist „both“ eingetragen werden kann. Alternativ kann auch alles zwischen den „Anführungszeichen„ gelöscht werden (hat den selben Effekt).
Ebenso muss in Zeile 88 hinter DISTRO= die Distribution eingetragen werden (ubuntu oder kubuntu). Dadurch werden später die notwendigen Abhängigkeiten installiert. Sollte man beide Desktopumgebungen installiert haben, empfiehlt es sich den nächsten Schritt zweimal auszuführen (hab ich gemacht)
Einmal mit dem Eintrag
DISTRO=“ubuntu“
und einmal mit dem Eintrag
DISTRO=“kubuntu"
3.Schritt
Notwendigen Abhängigkeiten installieren
Zunächst in der Konsole in das Verzeichnis wechseln, so man sich nicht mehr darin befindet
cd /home/“username“/Downloads/Compiz
Abhängigkeiten installieren
./makefusion packages
Wenn alles fehlerfrei installiert wurde, holen wir den Quellcode für Compiz und die Compiz-Fusion-Plugins aus dem Git-Repository
!!Achtung!! Das Skript ist so eingestellt, dass fast alle derzeit vorhandenen Plugins herunter geladen werden. Dabei ist zu beachten, dass zum derzeitigen Zeitpunkt (Erstelldatum) zwar der Code für die Plugins super-menu fisheye und mag heruntergeladen werden, aber die Installation dieser fehlschlagen wird. Will man diese nicht herunterladen, müssen diese bevor das Git-Repository heruntergeladen wird aus der Zeile 66 FUSIONPLUGINS= .... gelöscht werden. Allerdings beeinflussen diese normalerweise nicht (zumindest bei mir) die Installation von Compiz und der anderen Compiz-Fusion-Plugins.
4.Schritt
Quellcode holen
./makefusion clone
Dies dauert eine Weile. Wenn alles heruntergeladen wurde geht es weiter.
!!Achtung!! Wurde der xcb-Support der xlibs nicht installiert muss nun Compiz (5.Schritt) gepatcht werden. Andernfalls ist dieser Schritt nicht notwendig.
5.Schritt
Compiz patch von http://gitweb.beryl-project.org/?p=users/3v1n0/compiz-patches;a=snapshot;h=HEAD herunterladen. Am besten speichert man die Datei im Home-Verzeichnis und entpackt sie dort. Dabei ensteht ein Ordner mit Namen „compiz-patches“ aus dem man die Datei „compiz-disable-libx11-xcb-support.patch“ in das Compiz/compiz Verzeichnis kopiert
cp /home/“username“/compiz-patches/compiz-disable-libx11-xcb-support.patch /home/“username“/Downloads/Compiz/compiz
Anschließend wir der Patch angewendet
cd /home/“username“/Downloads/Compiz/compiz patch < compiz-disable-libx11-xcb-support.patch
Dabei werden zwei Fragen gestellt, welche auf die zu patchenden Dateien abzielen. Nacheinander bitte folgendes eingeben
include/compiz-core.h
und
src/display.c
!! Dies ist immer wieder notwendig, wenn Compiz (nicht die Plugins, dazu später mehr) ein Update erfährt. Allerdings nur dann, wenn man nicht die xlib mit aktiviertem xcb installiert hat.
6.Schritt (wieder für alle)
Compiz und Fusion-Plugins installieren
./makefusion install
Die Installation sollte fehlerfrei durchlaufen. Anschließend sollte noch
sudo ldconfig
ausgeführt werden um alle eventuell fehlenden „links“ dem System bekannt zu machen.
7.Schritt (optional)
Java Programme anpassen. Dies gilt nur, wenn man die xlibs mit xcb aus Schritt 1 kompiliert und installiert hat. Diejenigen, die den Compiz Patch angewendet haben brauchen diesen Schritt nicht auszuführen.
Zunächst müssen wir die Datei „libmawt.so“ finden
cd locate libmawt.so
liefert in etwa folgende Ausgabe
usr/lib/jvm/java-7-icedtea/jre/lib/amd64/headless/libmawt.so /usr/lib/jvm/java-7-icedtea/jre/lib/amd64/xawt/libmawt.so /usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/amd64/headless/libmawt.so /usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/amd64/motif21/libmawt.so /usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/amd64/xawt/libmawt.so
Dabei sind nur die Pfade mit …/..../xawt/libmawt.so interessant. Diese notieren und für jeden Pfad
sed -i 's/XINERAMA/FAKEEXTN/g' > /usr/lib/jvm/java-6-sun-1.6.0.03/jre/lib/amd64/xawt/libmawt.so
ausführen.
!!! Pfade anpassen. Dies hat bei mir funktioniert. Ich übernehme aber keine Garantie, dass dies für alle Java-Programme funktioniert.
Fertig. Nun kann Compiz gestartet werden. Dazu hat man zwei Möglichkeiten
1.fusion-icon ausführen
2.compiz-manager ausführen
Das ausführen von compiz –replace funktioniert nun nicht mehr. Sollte man gezwungen sein, das Startskript anzupassen, z. B. wenn man den fglrx Treiber nutzt und deshalb fglrx in die Whitelist aufgenommen werden muss, kann dies entweder in
/etc/xdg/compiz/compiz-manager
oder direkt in
/usr/bin/compiz-manager
erfolgen, wobei die erste Datei die bessere Wahl ist.
Emerald kann dann über das fusion-icon (Taskleiste) gestartet werden. Ebenso ist hierüber der Compiz-Einstellungs-Manager zu starten
Grundsätzliches:
Das Skript installiert Compiz und die Compiz-Fusion-Plugins main und extra nach /usr/local/bin bzw. /usr/local/lib.
Die Plugins, die nicht in main oder extra sind, wie z. B. freewins nach /home/“username“/.compiz/plugins.
Um Compiz und Compiz-Fusion wieder zu entfernen einfach
./makefusion uninstall
ausführen.
Wenn man nun ein Update durchführen möchte so wechselt man in das erstellte Compiz Verzeichnis (deshalb nicht löschen) und führt
./makefusion clone ./makefusion install
erneut aus. Aber daran denken, das eventuell der Compiz Patch vor „./makefusion install“ erneut angewendet werden muss.
Will man neue Plugins installieren, so muss das Skript angepasst werden (Dies beschreibe ich hier aber nicht mehr). Soll z. B. nur ein Plugin aktualisiert werden, so kann man z. B. zunächst das Repository clonen (./makefusion clone) und dann gezielt in das zu aktualisierende Plugin-Verzeichnis wechseln (z. B. freewins) und folgendes ausführen
cd /home/"username"/Downloads/Compiz/freewins make make install
Sollte die Installation bzw. die Ausführung von make Fehler melden bitte erst nachschauen ob eventuelle Abhängigkeiten (Fehlermeldung beachten) fehlen, weil diese im Skript „vergessen“ wurden.
Nun
Viel Spaß, aber: BENUTZUNG AUF EIGENE GEFAHR
Frank
). Und da es hier im Forum keine Komplettlösung gibt/gab -> Hinein damit, es funktioniert ja
Update
2004 – 2012 ubuntuusers.de • Einige Rechte vorbehalten