Librerías X

Este capítulo no contiene las librerías necesarias para ejecutar las X. Contiene librerías que mejoran a las X. Las mejoras pueden ser tan simples como el soporte de fuentes, o tan complejas como librerías que actúan entre las X y las aplicaciones que se ejecutan sobre éstas y cuyo propósito es estandarizar el aspecto, las características y la comunicación entre procesos para permitir que aplicaciones escritas por distintos programadores luzcan y actúen en forma similar. Estas librerías también ayudan a los programadores, proporcionándoles elementos comunes.

Qt-3.3.4

Introducción a Qt

El paquete Qt contiene una librería de interfaz gráfica (GUI) en C++. Es útil para crear o ejecutar aplicaciones gráficas que estén enlazadas dinámicamente a la librería Qt. Uno de los proyectos más grandes que utilizan Qt es KDE.

Información sobre el paquete

Instalación de Qt

Hay varias formas de instalar un paquete tan complicado como Qt. Los ficheros no son por completo independientes de su ubicación. Los procedimientos de instalación ejecutan el programa pkg-config para determinar la localización de los ejecutables, librerías, cabeceras y otros ficheros del paquete. Para Qt, pkg-config buscará el fichero lib/pkgconfig/qt-mt.pc que debe modificarse si reubicas el paquete. Este fichero se establece correctamente mediante el proceso de construcción.

La instalación por defecto coloca los ficheros en /usr/local/qt/. Muchas distribuciones comerciales ponen los ficheros en la jerarquía /usr del sistema. El paquete también puede instalarse en un directorio arbitrario.

Esta sección mostrará dos métodos diferentes.

[Nota]

Nota

El tiempo de construcción de Qt es bastante largo. Si quieres ahorrar algo de tiempo y no quieres los tutoriales y ejemplos, cambia la primera línea de make a:

make sub-tools

Método 1 - Instalación en la jerarquía /usr

La ventaja de este método es que no hace falta actualizar los ficheros /etc/ld.so.conf o /etc/man.conf. Los ficheros del paquete se distribuyen dentro de los diferentes subdirectorios de la jerarquía /usr. Este es el método usado por muchas distribuciones comerciales.

[Nota]

Nota

Si vas a reinstalar Qt, ejecuta los siguientes comandos desde una consola o un administrador de ventanas que no esté vasado en Qt. Se sobreescribirán las librerías de Qt, las cuales no deberían estar en uso durante el proceso de instalación.

sed -i -e 's:$(QTDIR)/include:&/qt:' \
       -e 's:$(QTDIR)/lib:&/qt:' \
       mkspecs/linux*/qmake.conf   &&    
bash
export PATH=$PWD/bin:$PATH &&
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH &&
./configure -prefix /usr -docdir /usr/share/doc/qt \
    -headerdir /usr/include/qt -plugindir /usr/lib/qt/plugins \
    -datadir /usr/share/qt -translationdir /usr/share/qt/translations \
    -sysconfdir /etc/qt -qt-gif -system-zlib -system-libmng \
    -no-exceptions -thread -plugin-imgfmt-png \
    -system-libjpeg -system-libpng &&
find -type f -name Makefile | xargs sed -i "s@-Wl,-rpath,/usr/lib@@g" &&
make

Ahora, como usuario root:

make install &&
ln -sf libqt-mt.so /usr/lib/libqt.so &&
cp -r doc/man /usr/share &&
cp -r examples /usr/share/doc/qt

Y por último, de nuevo como usuario normal:

exit

Método 2 - Instalación en /opt

Este es el método recomendado por los desarrolladores de Qt. Tiene la ventaja de guardar todos los ficheros del paquete en una jerarquía de directorios dedicada. Usando este método, se puede hacer una actualización sin necesidad de sobreescribir una instalación previa y los usuarios pueden volver fácilmente a una versión anterior con sólo cambiar un enlace simbólico.

Los desarrolladores de Qt utilizan por defecto la localización /usr/local/qt/, sin embargo, este procedimiento pone los ficheros en /opt/qt-3.3.4/ y luego crea un enlace simbólico a /opt/qt/.

bash
export QTDIR=$PWD &&
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH &&
export PATH=$PWD/bin:$PATH &&
./configure -prefix /opt/qt-3.3.4 -qt-gif -system-libpng \
    -system-libmng -system-zlib -system-libjpeg -no-exceptions \
    -thread -plugin-imgfmt-png &&
make

Ahora, como usuario root:

make install &&
ln -sfn qt-3.3.4 /opt/qt &&
ln -s libqt-mt.so /opt/qt/lib/libqt.so &&
cp -r doc/man /opt/qt/doc &&
cp -r examples /opt/qt/doc

Y por último, de nuevo como usuario normal:

exit
[Nota]

Nota

Si pasas la opción -plugin-sql-[controlador] al comando configure, también deberás pasarle -I[/ruta/a/las/cabeceras/sql] para que make pueda encontrar las cabeceras adecuadas.

Explicación de los comandos

