Linux 安装Qt 5.8后,所有Qt应用程序都停止工作
各位! 我有点问题。我的操作系统是Ubuntu 16.04 LTS x64。Apt只提供Qt5.5.1作为最新版本,但我需要在5.6以上安装Qt(我使用Qt5.8),因为我需要编译一个内部工具(需要Qt>=5.6) 但在安装Qt5.8之后(不幸的是,我使用了安装程序,这是他们网站上建议的,而不是从git存储库编译的),我犯了一个战略错误。系统没有接收到它,但我没有为qtchooser设置额外的配置文件,而是决定将所有库复制到/usr/bin/x86_64-linux-gnu,包括更改所有libQt5*.so.5符号链接。我不知道我为什么要这么做。。。可能是我喝醉了,或者是太累了。。。但现在我意识到,这是愚蠢的 之后,我卸载了Qt5.8,保留了原来的Qt5.5.1和Qt 4.8.7(都是通过apt安装的) 问题是,在所有(至少看起来是所有)来自apt存储库的qt应用程序停止工作后,出现以下错误:Linux 安装Qt 5.8后,所有Qt应用程序都停止工作,linux,qt,ubuntu,qt5.5,Linux,Qt,Ubuntu,Qt5.5,各位! 我有点问题。我的操作系统是Ubuntu 16.04 LTS x64。Apt只提供Qt5.5.1作为最新版本,但我需要在5.6以上安装Qt(我使用Qt5.8),因为我需要编译一个内部工具(需要Qt>=5.6) 但在安装Qt5.8之后(不幸的是,我使用了安装程序,这是他们网站上建议的,而不是从git存储库编译的),我犯了一个战略错误。系统没有接收到它,但我没有为qtchooser设置额外的配置文件,而是决定将所有库复制到/usr/bin/x86_64-linux-gnu,包括更改所有libQ
:~$ retext
Using configuration file: ~/.config/ReText project/ReText.conf
This application failed to start because it could not find or load the Qt platform plugin "xcb".
Reinstalling the application may fix this problem.
Aborted (core dumped)
我测试了retext,qbittorrent,vlc。。。很明显,我试着重新安装这些应用程序。这对我没有帮助
我已经看到了一些关于这类错误的问题和教程,但大多数问题和教程建议检查/path/to/qt/plugins/platforms/中的libqxcb.so库,并检查它是否缺少任何依赖项。恢复依赖关系对每个人都有帮助。但不是我。以下是依赖项列表:
:/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms$ ldd libqxcb.so
linux-vdso.so.1 => (0x00007ffeb5fc4000)
libQt5XcbQpa.so.5 => /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 (0x00007f9c2aa62000)
libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007f9c2a51a000)
libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007f9c2a043000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9c29cc1000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9c298f8000)
libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f9c296f5000)
libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007f9c294e5000)
libxcb-render-util.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-render-util.so.0 (0x00007f9c292e1000)
libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6 (0x00007f9c290d8000)
libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6 (0x00007f9c28ebe000)
libxcb-render.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f9c28cb4000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f9c28a91000)
libxcb-image.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-image.so.0 (0x00007f9c2888c000)
libxcb-icccm.so.4 => /usr/lib/x86_64-linux-gnu/libxcb-icccm.so.4 (0x00007f9c28687000)
libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007f9c2847f000)
libxcb-xfixes.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0 (0x00007f9c28277000)
libxcb-shm.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007f9c28073000)
libxcb-randr.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0 (0x00007f9c27e64000)
libxcb-shape.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shape.so.0 (0x00007f9c27c60000)
libxcb-keysyms.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-keysyms.so.1 (0x00007f9c27a5d000)
libxcb-xkb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-xkb.so.1 (0x00007f9c27841000)
libxkbcommon-x11.so.0 => /usr/lib/x86_64-linux-gnu/libxkbcommon-x11.so.0 (0x00007f9c27639000)
libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f9c273f6000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f9c2714b000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f9c26e3a000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f9c26b00000)
libxkbcommon.so.0 => /usr/lib/x86_64-linux-gnu/libxkbcommon.so.0 (0x00007f9c268c0000)
libQt5DBus.so.5 => /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5 (0x00007f9c26842000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9c26625000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9c2631b000)
libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f9c260f6000)
libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007f9c25e97000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f9c25c7d000)
libGL.so.1 => /usr/lib/nvidia-375/libGL.so.1 (0x00007f9c259d9000)
libicui18n.so.55 => /usr/lib/x86_64-linux-gnu/libicui18n.so.55 (0x00007f9c25576000)
libicuuc.so.55 => /usr/lib/x86_64-linux-gnu/libicuuc.so.55 (0x00007f9c251e2000)
libpcre16.so.3 => /usr/lib/x86_64-linux-gnu/libpcre16.so.3 (0x00007f9c24f7c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9c24d77000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f9c24b6f000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9c24959000)
/lib64/ld-linux-x86-64.so.2 (0x000055a753a16000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f9c24746000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f9c24541000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f9c2433c000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f9c24136000)
libxcb-util.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-util.so.1 (0x00007f9c23f30000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f9c23d06000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f9c23a96000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f9c23849000)
libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f9c23624000)
libGLX.so.0 => /usr/lib/nvidia-375/libGLX.so.0 (0x00007f9c233f3000)
libGLdispatch.so.0 => /usr/lib/nvidia-375/libGLdispatch.so.0 (0x00007f9c23125000)
libicudata.so.55 => /usr/lib/x86_64-linux-gnu/libicudata.so.55 (0x00007f9c2166e000)
libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007f9c215e8000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f9c213c6000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f9c211a3000)
libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007f9c20ec2000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f9c20cae000)
还有人建议重新安装libQt5Gui5软件包,我也这么做了,但也没有帮助
最后,我发现libqxcb.so(位于/path/to/qt/plugins/platforms/)使用它自己的路径,库libQt5DBus.so.5和libQt5XcbQpa.so.5应该位于同一目录中。尽管所有依赖项看起来都很满意,但我还是决定尝试一下。又没运气了
如果有人知道还有什么问题,以及如何解决这种情况,请分享[想法]。我真的很感激任何帮助
事先非常感谢
致以最诚挚的问候。事实上,您学到了一个昂贵的教训——
永远不要手动更换Linux系统库。
:-)
因此,首先,您应该在主目录中安装Qt库,并向QtCreator添加一个新的Qt工具包来链接它。(以下是有关如何将自定义Qt工具包添加到QtCreator的更多信息:)
现在,我要做的是解决这个问题:
dpkg-l Qt5-5-1>Qt5_file_list.txt
(您应使用包的确切名称替换Qt5-5-1
)$apt缓存取决于[qt5包的名称]
然后重新安装:$apt get install——重新安装[package]
D“如何解决这种情况”回滚到开始处理之前拍摄的LVM快照
我想如果你不得不问的话,你不会利用LVM,所以现在你会知道它不是为了制造麻烦,而是为了防止严重的破损
不合时宜的是,强行删除所有Qt5库,然后重新安装它们并没有帮助。我甚至无法想象重新安装所有的依赖项需要多长时间,因为有成千上万的依赖项。。。大约有100个Qt5软件包。我试图重新安装libqt5core5a和libqt5gui5的依赖项(最后一个实际上包含xcb插件),但仍然收到相同的错误。还有一件事,我错过了。。。如果您有任何额外的想法,我们将不胜感激。好吧,如果这个问题仍然没有解决,那么我的建议是:停止花时间试图找到解决方案。备份您的数据(包括应用程序数据;-)和配置,重新安装Ubuntu,在完成所有安装后制作快照,并从错误中吸取教训:-)抱歉,@Danyright。我在原始消息下留下了评论,而不是在这里,因为它与替代解决方案相关,而不是您的。可能没有你的解决方案,虽然这个方案不起作用,我不知道。现在很难说,但现在看来一切正常。好的,很高兴知道你修好了。请毫不犹豫地对帮助您的答案进行投票,并将您的解决方案作为正式答案发布;-)令人惊讶的是,在我尝试删除并重新安装所有libqt5包以及所有xcb库和几个额外的库(Qt5依赖于这些库)之后,我遇到了这个非常简单而优雅的解决方案。而且效果非常好。在任何情况下,我都要感谢所有为这个问题贡献时间的人,因为这对我理解应该做什么有很大帮助