qt-alternate-5.15.12

Introdução ao qt5 (alternar)

Qt5 é uma estrutura de aplicação multiplataforma que é amplamente usada para desenvolver software de aplicação com uma interface gráfica de usuário(a) (GUI) (nesses casos qt5 é classificado como um kit de ferramentas de pequena engenhoca) e também usada para desenvolver aplicativos não GUI, como ferramentas de linha de comando e consoles para servidores. Dois dos principais usuários do qt são o KDE Frameworks 5 (KF5) e o LXQt.

[Importante]

Importante

O pacote qt5 completo consiste em quarenta e três (43) componentes. Estas instruções usam um pequeno subconjunto das instruções completas de instalação do qt5 acima. Elas cobrem a maioria, mas não todos, dos componentes necessários para construir pacotes no BLFS. Esta página e a próxima são fornecidas para reduzir a quantidade de tempo, espaço e dependências necessárias para construir esses pacotes. Elas não são recomendadas se você construirá o ambiente de área de trabalho Plasma-5.27.10 baseado em Plasma-5.27.10.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.1.

Informação do Pacote

Transferências Adicionais

Dependências do qt5

Exigidas

Bibliotecas do Xorg

Recomendadas

Opcionais

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

Configurando o prefixo de instalação

Instalando em /opt/qt5

Os(As) editores(as) do BLFS recomendam instalar o qt5 em um diretório diferente de /usr, ou seja, /opt/qt5 . Para fazer isso, configure a seguinte variável de ambiente:

export QT5PREFIX=/opt/qt5
[Dica]

Dica

Ocasionalmente, os caminhos de instalação são rigidamente codificados nos arquivos instalados. Essa é a razão pela qual /opt/qt5 é usado como prefixo de instalação em vez de /opt/qt-5.15.12. Para criar um diretório versionado do qt5 depois que a instalação estiver completa, você pode renomear o diretório e criar um link simbólico:

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

Mais tarde, você pode querer instalar outras versões do qt5. Para fazer isso, apenas remova o link simbólico e use /opt/qt5 como prefixo novamente. Qual versão do qt5 você usa depende somente de onde o link simbólico aponta.

Instalação do qt5

[Atenção]

Atenção

Se o qt5 estiver sendo reinstalado no mesmo diretório de uma instância existente, execute os comandos feitos por root, como make install, a partir de um console ou gerenciador de janelas não baseado em qt5. Ele sobrescreve bibliotecas do qt5 que não deveriam estar em uso durante o processo de instalação.

[Cuidado]

Cuidado

Se você não instalou alguma das dependências recomendadas, examine a saída gerada de ./configure --help para verificar como desabilitá-las ou usar versões internas incluídas no tarball do fonte.

[Nota]

Nota

Os(As) editores(as) do BLFS não recomendam instalar o qt5 na hierarquia /usr porque se torna difícil encontrar componentes e atualizar para uma nova versão. Se você efetivamente desejar instalar o qt5 em /usr, os diretórios precisam ser especificados explicitamente. Nesse caso, configure QT5PREFIX=/usr e adicione o seguinte aos argumentos de configuração abaixo:

            -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

Agora aplique um remendo para obter as correções selecionadas pelo KDE para aqueles módulos que sejam exigidos pelos pacotes mencionados neste livro:

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

Presume-se que o remendo seja usado em um repositório git. Caso contrário, alguns arquivos que deveriam ser modificados pelo configure depois de aplicar o remendo não seriam tocados. Felizmente, é suficiente criar um diretório .git no diretório qmake onde o conjunto de comandos sequenciais configure for executado:

mkdir -pv qtbase/.git

Corrija uma vulnerabilidade de segurança no qtbase:

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

Neste ponto, queremos configurar o salto da maioria dos componentes. Faça isso com:

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

Agora, instale o qt5 executando os seguintes comandos:

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

Esse pacote não vem com uma suíte de teste.