sed -i -e 's:$(QTDIR)/include:&/qt:' -e 's:$(QTDIR)/lib:&/qt:' mkspecs/linux*/qmake.conf: Se han de ajustar los directorios en qmake.conf para coincidir con los directorios de instalación del Método 1 del BLFS.

bash: Este comando inicia un subintérprete de comandos para aislar los cambios del entorno.

export QTDIR=$PWD: Este comando define dónde se encuentra el directorio raíz de Qt.

export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH: Este comando permite que los programas aún no instalados de Qt puedan utilizar las librerías aún no nstaladas de Qt.

export PATH=$PWD/bin:$PATH: Este comando permite al proceso de construcción encontrar los ejecutables de soporte.

-qt-gif: Este comando añade soporte para ficheros gif a las librerías.

-system-zlib -system-libpng: Esta opción fuerza al proceso de construcción a usar las librerías compartidas que hay en tu sistema, en vez de crear su propio conjunto de librerías de soporte para estas funciones.

-plugin-imgfmt-png: Esta opción permite que libpng se enlace en tiempo de ejecución.

-no-exceptions: Esta opción desactiva los códigos de excepción generados por el compilador C++.

-thread: Esta opción añade soporte multihilo.

find -type f -name Makefile | xargs sed -i "s@-Wl,-rpath,/usr/lib@@g": Esta opción elimina la rutas fijadas en tiempo de ejecución, de otra forma uic siempre intenta ejecutarse con las librerías Qt en /usr/lib.

ln -s libqt-mt.so /usr/lib/libqt.so: Este comando permite al guión configure encontrar una instalación funcional de Qt.

cp -r doc/man /usr/share (o /opt/qt/doc): Este comando instala las páginas de manual olvidadas por make install.

cp -r examples /usr/share/doc/qt (o /opt/qt/doc): Este comando instala los ejemplos olvidados por make install.

exit: Este comando regresa al intérprete de comandos padre y elimina las variables de entorno establecidas anteriormente.

Configuración de Qt

Información sobre la configuración

Debe establecerse la variable de entorno QTDIR cuando se construyen paquetes que depende de Qt. Añade lo siguiente al guión de inicio .bash_profile de cada usuario que construya paquetes usando las librerías Qt. Alternativamente, la variable se puede establecer de forma global en el fichero /etc/profile.

Para el Método 1:

export QTDIR=/usr

Para el Método 2:

export QTDIR=/opt/qt

Si instalaste Qt usando el Método 2, deberás actualizar algunos ficheros de configuración para que Qt pueda ser encontrado correctamente por los demás paquetes y procesos del sistema.

Actualiza los ficheros /etc/ld.so.conf y /etc/man.conf .

cat >> /etc/ld.so.conf << "EOF"
# Inicio de la adición de qt a /etc/ld.so.conf

/opt/qt/lib

# Fin de la adición de qt
EOF
ldconfig

cat >> /etc/man.conf << "EOF"
# Inicio de la adición de qt a man.conf

MANPATH /opt/qt/doc/man

# Fin de la adición de qt a man.conf
EOF

Actualiza la variable de entorno PKG_CONFIG_PATH en tu fichero ~/.bash_profile o en /etc/profile con lo siguiente:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/qt/lib/pkgconfig

Si quieres que los ejecutables de Qt aparezcan en tu ruta de búsqueda, actualiza la variable de entorno PATH en tu ~/.bash_profile o en /etc/profile para que incluya /opt/qt/bin.

Al igual que con la mayoría de las librerías, no se requiere una configuración explícita. Luego de actualizar /etc/ld.so.conf como se explica arriba, ejecuta /sbin/ldconfig para que ldd pueda encontrar las librerías compartidas.

Contenido

Programas instalados: assistant, designer, linguist, lrelease, lupdate, moc, qm2ts, qmake, qtconfig y uic
Librerías instaladas: libqt-mt.so, libqt.so libqui.so, libdesignercore.a, libeditor.a y libqassistantclient.a
Directorios instalados: /opt/qt-3.3.4 or /usr/lib/qt, /usr/share/qt, /usr/share/doc/qt, /usr/include/qt y /etc/qt

Descripciones cortas

assistant

Una herramienta para presentar documentación en línea.

designer

Un constructor GUI completo. Incluye características poderosas, como el modo de previsialización, esquema automático de objetos, soporte para personalizar objetos y un editor de propiedades avanzado.

linguist

Proporciona soporte para traducir aplicaciones a otros lenguajes.

lrelease

Una herramienta simple en línea de comandos. Lee un fichero de proyecto Qt y genera ficheros de mensajes usados por la aplicación.

lupdate

Lee un fichero de proyecto Qt, encuentra las cadenas traducibles en los ficheros fuente, cabeceras y de interfaz de Qt Designer especificados y genera o actualiza los ficheros de traducción listados en el fichero del proyecto.

moc

Genera código de soporte de metaobjetos Qt.

qm2ts

Herramienta para convertir formatos de ficheros de mensajes de Qt.

qmake

Utiliza la información guardada en ficheros de proyecto para determinar qué debería ir e los makefiles que genera.

qtconfig

Se usa para personalizar el aspecto de las aplicaciones Qt.

uic

La interfaz de usuario del compilador Qt.