Как скомпилировать GTK2 на машине Linux без прав администратора?

728
Zvika

Я работаю на компьютере SUSE Linux Enterprise Server 10 (x86_64), который имеет версию 6.4.6 GVim, которая довольно старая и не поддерживается некоторыми плагинами.

Это корпоративная машина, и никто не будет выполнять никаких административных изменений только потому, что я хочу иметь плагин выравнивания ...

Я скачал и успешно скомпилировал версию 7.3 с помощью команды «configure --prefix = / my / local / dir».

Однако он не распознает GTK2 и продолжает использовать уродливый графический интерфейс Motif. Кажется, у меня установлена ​​слишком старая версия GTK: «проверка GTK - версия> = 2.2.0 ... нет»

Я пытался вручную установить пакет GTK2 dev в локальный путь, но это не удалось. Любые идеи, как я могу продолжить? ..

Спасибо...

РЕДАКТИРОВАТЬ

«Не удалось» - означает, что я установил glib2, но Панго его не увидел. Затем я попробовал jhbuilder, но он просто выдал странные ошибки, которые Google не дал решения ...

3

2 ответа на вопрос

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.