Agora, como o(a) usuário(a) root:

make install

Remova referências para o diretório de construção dos arquivos de dependência de biblioteca (prl) instalados executando o seguinte comando como o(a) usuário(a) root:

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

Instale imagens e crie entradas de menu para aplicativos instalados. A variável QT5BINDIR é usada aqui para apontar para o diretório dos aplicativos executáveis. Se você tiver mudado o bindir acima, QT5BINDIR precisará ser ajustado abaixo. Certifique-se de que a variável QT5BINDIR esteja definida no ambiente do(a) root e como o(a) usuário(a) root:

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=Assistente Qt5
Comment=Mostra documentação e exemplos do Qt5
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=Projetista Qt5
GenericName=Projetista de Interface
Comment=Projetar GUIs para aplicativos Qt5
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=Linguista Qt5
Comment=Adicionar traduções a aplicativos Qt5
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=Depurador do D-Bus
Comment=Depurar aplicativos do D-Bus
Exec=$QT5BINDIR/qdbusviewer
Icon=qdbusviewer-qt5.png
Terminal=false
Encoding=UTF-8
Type=Application
Categories=Qt;Development;Debugger;
EOF

Alguns pacotes, como VLC-3.0.20, procuram determinados executáveis com um sufixo -qt5. Execute o seguinte comando como o(a) usuário(a) root para criar os links simbólicos necessários:

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

Explicações do Comando

-confirm-license: Aceite a licença sem avisar o(a) usuário(a) durante a configuração.

-opensource: Instale a versão de fonte aberto do qt.

-nomake examples: Essa chave desabilita a construção dos programas de exemplo incluídos no tarball do fonte. Remova-a se quiser construí-los.

-system-sqlite: Essa chave habilita uso da versão do sistema do SQLite.

-system-harfbuzz: Essa chave habilita o uso da versão do sistema do Harfbuzz.

-dbus-linked -openssl-linked: Essas chaves habilitam vinculação explícita das bibliotecas do D-Bus e do OpenSSL nas bibliotecas do qt5 em vez de abri-las com dlopen().

-journald: Essa chave permite enviar mensagens qt para o sistema de registro journald.

$(cat tempconf): Esse comando fornece uma lista de componentes que não deveriam ser construídos. Essas entradas estão no formato "-skip <componente>".

Configurando o qt5

Informação de Configuração

Se o Sudo-1.9.15p5 estiver instalado, QT5DIR também deveria estar disponível para o(a) superusuário(a). Execute os seguintes comandos como o(a) usuário(a) root:

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

Se você instalou qt5 em /usr

Se você instalou o qt5 em /usr, crie uma variável de ambiente necessária para certos pacotes. Como o(a) usuário(a) root:

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

QT5DIR=/usr
export QT5DIR

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

Se você não instalou qt5 em /usr

Se você instalou o qt5 em um local diferente de /usr, você precisa atualizar os seguintes arquivos de configuração, de forma que o qt5 seja encontrado corretamente por outros pacotes e processos do sistema.

Como o(a) usuário(a) root, atualize o arquivo /etc/ld.so.conf e o arquivo de cache de tempo de execução do vinculador dinâmico:

cat >> /etc/ld.so.conf << EOF
# Inicia adição do Qt

/opt/qt5/lib

# Termina adição do Qt
EOF

ldconfig

Como o(a) usuário(a) root, crie o arquivo /etc/profile.d/qt5.sh:

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

QT5DIR=/opt/qt5

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

export QT5DIR

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

Conteúdo

Aplicativos Instalados: 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 e uic
Bibliotecas Instaladas: 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 e vários plugins sob /opt/qt5/{plugins,qml}
Diretórios Instalados: /usr/include/qt5, /usr/lib/qt5, /usr/share/doc/qt5 e /usr/share/qt5 OU /opt/qt5 e /opt/qt-5.15.12

Descrições Curtas

Vejam-se Qt5 Short Descriptions