Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 安装Qt 5.8后,所有Qt应用程序都停止工作_Linux_Qt_Ubuntu_Qt5.5 - Fatal编程技术网

Linux 安装Qt 5.8后,所有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

各位!

我有点问题。我的操作系统是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应用程序停止工作后,出现以下错误:

:~$ 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的更多信息:)

现在,我要做的是解决这个问题:

  • 获取属于Qt5包的文件列表,并将其保存到一个文件:
    dpkg-l Qt5-5-1>Qt5_file_list.txt
    (您应使用包的确切名称替换
    Qt5-5-1
  • 完全删除任何系统Qt5库
  • 确保没有Qt5文件(尤其是手动创建的符号链接)
  • 应用所有最新的Ubuntu更新(如果有)
  • 重新安装官方Qt5库软件包
  • 重新启动
  • 让我知道这是否有帮助

    如果没有,您必须检查Qt5的依赖项并重新安装它们。为此:
    $apt缓存取决于[qt5包的名称]
    然后重新安装:
    $apt get install——重新安装[package]

    D

    “如何解决这种情况”回滚到开始处理之前拍摄的LVM快照

    我想如果你不得不问的话,你不会利用LVM,所以现在你会知道它不是为了制造麻烦,而是为了防止严重的破损

  • 确保您的文件系统位于LVM卷上,并且还有空间用于快照。大多数发行版都希望已经为您设置了LVM,因此如果您没有剩余空间,就必须缩小文件系统以释放一些空间。否则,您将不得不将磁盘转换为LVM。使用SystemRescue CD或任何其他良好的live发行版来完成此操作

  • 拍一张快照

  • 强制移除系统Qt包(全部)

  • 强制重新安装系统Qt软件包

  • 验证系统Qt应用程序是否正常工作

  • 拍一张快照

  • 在主文件夹中重新安装Qt

  • 确保一切正常,您可以使用新的Qt

  • 如果愿意,请删除快照


  • 不合时宜的是,强行删除所有Qt5库,然后重新安装它们并没有帮助。我甚至无法想象重新安装所有的依赖项需要多长时间,因为有成千上万的依赖项。。。大约有100个Qt5软件包。我试图重新安装libqt5core5a和libqt5gui5的依赖项(最后一个实际上包含xcb插件),但仍然收到相同的错误。还有一件事,我错过了。。。如果您有任何额外的想法,我们将不胜感激。好吧,如果这个问题仍然没有解决,那么我的建议是:停止花时间试图找到解决方案。备份您的数据(包括应用程序数据;-)和配置,重新安装Ubuntu,在完成所有安装后制作快照,并从错误中吸取教训:-)抱歉,@Danyright。我在原始消息下留下了评论,而不是在这里,因为它与替代解决方案相关,而不是您的。可能没有你的解决方案,虽然这个方案不起作用,我不知道。现在很难说,但现在看来一切正常。好的,很高兴知道你修好了。请毫不犹豫地对帮助您的答案进行投票,并将您的解决方案作为正式答案发布;-)令人惊讶的是,在我尝试删除并重新安装所有libqt5包以及所有xcb库和几个额外的库(Qt5依赖于这些库)之后,我遇到了这个非常简单而优雅的解决方案。而且效果非常好。在任何情况下,我都要感谢所有为这个问题贡献时间的人,因为这对我理解应该做什么有很大帮助