Qt-4.8.6
Introduction à Qt
Qt est un environnement de travail
d'applications multi-plate-forme qui est largement utilisé pour
développer des applications avec une interface utilisateur
graphique (GUI) (dans quelques cas Qt est classé comme une trousse
de widgets), et aussi utilisé pour développer des programmes
non-GUI comme les outils en ligne de commande et les consoles pour
les serveurs. Un des utilisateurs majeurs de Qt est KDE.
Ce paquet est connu pour se construire correctement sur une
plateforme LFS-7.7.
Information sur le paquet
Dépendances de Qt
Requises
Xorg
Libraries
Recommandées
ALSA-Library-1.0.28, MesaLib-10.4.5,
Certificate Authority
Certificates, D-BUS-1.8.16, GLib-2.42.1,
ICU-54.1 (support de unicode), libjpeg-turbo-1.4.0, libmng-2.0.2, libpng-1.6.16,
LibTIFF-4.0.3, OpenSSL-1.0.2
et SQLite-3.8.8.2
Facultative
Cups-2.0.2, gtk+-2.24.26 (support des thèmes GTK+ 2),
GStreamer Base
Plug-ins-0.10.36 (pour les vidéos QtWebKit HTML5), MariaDB-10.0.16 ou MySQL, PostgreSQL-9.4.1, PulseAudio-5.0 et unixODBC-2.3.2
Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/qt4
Alternatives d'installation de Qt
L'installation de Qt présente
plusieurs challenges et choix. La complication de l'installation de
Qt est le fait qu'il y a deux versions, Qt4 et Qt5,
qui ont des programmes exécutables avec des noms identiques. Si les
deux paquets sont installés sur un système, la seule méthode pour
gérer quel ensemble de programmes est utilisé est soit de contrôler
le PATH
de l'utilisateur ou de renommer
les fichiers soit directement ou via des liens symboliques. Les
deux paquets ne peuvent pas être installés dans le même répertoire.
Si vous installez seulement une des versions de Qt, le choix de
l'installation est facile. Vous pouvez soit installer le composant
dans plusieurs répertoires de la hiérarchie /usr
ou installer le paquet entièrement dans un
répertoire séparé de votre choix. Nous nous référons à ces options
comme "Méthode 1: Installation dans /usr" et "Méthode 2:
Installation dans /opt".
Si les deux versions de Qt doivent être installée, une ou les deux
versions doivent être installées dans un répertoire séparé. Pour la
discussion ici nous utiliserons le répertoire /opt
. La sélection de quelle version doit être
utilisée par des utilisateurs individuels sur un système est
contrôlé par la variable PATH
. D'autres
systèmes peuvent être imaginés, mais les éditeurs de BLFS trouvent
la méthode du PATH
plus simple.
L'avantage d'installer dans /usr
est
qu'il n'y à pas de mise à jour des fichiers /etc/ld.so.conf
ou /etc/man_db.conf
. Les fichiers du paquet sont
répartis dans plusieurs sous-répertoire de la hiérarchie
/usr
. C'est la méthode que le plus de
distributions commerciales utilisent. Le désavantage pour les
utilisateurs de BLFS est que la version de Qt ne peut pas être mise
à jour quand elle est utilisée. Par exemple, elle ne peut pas être
mise à jour dans un environnement KDE. cela implique également de
multiples versions de Qt sur votre système et ne permet pas de
retourner à une version existante de Qt connue pour fonctionner.
L'avantage d'installer Qt dans un
répertoire personnalisé comme /opt/qt-4.8.6
ou /opt/qt-5.4.0
ou est que cela laisse tous les
fichiers du paquet consolidés dans une hiérarchie de répertoires
dédiées. En utilisant cette méthode, une mise à jour peut être
faite sans écraser une installation précédente et les utilisateurs
peuvent facilement retourner dans une version précédente en
changeant un lien symbolique ou simplement en changeant la variable
PATH. Cela permet également à un développeur de maintenir des
versions multiplus de Qt4 ou
Qt5 pour tester.
Installation de Qt
Attention
Si vous n'installez pas quelques unes des dépendances
recommandées, examinez la sortie de ./configure --help pour
vérifier comment les désactiver ou utiliser les versions internes
livrées avec l'archive des sources.
Avertissement
Si Qt4 doit être réinstallé dans
le même répertoire qu'une précédente installation, lancez les
commandes fait par root
, comme
make install,
depuis une console ou un gestionnaire de fenêtres non Qt4. Elle
écrase les bibliothèques Qt4 qui
ne devraient pas être utilisées pendant le processus
d'installation.
Note
Le temps et l'espace de construction requis pour tout
Qt4 est considérable. Les
instructions ci-dessous ne construisent pas les tutoriels et les
exemples. La suppression des lignes -nomake
créera une construction
complète.
Corrige une vulnérabilitée DoS dans les entêtes d'image GIF:
sed -i -e '631a if (image->isNull()) { state = Error; return -1; }' \
src/gui/image/qgifhandler.cpp
Méthode 1: Installation dans /usr
Installez Qt4 dans la hiérarchie
/usr
en lançant les commandes
suivantes
export QT4LINK=/usr
sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \
config.tests/unix/libmng/libmng.cpp &&
sed -i '/CONFIG -/ a\isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../..' \
src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro &&
./configure -prefix /usr \
-bindir /usr/bin \
-plugindir /usr/lib/qt4/plugins \
-importdir /usr/lib/qt4/imports \
-headerdir /usr/include/qt4 \
-datadir /usr/share/qt4 \
-sysconfdir /etc/xdg \
-docdir /usr/share/doc/qt4 \
-demosdir /usr/share/doc/qt4/demos \
-examplesdir /usr/share/doc/qt4/examples \
-translationdir /usr/share/qt4/translations \
-confirm-license \
-opensource \
-release \
-dbus-linked \
-openssl-linked \
-system-sqlite \
-no-phonon \
-no-phonon-backend \
-no-nis \
-no-openvg \
-nomake demos \
-nomake examples \
-optimized-qmake &&
make
Ce paquet n'a pas de suite de tests.
Enlevez les références au répertoire de construction dans les
fichiers .pc
en lançant la commande
suivante:
find . -name "*.pc" -exec perl -pi -e "s, -L$PWD/?\S+,,g" {} \;
Maintenant, en tant qu'utilisateur root
:
make install &&
rm -rf /usr/tests
Effacez les références au répertoire d'installation des fichiers
installés en lançant les commandes suivantes en tant qu'utilisateur
root
:
for file in 3Support CLucene Core DBus Declarative DesignerComponents \
Designer Gui Help Multimedia Network OpenGL Script \
ScriptTools Sql Svg Test UiTools WebKit XmlPatterns Xml phonon; do
[ -e /usr/lib/libQt${file}.prl ] &&
sed -r '/^QMAKE_PRL_BUILD_DIR/d;s/(QMAKE_PRL_LIBS =).*/\1/' \
-i /usr/lib/libQt${file}.prl
done
unset file
Méthode 2: Installation dans /opt/qt-4.8.6
Cette partie fournit l'installation de Qt4 avec presque tous les
fichiers dans le répertoire /opt
.
export QT4DIR=/opt/qt-4.8.6 &&
export QT4LINK=/opt/qt4 &&
sed -i -e "/#if/d" -e "/#error/d" -e "/#endif/d" \
config.tests/unix/libmng/libmng.cpp &&
sed -i '/CONFIG -/ a\isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../..' \
src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro &&
./configure -prefix $QT4DIR \
-sysconfdir /etc/xdg \
-confirm-license \
-opensource \
-release \
-dbus-linked \
-openssl-linked \
-system-sqlite \
-plugin-sql-sqlite \
-no-phonon \
-no-phonon-backend \
-no-nis \
-no-openvg \
-nomake demos \
-nomake examples \
-optimized-qmake &&
make
Maintenant, en tant qu'utilisateur root
:
make install
ln -svfn $QT4DIR /opt/qt4
Enlevez les références au répertoire de construction dans les
fichiers installés en lançant la commande suivante en tant
qu'utilisateur root
:
for file in `basename -a -s .prl $QT4DIR/lib/lib*.prl`; do
sed -r -e '/^QMAKE_PRL_BUILD_DIR/d' \
-e 's/(QMAKE_PRL_LIBS =).*/\1/' \
-i $QT4DIR/lib/${file}.prl
perl -pi -e "s, -L$PWD/?\S+,,g" $QT4DIR/lib/pkgconfig/${file##lib}.pc
done
unset file
La suite pour les deux méthodes
Pour toutes les méthodes, installez les images et créez les entrées
de menu pour les applications installées. Soyez certain que la
variable QT4LINK
est définie dans
l'environnement root et en tant qu'utilisateur root
:
install -v -Dm644 src/gui/dialogs/images/qtlogo-64.png \
/usr/share/pixmaps/qt4logo.png &&
install -v -Dm644 tools/assistant/tools/assistant/images/assistant-128.png \
/usr/share/pixmaps/assistant-qt4.png &&
install -v -Dm644 tools/designer/src/designer/images/designer.png \
/usr/share/pixmaps/designer-qt4.png &&
install -v -Dm644 tools/linguist/linguist/images/icons/linguist-128-32.png \
/usr/share/pixmaps/linguist-qt4.png &&
install -v -Dm644 tools/qdbus/qdbusviewer/images/qdbusviewer-128.png \
/usr/share/pixmaps/qdbusviewer-qt4.png &&
install -dm755 /usr/share/applications &&
cat > /usr/share/applications/assistant-qt4.desktop << EOF
[Desktop Entry]
Name=Qt4 Assistant
Comment=Shows Qt4 documentation and examples
Exec=$QT4LINK/bin/assistant
Icon=assistant-qt4.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Documentation;
EOF
cat > /usr/share/applications/designer-qt4.desktop << EOF
[Desktop Entry]
Name=Qt4 Designer
Comment=Design GUIs for Qt4 applications
Exec=$QT4LINK/bin/designer
Icon=designer-qt4.png
MimeType=application/x-designer;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;
EOF
cat > /usr/share/applications/linguist-qt4.desktop << EOF
[Desktop Entry]
Name=Qt4 Linguist
Comment=Add translations to Qt4 applications
Exec=$QT4LINK/bin/linguist
Icon=linguist-qt4.png
MimeType=text/vnd.trolltech.linguist;application/x-linguist;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;
EOF
cat > /usr/share/applications/qdbusviewer-qt4.desktop << EOF
[Desktop Entry]
Name=Qt4 QDbusViewer
GenericName=D-Bus Debugger
Comment=Debug D-Bus applications
Exec=$QT4LINK/bin/qdbusviewer
Icon=qdbusviewer-qt4.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Debugger;
EOF
cat > /usr/share/applications/qtconfig-qt4.desktop << EOF
[Desktop Entry]
Name=Qt4 Config
Comment=Configure Qt4 behavior, styles, fonts
Exec=$QT4LINK/bin/qtconfig
Icon=qt4logo.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Settings;
EOF
Explications des commandes
sed -i "..." ...: La
première commande corrige la détection de libmng 2.0 et la seconde empêche le script
configure d'écrire dans un répertoire root si la construction est
en tant qu'utilisateur privilégié.
-confirm-license
: Accepte
la licence sans le demander à l'utilisateur pendant la
configuration.
-opensource
: Installe la
version libre de Qt.
-release
: Ce paramètre
désactive la construction avec les symboles de débogage.
-nomake examples -nomake
demos
: Ces paramètres désactivent la construction de
programmes qui n'ont d'intérêt que pour un développeur utilisant
Qt.
-system-sqlite
: Ce
paramètre active l'utilisation de la version du système de
SQLite.
-no-nis
: Ce paramètre
désactive le support de Network Information Service (NIS,
service d'informations réseau) qui a été déprécié dans la version
récente de Glibc.
-no-phonon
-no-phonon-backend
: Ces paramètres désactivent la
construction de la bibliothèque Phonon fournie. Une meilleure version est
fournie par le paquet phonon-4.8.3.
-dbus-linked
-openssl-linked
: Ces paramètres activent la liaison
explicites des bibliothèques D-Bus
et OpenSSL dans les biblothèques
Qt au lieu de les dlopen()-nés.
-no-openvg
: Ce paramètre
désactive le support de OpenVG
dans Qt.
-optimized-qmake
: Ce
paramètre active la construction du programme optimisé qmake.
-no-dbus
: Utilisez ce paramètre si vous
n'avez pas installé D-Bus.
Configuration de Qt
Informations de
configuration
Si vous avez installé Qt dans
/usr, créez une variable d'environnement nécessaire pour certain
paquets. En tant qu'utilisateur root
:
cat > /etc/profile.d/qt4.sh << EOF
# Begin /etc/profile.d/qt4.sh
QT4DIR=/usr
export QT4DIR
# End /etc/profile.d/qt4.sh
EOF
Si vous avez installé Qt dans un
endroit autre que /usr, vous devez mettre à jour les fichiers de
configuration suivant pour que Qt soit correctement trouvé par les autres
paquets et les processus du système.
En tant qu'utilisateur root
,
mettez à jour le fichier /etc/ld.so.conf
et le fichier de cache du lieur
dynamique d'exécution:
cat >> /etc/ld.so.conf << EOF
# Begin Qt addition
/opt/qt4/lib
# End Qt addition
EOF
ldconfig
En tant qu'utilisateur root
,
créez le fichier /etc/profile.d/qt4.sh
:
cat > /etc/profile.d/qt4.sh << EOF
# Begin /etc/profile.d/qt4.sh
QT4DIR=/opt/qt4
pathappend /opt/qt4/bin PATH
pathappend /opt/qt4/lib/pkgconfig PKG_CONFIG_PATH
export QT4DIR
# End /etc/profile.d/qt4.sh
EOF
Choisir la version de programme de Qt
si vous installez Qt4 et Qt5, vous pouvez utiliser des scripts
simples pour selectionner l'ensemble des programmes Qt
actuellement actifs. En tant qu'utilisateur root
, creez les scripts suivants:
cat > /usr/bin/setqt4 << 'EOF'
if [ "x$QT5DIR" != "x/usr" ]; then pathremove $QT5DIR/bin; fi
if [ "x$QT4DIR" != "x/usr" ]; then pathprepend $QT4DIR/bin; fi
echo $PATH
EOF
cat > /usr/bin/setqt5 << 'EOF'
if [ "x$QT4DIR" != "x/usr" ]; then pathremove $QT4DIR/bin; fi
if [ "x$QT5DIR" != "x/usr" ]; then pathprepend $QT5DIR/bin; fi
echo $PATH
EOF
Vous pouvez utiliser la version approprie de Qt en lancant
source setqt4 ou
source setqt5 comme
vous le souhaitez. (Initialisez le PATH ne fonctionne pas dans un
sous-repertoire.) Une autre technique qui peut etre utilisee est
de creer des alias appropries dans votre ~/bashrc comme
alias setqt4='source
setqt4'.
Contenu
Programmes installés:
assistant, designer, lconvert, linguist,
lrelease, lupdate, moc, pixeltool, qcollectiongenerator,
qdbuscpp2xml, qdbus, qdbusviewer, qdbusxml2cpp, qdoc3,
qhelpconverter, qhelpgenerator, qmake, qmlplugindump,
qmlviewer, qt3to4, qtconfig, qttracereplay, rcc, uic3, uic,
xmlpatterns, et xmlpatternsvalidator
Bibliothèques installées:
libQtUiTools.a, libQt3Support.so,
libQtCLucene.so, libQtCore.so, libQtDBus.so,
libQtDeclarative.so, libQtDesignerComponents.so, libQtGui.so,
libQtHelp.so, libQtMultimedia.so, libQtNetwork.so,
libQtOpenGL.so, libQtScript.so, libQtScriptTools.so,
libQtSql.so, libQtSvg.so, libQtTest.so, libQtWebKit.so,
libQtXmlPatterns.so et libQtXml.so
Répertoires installés:
/usr/include/qt4, /usr/lib/qt4,
/usr/share/doc/qt4 et /usr/share/qt4 OU /opt/qt4 et
/opt/qt-4.8.6
Description courte
assistant
|
est un outil pour présenter de la documentation en ligne.
|
designer
|
est un constructeur GUI complètement mûr. Il inclut des
fonctionnalités puissantes telles qu'un mode de
prévisualisation, l'aménagement automatique des widgets,
le support des widgets personnalisés et un éditeur avancé
de propriétés.
|
linguist
|
fournit un support de traduction d'applications en
langues locales.
|
lrelease
|
est un outil simple en ligne de commande. Il lit un
fichier de projet Qt et produit des fichiers de message
utilisés par l'application.
|
lupdate
|
lit un fichier de projet Qt, cherche les chaînes
traduisibles dans les sources spécifiées, l'en-tête et
les fichiers du designer Qt, et produit ou met à jour les
fichiers de traduction listés dans le fichier du projet.
|
moc
|
génère le support du code des méta-objets Qt.
|
pixeltool
|
est une loupe de bureau et, quand vous déplacez votre
souris sur l'écran, elle vous montrera le contenu agrandi
dans sa fenêtre.
|
qmake
|
utilise des informations stockées dans des fichiers de
projet pour déterminer ce qui devrait aller dans les
makefiles qu'il génère.
|
qt3to4
|
qt3to4 est un outil pour aider à mettre à jour du code
Qt3 vers Qt4.
|
qtconfig
|
est utilisé pour personnaliser l'apparence des
applications Qt.
|
rcc
|
est un compilateur de ressources utilisé avec le
designer.
|
uic
|
est un compilateur d'interface utilisateur Qt.
|
uic3
|
est un outil pour générer du code Qt4 hors des fichiers
de l'interface utilisateur générés par la version Qt3 de
designer.
|
Last updated on 2013-06-02 21:23:30 +0200