Actualizando GLib y Gtk en Slackware + PyGtk
December 3rd, 2007 by BusindreSlackware trae por defecto las librerías Glib versión 1 y la versión 2 (Llamada Glib2) en paquetes de este tipo (glib-*.tgz) y glib 2.x (glib2-*.tgz). Lo mismo con las librerías Gtk, en SlackWare encontraremos una Gtk v1 y una Gtk v2. Esto se debe a que muchos programas requieren de la versión 1 de Glib o Gtk y otros de la segunda, ya sea para funcionar correctamente o para poderse compilar de forma exitosa. Como ejemplo tenemos el conocido reproductor de música Xmms, si queremos compilar el xmms v1 necesitamos de una versión 1 de la librería Gllib y Gtk , mientras que si requerimos del programa xmms2 (Más moderno) necesitaremos la segunda versión de Gtk y Glib para poder trabajar con el. Según avancen las versiones de cada paquete se pueden necesitar más dependencias que ls que nombramos en el tutorial, esto suele ser cada muy poco tiempo y es entre otros, uno de los motivos por los que Patrick no incluye Gnome en Slackware, hacen demasiados cambios muy deprisa y cuesta mantener de una manera uniforme los componentes de Gnome como para que sea añadido a la distribución, ya que cualquier actualización puede requerir otras muchas actualizaciones de otras aplicaciones del sistema.
En SlackWare tenemos estos dos path a las librerías Glib y Gtk, una ruta por cada versión:
/usr/include/glib-1.2/
/usr/include/glib-2.0/
/usr/include/gtk-1.2/
/usr/include/gtk-2.0/
Gtk+-1.2.10 y Glib-1.2.10 son típicas versiones que encontraremos en la mayoría de distros Slackware porque son de la rama 1 las últimas versiones, si encontraremos diferencias entre las versiones 2 de ambas librerías dependiendo de la versión de SlackWare estemos usando.
Algo que siempre es conveniente al instalar una distro de Slackware es actualizar la versión por defecto de Glib (Versión 2) y GTK, por la versión más nueva que encontremos en el momento de actualizarla. Lógicamente la versión 1 la dejaremos instalada ya que es la última versión de la rama 1 de Glib. Esto permitirá compilaciones más exitosas ya que las dos son una dependencia muy pedida por múltiples aplicaciones a la hora de crear los binarios.
Otra dependencia muy común también es pyGtk, de la cual también contaremos como instalarla. La librería GLib es junto con GTK, una de las más importantes librerías que existen en GNOME, sobre las que se crean las aplicaciones de este popular entorno gráfico. Su actualización es recomendable hacerlo una vez se instale Slackware, no tiene dificultad como veremos, es instalar las dependencias adecuadas en cierto orden, pura rutina como veremos, esto nos permitirá disfrutar de más aplicaciones modernas.
Paquetes:
Pyobject: http://ftp.gnome.org/pub/GNOME/sources/pygobject/2.14/pygobject-2.14.0.tar.gz
Cairo: http://cairographics.org/releases/cairo-1.4.14.tar.gz
Pycairo: http://cairographics.org/releases/pycairo-1.4.0.tar.gz
Glib: ftp://ftp.gtk.org/pub/glib/2.12/glib-2.12.13.tar.gz
Pygtk: http://ftp.gnome.org/pub/GNOME/sources/pygtk/2.12/pygtk-2.12.0.tar.gz
Pango: http://ftp.gnome.org/pub/GNOME/sources/pango/1.19/pango-1.19.3.tar.gz
GTK: ftp://ftp.gtk.org/pub/gtk/v2.10/gtk+-2.10.14.tar.bz2
NOTA: Para no encontrar problemas en la compilación los paquetes están en orden. Siempre es bueno revisar si es la ultima versión antes de empezar. Para ello vale con visitar las URL sin escribir el nombre del fichero:
Pyobject http://ftp.gnome.org/pub/GNOME/sources/pygobject/2.14/
Pycairo / Cairo http://cairographics.org/releases/
Glib ftp://ftp.gtk.org/pub/glib/2.15/
Pygtk http://ftp.gnome.org/pub/GNOME/sources/pygtk/
Pango http://ftp.gnome.org/pub/GNOME/sources/pango/1.19/
Gtk ftp://ftp.gtk.org/pub/gtk/
Antes deberemos de borrar la actual versión de Glib2, Pygtk y Gtk:
# removepkg glib2-2.12.12-i486-1
# removepkg pygtk-2.12.0-i386-1
# removepkg pango-1.16.4-i486-1
# removepkg gtk+2-2.10.13-i486-1
# removepkg cairo-1.4.10-i486-1
Instalando Pyobject:
$ tar -zxvf pygobject-2.14.0.tar.gz
$ cd pygobject-2.14.0
$ ./configure
$ make
# make install
# ldconfig
Instalando Cairo:
$ tar -zxvf cairo-1.4.14.tar.gz
$ cd cairo-1.4.14.
$ ./configure --prefix=/usr
$ make
# make install
Instalando Pycairo:
$ tar -zxvf pycairo-1.4.0.tar.gz
$ cd pycairo-1.4.0
$ python -c "import sys; print sys.prefix"
$ ./configure --prefix=/usr/local/lib/python2.5/
$ make
# make install
# ldconfig
Instalando Glib
$ tar -zxvf glib-2.12.13.tar.gz
$ cd glib-2.12.13
$ ./configure
$ make
# make install
# ldconfig
Instalando Pygtk
$ tar -zxvf pygtk-2.10.6.tar.gz
$ cd pygtk-2.10.6
$ ./configure
$ make
# make install
# ldconfig
Instalando Pango
$ tar -zxvf pango-1.19.3.tar.gz
$ cd pango-1.19.3
$ ./configure --prefix=/usr
$ make
# make install
NOTA: Después de instalar pango debemos ejecutar el siguiente comando para crear el fichero "pango.modules" en el directorio "/usr/etc/pango/":
# querymodules > '/usr/etc/pango/pango.modules'
Instalando Gtk
$ tar -zxvf gtk+-2.10.14.tar.bz2
$ cd gtk+-2.10.14
$ ./configure --enable-xkb --enable-shadowfb
$ make
# make install
# ldconfig
Estas aplicaciones una vez instaladas harán que no salte el típico Warning de GTK mostrado a continuación:
(aplicación:8412): Gtk-WARNING **: No se pudo encontrar el icono «gnome-fs-home». el tema «hicolor»
Error1:
Al compilar GLib (./configure)
checking pkg-config is at least version 0.7... yes
checking for GLIB - version >= 2.8.0... yes (version 2.12.13)
checking for PYGOBJECT... configure: error: Package requirements (pygobject-2.0 >= 2.12.1) were not met:
No package 'pygobject-2.0' found
Solución:
Instalar Pygobject primero
Error 2:
-O2 -Wall -fno-strict-aliasing -std=c9x -MT gtkunixprint_la-gtkunixprintmodule.lo -MD -MP -MF .deps/gtkunixprint_la-gtkunixprintmodule.Tpo -c gtkunixprintmodule.c -fPIC -DPIC -o .libs/gtkunixprint_la-gtkunixprintmodule.o
gtkunixprintmodule.c:35:22: error: pycairo.h: No such file or directory
gtkunixprintmodule.c:36: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
gtkunixprintmodule.c: In function 'initgtkunixprint':
gtkunixprintmodule.c:51: error: 'Pycairo_IMPORT' undeclared (first use in this function)
gtkunixprintmodule.c:51: error: (Each undeclared identifier is reported only once
gtkunixprintmodule.c:51: error: for each function it appears in.)
make[1]: *** [gtkunixprint_la-gtkunixprintmodule.lo] Error 1
make[1]: Leaving directory `/home/busi/pygtk-2.12.0/gtk'
make: *** [install-recursive] Error 1
Solución: Instalar Pycairo antes de compilar Pygtk.
Error 3
Requested 'cairo>= 1.4.12' but version of cairo is 1.4.10
Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.
Alternatively, you may set the environment variables CAIRO_CFLAGS and CAIRO_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
Solución: Instalar Cairo antes que Pycairo
Error 4
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables BASE_DEPENDENCIES_CFLAGS
and BASE_DEPENDENCIES_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details
Solución: Instalar pango antes que Gtk
Error 5
Podemos encontrarnos al ejecutar ciertas aplicaciones el siguiente error al ejecutarlo por consola:
(gvim:5658): Pango-CRITICAL **: No modules found:
Solución: Ejecutar como root este comando:
# pango-querymodules > '/usr/etc/pango/pango.modules'
Posted in How To |
December 14th, 2007 at 4:49 am
[…] tenerlo por defecto en nuestro sistema) GTK (Viene por defecto en el sistema, si queremos podemos actualizarla) GTKGLEXT (No viene por defecto, si da error la ejecución de PsX deberemos instalarla) libxml2 […]
February 7th, 2008 at 9:40 pm
Gracias hehe tenia problemas en saber cual debia instalar primero y cual despues, muchas gracias.. excelente trabajo.
February 9th, 2008 at 8:52 pm
[…] GNU/Linux es proceder a actualizar un poco ciertas utilidades de sistema, como son las librerías Glib o el lenguaje de programación Tcl/Tk (TCL + librería TK). De esta última suelen pedirse […]