qt-alternate-5.15.12

Introduksjon til qt5 (alternativ)

Qt5 er et applikasjonsrammeverk på tvers av plattformer som er mye brukt for å utvikle applikasjonsprogramvare med en grafisk brukergrensesnitt (GUI) (i hvilke tilfeller qt5 er klassifisert som et skjermelement verktøysett), og brukes også til å utvikle ikke-GUI programmer som kommandolinjeverktøy og konsoller for servere. To store brukere av qt er KDE Frameworks 5 (KF5) og LXQt.

[Important]

Important

Hele qt5 pakken består av 43 separate komponenter. Disse instruksjonene bruker en liten delmengde av hele qt5 installasjonsinstruksjonene ovenfor. De dekker de fleste, men ikke alle, av komponentene som trengs for å bygge pakker i BLFS. Denne siden, og den neste, er gitt for å redusere mengden tid, plass og avhengigheter som trengs for å bygge disse pakkene. De anbefales ikke om du vil bygge KDE Frameworks-5.115.0 baserte Plasma-5.27.10 skrivebordsmiljø.

Denne pakken er kjent for å bygge og fungere riktig ved å bruke en LFS 12.1 plattform.

Pakkeinformasjon

Ytterligere Nedlastinger

qt5 Avhengigheter

Påkrevd

Xorg Biblioteker

Anbefalt

Valgfri

GTK+-3.24.41, libinput-1.25.0 MariaDB-10.11.7 eller MySQL, MIT Kerberos V5-1.21.2, mtdev-1.1.6 PostgreSQL-16.2, og unixODBC-2.3.12

Stille inn installasjonsprefikset

Installere i /opt/qt5

BLFS redaktørene anbefaler å installere qt5 inn i /usr hierarkiet fordi det blir vanskelig å finne komponenter og å oppdatere til en ny versjon. Hvis du ønsker å installere qt5 i /usr, mappene må spesifiseres eksplisitt. I dette tilfellet, sett QT5PREFIX=/usr og legg til følgende i configure argumentene nedenfor:

export QT5PREFIX=/opt/qt5
[Tip]

Tip

Noen ganger er installasjonsbanene hardkodet til installerte filer. Dette er grunnen /opt/qt5 brukes som installasjonsprefiks i stedet for /opt/qt-5.15.12. For å opprette en versjonert qt5 mappen etter installasjonen er fullført, kan du gi nytt navn til mappen og opprette en symbolkobling:

mkdir -pv /opt/qt-5.15.12
ln -sfnv qt-5.15.12 /opt/qt5

Senere kan du ønske å installere andre versjoner av qt5. For å gjøre det, fjern bare symbolkoblingen og bruk /opt/qt5 som prefiks igjen. Hvilken versjon av qt5 du bruker avhenger bare av hvor symbollinken peker.

Installasjon av qt5

[Warning]

Warning

Hvis qt5 blir reinstallert i samme mappe som en eksisterende forekomst, kjør kommandoene utført av root, som for eksempel make install, fra en konsoll eller ikke-qt5 basert vindusbehandler. Den overskriver qt5 biblioteker som ikke skal være i bruk under installasjonsprosessen.

[Caution]

Caution

Hvis du ikke installerte noen av de anbefalte avhengighetene, undersøk ./configure --help utdataen for å sjekke hvordan du deaktiverer dem eller bruk interne versjoner samlet i kildens tarball.

[Note]

Note

BLFS redaktørene anbefaler ikke å installere qt5 inn i /usr hierarkiet fordi det blir vanskelig å finne komponenter og å oppdatere til en ny versjon. Hvis du ønsker å installere qt5 i /usr, mappen må spesifiseres eksplisitt. I dette tilfellet setter du QT5PREFIX=/usr og legger til følgende til konfigureringsargumentene nedenfor:

            -archdatadir    /usr/lib/qt5                \
            -bindir         /usr/bin                    \
            -plugindir      /usr/lib/qt5/plugins        \
            -importdir      /usr/lib/qt5/imports        \
            -headerdir      /usr/include/qt5            \
            -datadir        /usr/share/qt5              \
            -docdir         /usr/share/doc/qt5          \
            -translationdir /usr/share/qt5/translations \
            -examplesdir    /usr/share/doc/qt5/examples

Nå bruk en oppdatering for å trekke inn rettelsene vedlikeholdt av kde for disse moduler som kreves av pakker nevnt i denne boken:

patch -Np1 -i ../qt-everywhere-opensource-src-5.15.12-kf5-1.patch

Oppdateringen er ment å brukes i et git depot. Ellers vil noen filer som burde endres av configure etter anvendelsen av oppdateringen ikke berøres. Heldigvis er det nok å lage en .git mappe i qmake mappen hvor configure skriptet kjøres:

