Estou executando o Ubuntu 16.10 com o Qt4.8.7 e gostaria de instalar o Qt5 para compilar um pacote. Eu instalei qt5-qmake
do repositório e configurei o padrão para qt5:
export QT_SELECT=qt5
./configure && make
...fatal error: QtCore/QTextCodec: No such file or directory
Portanto, o pacote não seria compilado, aparentemente por causa de uma instrução include:
include "<"QtCore/QtGlobal
para o qual eu acho que preciso do ambiente de desenvolvimento. Primeiro, eu tentei instalá-lo a partir do site Qt, baixando qt-opensource-linux-x64-5.6.1.run, então eu tentei instalar o qtbase5-dev
do Synaptic.
Isso não funcionou devido a dependências não atendidas. Todos os arquivos instalados mencionados são versões ubuntu7-2 do repositório principal do Ubuntu Yakkety; as versões necessárias do ubuntu6-4 também estão disponíveis. Eles também são usados em muitos outros pacotes que não posso me dar ao luxo de quebrar.
$ sudo aptitude install qtbase5-dev
The following NEW packages will be installed: libegl1-mesa-dev{a} libgles2-mesa-dev{a} libglu1-mesa-dev{a} libmirclient-dev{ab} libmircommon-dev{ab} libmircookie-dev{ab} libprotobuf-dev{a} libqt5opengl5-dev{ab} libwayland-bin{a} libwayland-dev{a} libxkbcommon-dev{a} qt5-qmake{a} qtbase5-dev{b} qtbase5-dev-tools{a}
0 packages upgraded, 14 newly installed, 0 to remove and 8 not upgraded.
Need to get 4,473 kB of archives. After unpacking 33.6 MB will be used.
The following packages have unmet dependencies:
libqt5opengl5-dev : Depends: libqt5opengl5 (= 5.6.1+dfsg-3ubuntu6~4) but 5.6.1+dfsg-3ubuntu7~2 is installed
libmirclient-dev : Depends: libmirclient9 (= 0.24.0+16.10.20160815.3-0ubuntu2) but 0.24.1+16.10.20160928-0ubuntu1 is installed
libmircommon-dev : Depends: libmircommon6 (= 0.24.0+16.10.20160815.3-0ubuntu2) but 0.24.1+16.10.20160928-0ubuntu1 is installed
qtbase5-dev : Depends: libqt5concurrent5 (= 5.6.1+dfsg-3ubuntu6~4) but 5.6.1+dfsg-3ubuntu7~2 is installed
Depends: libqt5core5a (= 5.6.1+dfsg-3ubuntu6~4) but 5.6.1+dfsg-3ubuntu7~2 is installed
Depends: libqt5dbus5 (= 5.6.1+dfsg-3ubuntu6~4) but 5.6.1+dfsg-3ubuntu7~2 is installed
Depends: libqt5gui5 (= 5.6.1+dfsg-3ubuntu6~4) but 5.6.1+dfsg-3ubuntu7~2 is installed
Depends: libqt5network5 (= 5.6.1+dfsg-3ubuntu6~4) but 5.6.1+dfsg-3ubuntu7~2 is installed
Depends: libqt5printsupport5 (= 5.6.1+dfsg-3ubuntu6~4) but 5.6.1+dfsg-3ubuntu7~2 is installed
Depends: libqt5sql5 (= 5.6.1+dfsg-3ubuntu6~4) but 5.6.1+dfsg-3ubuntu7~2 is installed
Depends: libqt5test5 (= 5.6.1+dfsg-3ubuntu6~4) but 5.6.1+dfsg-3ubuntu7~2 is installed
Depends: libqt5widgets5 (= 5.6.1+dfsg-3ubuntu6~4) but 5.6.1+dfsg-3ubuntu7~2 is installed
Depends: libqt5xml5 (= 5.6.1+dfsg-3ubuntu6~4) but 5.6.1+dfsg-3ubuntu7~2 is installed
libmircookie-dev : Depends: libmircookie2 (= 0.24.0+16.10.20160815.3-0ubuntu2) but 0.24.1+16.10.20160928-0ubuntu1 is installed
The following actions will resolve these dependencies:
Keep the following packages at their current version: 1) libegl1-mesa-dev [Not Installed] 2) libgles2-mesa-dev [Not Installed]
3) libmirclient-dev [Not Installed]
4) libmircommon-dev [Not Installed]
5) libmircookie-dev [Not Installed]
6) libqt5opengl5-dev [Not Installed]
7) qtbase5-dev [Not Installed]
Accept this solution? [Y/n/q/?] ?
A solução do Apt-get é deixá-lo inalterado.
Parece estranho que a versão principal do repositório do Qt 5.6.1 requeira bibliotecas diferentes para os outros pacotes.
Parece que eu preciso fazer o downgrade dessas bibliotecas de 7.2 para 6.4. Posso fazer isso com segurança e instalar o Qt 5.6.1? Ou existe uma maneira melhor de resolver o problema?
$ apt-cache policy libqt5core5a
libqt5core5a:
Installed: 5.6.1+dfsg-3ubuntu7~2
Candidate: 5.6.1+dfsg-3ubuntu7~2
Version table:
*** 5.6.1+dfsg-3ubuntu7~2 100
100 /var/lib/dpkg/status
5.6.1+dfsg-3ubuntu6~4 500
500 http://mirrors.psu.ac.th/ubuntu yakkety/main amd64 Packages
Eu finalmente resolvi isso usando o Synaptic para forçar as dependências do qtbase5-dev para as versões anteriores (Yakkety-upgrades ou Yakkety).
Isso deixou os arquivos libmir. A instalação manual deles falhou, mas mostra as dependências problemáticas. Repetir as dependências e trabalhar com elas acabou levando a um ou dois arquivos que precisavam ser rebaixados.
Forçar isso via Synaptic também removeu uma série de aplicativos básicos da Yakkety; É uma pena não conseguir encontrar uma maneira de fazer o downgrade deles em paralelo, mantendo um sistema consistente, mas no final eu os liberto, instalei o Qt5 e reinstalei manualmente os pacotes perdidos usando o status do Synaptic 'Not installed (residual config) seção para identificá-los e reinstalá-los.
Eu tive alguns pequenos problemas com pacotes relacionados à segurança na reinicialização, mas resolvi rapidamente com o Google.