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.
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.
Descarga (HTTP): http://sunsite.rediris.es/mirror/Qt/source/qt-x11-free-3.3.4.tar.bz2
Descarga (FTP): ftp://ftp.trolltech.com/qt/source/qt-x11-free-3.3.4.tar.bz2
Suma MD5 del paquete: 027f4e82fbe592b39d2f160bfb3a73af
MD5 Sum: 027f4e82fbe592b39d2f160bfb3a73af
Tamaño del paquete: 13.8 MB
Estimación del espacio necesario en disco: 250 MB
Tiempo estimado de construcción: 15.5 SBU (full), 10.9 SBU (sub-tools)
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.
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
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.
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
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
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.
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.
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.
Una herramienta para presentar documentación en línea.
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.
Proporciona soporte para traducir aplicaciones a otros lenguajes.
Una herramienta simple en línea de comandos. Lee un fichero de proyecto Qt y genera ficheros de mensajes usados por la aplicación.
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.
Genera código de soporte de metaobjetos Qt.
Herramienta para convertir formatos de ficheros de mensajes de Qt.
Utiliza la información guardada en ficheros de proyecto para determinar qué debería ir e los makefiles que genera.
Se usa para personalizar el aspecto de las aplicaciones Qt.
La interfaz de usuario del compilador Qt.