mkdir -pv qtbase/.git

Rett opp en sikkerhetssårbarhet i qtbase:

patch -Np1 -i ../qt-everywhere-opensource-src-5.15.12-security_fix-1.patch

På dette tidspunktet ønsker vi å sette opp å hoppe over de fleste komponentene. Gjør det med:

ls -Fd qt* | grep / | sed 's/^/-skip /;s@/@@' > tempconf &&
sed -i -r '/base|tools|x11extras|svg|declarative|wayland/d' tempconf

Nå, installer qt5 ved å kjøre følgende kommandoer:

./configure -prefix $QT5PREFIX   \
            -sysconfdir /etc/xdg \
            -confirm-license     \
            -opensource          \
            -dbus-linked         \
            -openssl-linked      \
            -system-harfbuzz     \
            -system-sqlite       \
            -nomake examples     \
            -no-rpath            \
            -journald            \
            $(cat tempconf)      \
            &&
make

Denne pakken kommer ikke med en testpakke.

Nå, som root bruker:

make install

Fjern referanser til byggemappen fra installert bibliotek avhengighet (prl) filer ved å kjøre følgende kommando som root bruker:

find $QT5PREFIX/ -name \*.prl \
   -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;

Installer bilder og lag menyoppføringer for installerte applikasjoner. QT5BINDIR variabel brukes her for å peke på mappen for de kjørbare programmene. Hvis du har endret bindir ovenfor, QT5BINDIR må justeres nedenfor. Vær sikker på at QT5BINDIR variabel er definert i root sitt miljø og som root bruker:

QT5BINDIR=$QT5PREFIX/bin

install -v -dm755 /usr/share/pixmaps/                  &&

install -v -Dm644 qttools/src/assistant/assistant/images/assistant-128.png \
                  /usr/share/pixmaps/assistant-qt5.png &&

install -v -Dm644 qttools/src/designer/src/designer/images/designer.png \
                  /usr/share/pixmaps/designer-qt5.png  &&

install -v -Dm644 qttools/src/linguist/linguist/images/icons/linguist-128-32.png \
                  /usr/share/pixmaps/linguist-qt5.png  &&

install -v -Dm644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
                  /usr/share/pixmaps/qdbusviewer-qt5.png &&

install -dm755 /usr/share/applications &&

cat > /usr/share/applications/assistant-qt5.desktop << EOF
[Desktop Entry]
Name=Qt5 Assistant
Comment=Shows Qt5 documentation and examples
Exec=$QT5BINDIR/assistant
Icon=assistant-qt5.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Documentation;
EOF

cat > /usr/share/applications/designer-qt5.desktop << EOF
[Desktop Entry]
Name=Qt5 Designer
GenericName=Interface Designer
Comment=Design GUIs for Qt5 applications
Exec=$QT5BINDIR/designer
Icon=designer-qt5.png
MimeType=application/x-designer;
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;
EOF

cat > /usr/share/applications/linguist-qt5.desktop << EOF
[Desktop Entry]
Name=Qt5 Linguist
Comment=Add translations to Qt5 applications
Exec=$QT5BINDIR/linguist
Icon=linguist-qt5.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-qt5.desktop << EOF
[Desktop Entry]
Name=Qt5 QDbusViewer
GenericName=D-Bus Debugger
Comment=Debug D-Bus applications
Exec=$QT5BINDIR/qdbusviewer
Icon=qdbusviewer-qt5.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Debugger;
EOF

Noen pakker som f.eks VLC-3.0.20 ser etter visse kjørbare filer med suffikset -qt5. Kjør følgende kommando som root bruker for å opprette de nødvendige symbolkoblingene:

for file in moc uic rcc qmake lconvert lrelease lupdate; do
  ln -sfvn $QT5BINDIR/$file /usr/bin/$file-qt5
done

Parameterforklaringer

-confirm-license: Godta lisens uten å spørre brukeren under konfigurasjonen.

-opensource: Installer åpen kildekode versjon av qt.

-nomake examples: Denne bryteren deaktiverer bygging av eksempelprogrammene inkludert i kilde tarballen. Fjern den hvis du vil bygge dem.

-system-sqlite: Denne bryteren aktiverer systemversjonen av SQLite.

-system-harfbuzz: Denne bryteren aktiverer systemversjonen avf Harfbuzz.

-dbus-linked -openssl-linked: Disse brytere muliggjør eksplisitt kobling av D-Bus og OpenSSL biblioteker inn i qt5 biblioteker i stedet for å dlopen()-ing dem.

-journald: Denne bryteren lar deg sende qt meldinger til journald loggingssystem.

