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.3

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.

sed -i "s:cp -f:install:" mkspecs/linux-g++/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 &&
make install &&
ln -sf libqt-mt.so /usr/lib/libqt.so &&
rm /usr/bin/qmake &&
install -m755 -oroot -groot qmake/qmake /usr/bin &&
cp -r doc/man /usr/share &&
cp -r examples /usr/share/doc/qt &&
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.3/ 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.3 -qt-gif -system-libpng \
    -system-libmng -system-zlib -system-libjpeg -no-exceptions \
    -thread -plugin-imgfmt-png &&
make &&
make install &&
ln -sfn qt-3.3.3 /opt/qt &&
ln -s libqt-mt.so /opt/qt/lib/libqt.so &&
rm /opt/qt-3.3.3/bin/qmake &&
install -m755 -oroot -groot qmake/qmake /opt/qt-3.3.3/bin &&
cp -r doc/man /opt/qt/doc &&
cp -r examples /opt/qt/doc
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 "s:cp -f:install:" mkspecs/linux-g++/qmake.conf: install es más seguro que cp cuando se usa en librerías.

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.

rm .../qmake; install -m755 -oroot -groot qmake/qmake .../bin: El programa qmake se instala incorrectlamente con make install. Estos dos comandos corrigen la instalación de dichi programa.

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

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

Es necesario establecer la variable QTDIR cuando se compilan paquetes que dependen de Qt. Añade lo siguiente al guión de inicialización .bash_profile de cada usuario que construya paquetes usando las librerias Qt. Alternativamente, la variable puede ponerse en el fichero /etc/profile del sistema.

export QTDIR=/opt/qt

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

La librería Qt/X11 contiene las API necesarias para usar programas basados en el conjunto de herramientas GUI de Qt.

El paquete Qt contiene assistant, designer, linguist, lrelease, lupdate, moc, qm2ts, qmake, qtconfig, uic, y las librerías libqt-mt y libqui.