Wie kann ich GTK2 auf einem Linux-Computer ohne Administratorrechte kompilieren?

760
Zvika

Ich arbeite an einer "SUSE Linux Enterprise Server 10 (x86_64)" -Maschine, die über die GVim-Version 6.4.6 verfügt, die recht alt ist und von einigen Plugins nicht unterstützt wird.

Dies ist eine Unternehmensmaschine, und niemand wird administrative Änderungen vornehmen, nur weil ich ein Ausrichtungs-Plugin haben möchte.

Ich habe Version 7.3 mit dem Befehl "configure --prefix = / my / local / dir" heruntergeladen und erfolgreich kompiliert.

Es erkennt jedoch kein GTK2 und verwendet weiterhin die unschöne Motif-Benutzeroberfläche. Es scheint, dass ich zu altes GTK installiert habe: "Überprüfung auf GTK - Version> = 2.2.0 ... nein"

Ich habe versucht, das GTK2 dev-Paket manuell im lokalen Pfad zu installieren, aber es ist fehlgeschlagen. Irgendwelche Ideen, wie ich fortfahren kann? ..

Vielen Dank...

BEARBEITEN

"Es ist fehlgeschlagen" - bedeutet, dass ich glib2 installiert habe, aber Pango hat es nicht gesehen. Dann versuchte ich jhbuilder, aber es gab nur merkwürdige Fehler, dass Googling keine Lösung gab ...

3

2 Antworten auf die Frage

1
Horn OK Please

"but it failed" does not provide enough information about what went wrong, but I have a few hunches. What specific command line options are you trying to use? What error message do you receive?

A few tips for building stuff locally:

  • You might need other updated dependencies such as GLib.
  • For Autoconf-based programs (that is, usually, given away by the fact that a ./configure script exists), you need to specify --prefix=/some/writable/dir as well as set the environment variable PKG_CONFIG_PATH to point pkg-config at the right place.
  • You basically need to create a directory, e.g. /home/you/usr which is your local equivalent to /usr, and convince the build scripts of libraries such as GLib and GTK to use /home/you/usr for everything -- when in doubt, run the config script with strace -Ff -eopen if you can, and see what files it accesses in /usr and then google a way to get it to look in /home/you/usr instead.
  • You may also have to override the default install path for libraries by passing --libdir=/home/you/usr/lib to the configure script.
  • The linkage -- that is, which directories are taken to be linked against for each link step -- is handled by correctly installing the .pc files for the dependency libraries into /home/you/usr/lib/pkg-config. So, in other words, the automatically-generated .pc files that get installed into /home/you/usr/lib/pkg-config when you run make install on an autotooled program will, assuming you set PKG_CONFIG_PATH correctly, tell the compiler to link against /home/you/usr/lib/libglib-2.0.so and not /usr/lib/libglib-2.0.so (for example).
1
Zvika

Well, thanks to allquixotic, I have now a beautiful local GVim7.3 :)

To the benefit of future readers, I'll summarize it up. (hoping that I didn't forget anything...):

Before running:

setenv CPPFLAGS "-I/local/path/usr/include" setenv LDFLAGS "-L/local/path/usr/lib" setenv LD_LIBRARY_PATH "/local/path/usr/lib" setenv PKG_CONFIG_PATH "/local/path/usr/lib/pkgconfig" 

In each component, compile with the following commands:

./configure --prefix=/local/path/usr make make install 

Now, these are the versions I've used (note that the order is important):

glib-2.10.3 atk-1.9.1 freetype-2.2.1 fontconfig-2.3.97 cairo1.0.4 pixman0.9 pango-1.12.4 gtk+-2.8.20 

After that, I could compile Vim7.3 with the following configuration:

 configure --prefix=/local/path/usr --with-features=big --enable-gui=gtk2 | tee config.log 

And verify that gtk is found.