$(cat tempconf): Denne kommandoen gir en liste over komponenter som ikke skal bygges. Disse oppføringene er i form av "-skip <component>".

Konfigurere qt5

Konfigurasjonsinformasjon

Hvis Sudo-1.9.15p5 er installert, skal QT5DIR være tilgjengelig for superbrukeren også. Utfør følgende kommandoer som root bruker:

cat > /etc/sudoers.d/qt << "EOF"
Defaults env_keep += QT5DIR
EOF

Hvis du installerte qt5 i /usr

Hvis du har installert qt5 i /usr, opprett en miljøvariabel som kreves av visse pakker. Som root bruker:

cat > /etc/profile.d/qt5.sh << "EOF"
# Begin /etc/profile.d/qt5.sh

QT5DIR=/usr
export QT5DIR

# End /etc/profile.d/qt5.sh
EOF

Hvis du ikke installerte qt5 i /usr

Hvis du har installert qt5 på et annet sted enn /usr, må du oppdatere følgende konfigurasjonsfiler slik at qt5 er riktig funnet av andre pakker og systemprosesser.

Som root bruker, oppdater /etc/ld.so.conf filen og den dynamiske linkeren kjøretidsbufferfil:

cat >> /etc/ld.so.conf << EOF
# Begin Qt addition

/opt/qt5/lib

# End Qt addition
EOF

ldconfig

Som root bruker, opprett /etc/profile.d/qt5.sh filen:

cat > /etc/profile.d/qt5.sh << "EOF"
# Begin /etc/profile.d/qt5.sh

QT5DIR=/opt/qt5

pathappend $QT5DIR/bin           PATH
pathappend $QT5DIR/lib/pkgconfig PKG_CONFIG_PATH

export QT5DIR

# End /etc/profile.d/qt5.sh
EOF

Innhold

Installerte Programmer: assistant, designer, fixqt4headers.pl, lconvert, linguist, lprodump, lrelease, lrelease-pro, lupdate, lupdate-pro, moc, pixeltool, qcollectiongenerator, qdbus, qdbuscpp2xml, qdbusviewer, qdbusxml2cpp, qdistancefieldgenerator, qdoc, qhelpgenerator, qlalr, qmake, qml, qmlcachegen, qmleasing, qmlformat, qmlimportscanner, qmllint, qmlmin, qmlplugindump, qmlpreview, qmlprofiler, qmlscene, qmltestrunner, qmltime, qmltyperegistrar, qtattributionscanner, qtdiag, qtpaths, qtplugininfo, qtwaylandscanner, qvkgen, rcc, syncqt.pl, tracegen, og uic
Installerte Biblioteker: libQt5AccessibilitySupport.a, libQt5Bootstrap.a, libQt5Concurrent.so, libQt5Core.so, libQt5DBus.so, libQt5Designer.so, libQt5DesignerComponents.so, libQt5DeviceDiscoverySupport.a, libQt5EdidSupport.a, libQt5EglFSDeviceIntegration.so, libQt5EglFsKmsSupport.so, libQt5EglSupport.a, libQt5EventDispatcherSupport.a, libQt5FbSupport.a, libQt5FontDatabaseSupport.a, libQt5GlxSupport.a, libQt5Gui.so, libQt5Help.so, libQt5InputSupport.a, libQt5KmsSupport.a, libQt5LinuxAccessibilitySupport.a, libQt5Network.so, libQt5OpenGL.so, libQt5OpenGLExtensions.a, libQt5PacketProtocol.a, libQt5PlatformCompositorSupport.a, libQt5PrintSupport.so, libQt5Qml.so, libQt5QmlDebug.a, libQt5QmlDevTools.a, libQt5QmlModels.so, libQt5QmlWorkerScript.so, libQt5Quick.so, libQt5QuickParticles.so, libQt5QuickShapes.so, libQt5QuickTest.so, libQt5QuickWidgets.so, libQt5ServiceSupport.a, libQt5Sql.so, libQt5Svg.so, libQt5Test.so, libQt5ThemeSupport.a, libQt5UiTools.a, libQt5WaylandClient.so, libQt5WaylandCompositor.so, libQt5Widgets.so, libQt5X11Extras.so, libQt5XcbQpa.so, libQt5XkbCommonSupport.a, libQt5Xml.so, og flere programtillegg under /opt/qt5/{plugins,qml}
Installerte Mapper: /usr/include/qt5, /usr/lib/qt5, /usr/share/doc/qt5, og /usr/share/qt5 ELLER /opt/qt5 og /opt/qt-5.15.12

Korte Beskrivelser

Se Qt5 Korte Beskrivelser