Die bezaubernde Geany

Heute beschließe ich, Geany zu installieren, weil ich jetzt öfters mit PHP arbeiten muss. Geany kann mich mit Syntax-Ãœberprüfungen und Autovervollständigung von Funktionsaufrufen unterstützen. Praktisch, sowas. Auf meinem Rechner läuft Debian Etch. Zuerst versuche ich es da natürlich mit apt-get, was aber leider nicht klappt: „E: Konnte Paket … nicht finden“

Ich lade mir also Geany bei Sourceforge als tar.gz runter, lese die „INSTALL“-Datei, und starte mit ./configure. Erste Hürde: das Modul XML::Parser fehlt. Ich gebe die Frage „How do I install a perl module?“ bei Google ein, und erhalte prompt ein brauchbares Beispiel:

# perl -MCPAN -e shell
 cpan> install MIME::Lite

Prima. Perl/cpan schlägt mir jedoch beim Start noch vor, Bundle::CPAN zu installieren, und will irgendwelche Einstellungen haben. Es bietet mir aber auch eine Autokonfiguration an. Ich wähle selbige, und installiere danach das vorgeschlagene Bundle.

Bei der Frage „What is your local internet domain name :“ stutze ich: will der jetzt meinen FQDN inklusive oder exklusive meinem PC-Namen? Mit Google finde ich ein paar Seiten mit passenden Beispiel-Konfigurationen. Der nackte Domainname ohne den Rechnernamen ist hier offenbar gemeint.

Mit dem Cpan-Bundle werden mir einige Standardmodule installiert, und einige Warnungen und Fehlermeldungen rauschen im Affenzahn an mir vorbei. Ich bin irritiert, gebe aber dennoch den Install-Befehl für Xml::Parser ein. Fehlermeldung, und jede Menge Errors. Ich grüble kurz, und gebe dann aus einer Eingebung heraus „make all“ ein. Das Ergebnis ermutigt mich ungerechtfertigterweise:

cpan> make all
 Running make for module all
 Running make for J/JD/JDUNCAN/all-0.5.tar.gz
 Fetching with LWP:
 ftp://ftp.perl.org/pub/CPAN/authors/id/J/JD/JDUNCAN/all-0.5.tar.gz
 Fetching with LWP:
 ftp://ftp.perl.org/pub/CPAN/authors/id/J/JD/JDUNCAN/CHECKSUMS
 Checksum for /root/.cpan/sources/authors/id/J/JD/JDUNCAN/all-0.5.tar.gz ok
 all-0.5
 all-0.5/(...)
 ...
 Package seems to come without Makefile.PL.
 (The test -f "/root/.cpan/build/all-0.5/Makefile.PL" returned false.)
 Writing one on our own (setting NAME to all)

CPAN.pm: Going to build J/JD/JDUNCAN/all-0.5.tar.gz
 Checking if your kit is complete...
 Looks good
 Writing Makefile for all
 cp lib/all.pm blib/lib/all.pm
 Manifying blib/man3/all.3pm
 /usr/bin/make  -- OK

Ich beende cpan, starte es erneut, und werde gefragt, ob ich will, dass config-Variablen automatisch auf Disk gespeichert werden. Ich will. Darauf folgen Fragen auf diverse Build-Parameter. Ich antworte auf fast alles mit leerer Eingabe. Nur bei <mbuild_install_arg> nehme ich das vorgeschlagene –uninst 1 (uninstall conflicting files).

Erneut versuche ich, XML::Parser zu installieren. Haufenweise Error-Meldungen … ich vergrößere den Scrollback-Buffer des Terminal-Fensters, und versuche es wieder. Antwort: Has already been unwrapped … Could not make: Unknown error … Hm. Handtäschchen zu, Handtäschchen wieder auf, nochmal „install XML::Parser“, hochscrollen, aha, da:

Expat.xs:12:19: error: expat.h: Datei oder Verzeichnis nicht gefunden

„make all“ war also, trotz des „guten Aussehens“, nicht die Lösung. Handtäschchen zu, „apt-get install expat“, wasimmerdasist. Hmpft. Treib ich hier Alchemie, oder was? „Wähle vormals abgewähltes Paket expat.“ bringt mich jetzt doch ins Grübeln. Was zum Henker hab ich da wieder installiert, war das überhaupt richtig? Google fragen: „XML-analysierende C-Bibliothek“. Na, das scheint immerhin sinnvoll zu sein. Und warum war die abgewählt? Ich hoffe mal, es wird OK gewesen sein, die wieder installiert zu haben.

Handtäschchen wieder auf, „install XML::Parser“. Ich bekomme die selben Fehler präsentiert. Na toll. Ich durchforste die Platte mit find, und die „expat.h“ fehlt tatsächlich. Auf der Debian-Seite zu expat sind noch drei Bibliotheken erwähnt, darunter libexpat1-dev. „Dieses Paket enthält die Header-Dateien …“ – klingt vielversprechend. Ich installiere es, und find findet nun auch „/usr/include/expat.h“. Handtäschchen wieder auf, „install XML::Parser“. Das klappt nun endlich.

Erneuter „configure“-Versuch mit Geany. Nach diversen „checking for blablabla… yes“ endet dieser mit:

checking for GTK... configure: error: The pkg-config script could not be found or is
too old.  Make sure it is in your PATH or set the PKG_CONFIG environment variable to
the full path to pkg-config.

Alternatively, you may set the environment variables GTK_CFLAGS and GTK_LIBS to avoid
the need to call pkg-config.

See the pkg-config man page for more details.

To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See `config.log' for more details.

Was zum Geier nun ist GTK? Ich schaue bei Debian nach, und stolpere über eine Sicherheitsankündigung … ah, ein Grafikpaket. Dann finde ich auf http://packages.debian.org/source/etch/gtk+2.0 eine ellenlange Liste von binären Paketen. Welche(s) davon ich wohl brauchen werde? Und weshalb stand davon nichts in der INSTALL-Datei? Weil das im README steht, du Trottel! Ich finde also:

Requirements
 ------------
For compiling Geany yourself, you will need the GTK (>= 2.6.0) libraries and header files.
You will also need its dependency libraries and header files, such as Pango, Glib and ATK.
All these files are available at http://www.gtk.org.

Furthermore you need, of course, a C compiler and the Make tool; a C++ compiler is also
needed for the required Scintilla library included. The GNU versions of these tools are
recommended.

Pango … kann man das essen? Ich bin eher verwirrter als aufgeklärter. Vor allem will ich Debian-geprüfte Pakete viel lieber installieren, als Quellen von gtk.org von Hand einzupflegen. Hab ja so schon genug Ärger mit einer nicht vernünftig funktionierenden Installation.

Ich probiere es mit „apt-get install libgtk2.0-dev“. Eine ermutigend lange Liste rauscht vorbei, und zwischendrin erspähe ich auch etwas mit „pango“. Sehr fein. Auf ein Neues: ./configure

„Configuration is done OK.“

Yeah! Auch „make“ läuft danach ohne Widerrede durch. „make install“ hingegen zickt:

 ../depcomp: line 566: exec: g++: not found

Google mal wieder. www.qmailrocks.org/faq/?category=other schlägt „apt-get install gcc-c++“ vor, und ich versuche das, ernte jedoch nur: „E: Konnte Paket gcc-c nicht finden“. Huch? Ich probiere statt dessen „apt-get install ‚g++‘“. Das klappt. Erneutes „make install“. Das dauert nun ein wenig länger, und endet schon wieder mit Fehlermeldungen:

Making install in po
make[1]: Entering directory `/home/nietsch/Desktop/Downloads/Geany/geany-0.12/po'
file=`echo be | sed 's,.*/,,'`.gmo \
          && rm -f $file &&  -o $file be.po
/bin/sh: line 1: -o: command not found
make[1]: *** [be.gmo] Fehler 127
make[1]: Leaving directory `/home/nietsch/Desktop/Downloads/Geany/geany-0.12/po'make:
    *** [install-recursive] Fehler 1

In der vagen Hoffnung, dass nur die Aufräumprozedur der Installationsroutine in die Binsen gegangen ist, starte ich Geany von der Kommandozeile, und siehe, das Programm öffnet sich. Fein. Die Installation hat auch „nur“ 2 Stunden gedauert. Ich kopiere noch eben die zwei Dateien (ein ico, ein png) aus pixmaps nach /usr/share/pixmaps, und trage Geany mittels Alacarte ins Menü ein. Dann werfe ich das Installationsverzeichnis weg und schubse die tar-gz-Datei in ein Archivverzeichnis. Ich will im Zweifel nachvollziehen können, was ich mir aus nicht-Debian-Quellen auf die Platte gezogen hab.

So, fertig … oder?

Dass ich die GTK-Libraries benötige, hätte ich der Doku entnehmen können (und sollen). Beim C++-Compiler war ich fälschlicherweise davon ausgegangen, er sei vorhanden. Aber bei expat und dem XML::Parser-Modul für Perl hätte ich auch dann gerätselt, wenn ich die Dokumentation gründlicher studiert hätte. Ich forsche also nochmals nach, ob sich irgendwo Hinweise auf diese Teile befunden haben, die ich übersehen habe …

… und dann finde ich auf der Geany-Homepage den Hinweis auf „apt-get install geany“ – Hmpft! ich war sicher, ich hatte das als erstes versucht! Oder hatte ich „Geany“ groß geschrieben? Ich geb’s ein, wie es da steht … klappt.

Verdammt und zugenäht!

3 Gedanken zu „Die bezaubernde Geany

  1. Mit „apt-cache search xy“ kannst du übrigens nach einem bestimmten Paket suchen. Im konkreten Fall hätte „apt-cache search Geany“ dir einiges an Aufwand erspart.

  2. Ah, das geht also auch noch – danke. In der Fülle von Optionen die Orientierung zu behalten ist gar nicht so einfach. Inzwischen hab ich auch die GUI für die Paketverwaltung entdeckt. Da kann man wunderbar sowohl nach Namen als auch nach Beschreibungen suchen. Sehr angenehm und ausgesprochen nervenschonend. 😉

  3. Hi,

    schade, dass Du so einen mühsamen Weg zu Geany hattest. Aber ich werde wohl noch einen Hinweis zwecks intltool(das benötigt die Perl-Module) in die Doku einbauen.

    Gruß
    Enrico (einer der Geany-Entwickler)

Kommentare sind geschlossen.