前段时间因为安装Truri 而更新、安装了一些QT库,导致系统原来的浏览器qutebrowser异常。在调试过程中,重装、修改了qt库,导致chrome浏览器异常。苦啊!除了firefox浏览器还在坚持工作,其它两个qutebrowser和chrome已经无法打开了。
最终通过删除qt6和qt6-base库,然后重新pkg install qutebrowser解决
问题:qutebrowser浏览器无法启动
qutebrowser报错 No backend library found
qutebrowser needs QtWebKit or QtWebEngine, but neither could be imported!
The errors encountered were:
- QtWebKit: Unavailable with PyQt6
- QtWebEngine: /usr/local/lib/qt6/libQt6WebEngineCore.so.6: Undefined symbol "_ZN6snappy11RawCompressEPKcmPcPmNS_18CompressionOptionsE"
Qt wrapper info:
PyQt6: success
PyQt5: not imported
-> selected: PyQt6 (via autoselect)
尝试解决问题
尝试安装qt6
尝试安装:pkg install qt6-base
不管用。
咨询文心一言,它建议更新snappy
尝试更新snappy
pkg install snappy
现在报错变成:
qutebrowser
failed to authenticate magic 1
failed to load driver: iris
23:13:29 INFO: Run :adblock-update to get adblock lists.
23:13:29 CRITICAL: Cannot mix incompatible Qt library (6.6.1) with this library (6.6.3)
终止陷阱(核心已转储)
文心一言的答复:
这个新的错误消息指出几个不同的问题,我将逐一解释并提供可能的解决方案:
-
failed to authenticate magic 1 和 failed to load driver: iris:
这两个错误可能与图形驱动程序或 GPU 加速有关。iris
通常是 Intel 图形驱动程序的名称。如果 qutebrowser 试图加载一个图形驱动程序但没有成功,可能是因为你的系统上缺少必要的依赖项或驱动程序没有正确安装。解决方案可能包括:
- 确保你的图形驱动程序是最新的。
- 如果你是在使用 Linux 发行版,请确保你的系统已经安装了所有必要的图形库和驱动程序。
- 尝试在 qutebrowser 的设置或命令行参数中禁用 GPU 加速。
-
CRITICAL: Cannot mix incompatible Qt library (6.6.1) with this library (6.6.3):
这个错误表明 qutebrowser 试图混合使用不同版本的 Qt 库。这通常是因为系统上安装了多个版本的 Qt,或者 qutebrowser 使用的某个依赖项(如 PyQt)与 qutebrowser 本身期望的 Qt 版本不匹配。解决方案可能包括:
- 确保你安装了与 qutebrowser 兼容的 PyQt 版本。如果 qutebrowser 需要 PyQt6 并且你安装了 PyQt5,或者 PyQt6 的版本不匹配,你需要调整 PyQt 的版本。
- 如果你使用包管理器(如 pip)安装 PyQt,可以使用
pip list
检查 PyQt 的版本,并使用pip install
命令进行升级或降级。 - 如果可能的话,尝试删除系统上所有 Qt 和 PyQt 的版本,然后重新安装与 qutebrowser 兼容的版本。
-
终止陷阱(核心已转储):
这表明 qutebrowser 崩溃了,并且生成了一个核心转储文件,该文件包含崩溃时的内存状态,通常用于调试。
为了解决这个问题,你可能需要更深入地了解你的系统配置和 qutebrowser 的依赖项。以下是一些步骤,你可以尝试来诊断和解决问题:
- 检查 qutebrowser 的官方文档,看看是否有关于这些错误的特定说明或解决方案。
- 在 qutebrowser 的社区论坛或 GitHub 仓库中搜索类似的错误报告。
- 使用
pkg
命令(如果你在使用 FreeBSD 或类似的系统)来确保所有相关包都是最新的,并且没有相互冲突的版本。 - 尝试卸载并重新安装 qutebrowser 和其所有依赖项。
- 如果问题仍然存在,考虑在 qutebrowser 的 GitHub 仓库中提交一个 bug 报告,并附上尽可能多的信息和系统日志。
尝试重装qutebrwser
执行命令:
pkg remove qutebrowser
Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):
Installed packages to be REMOVED:
qutebrowser: 3.1.0
Number of packages to be removed: 1
The operation will free 8 MiB.
Proceed with deinstalling packages? [y/N]: y
[1/1] Deinstalling qutebrowser-3.1.0...
[1/1] Deleting files for qutebrowser-3.1.0: 100%
==> Running trigger: desktop-file-utils.ucl
Building cache database of MIME types
pkg install qutebrowser
重装后提示:
If you get wrong colors when watching videos, this is probably because your
system does not support hardware acceleration (see bug 237277): you can
disable it by starting the browser from command line with the
--qt-flag disable-gpu option:
qutebrowser --qt-flag disable-gpu
Or you can set 'qt.force_software_rendering' qutebrowser option to 'chromium':
:set qt.force_software_rendering chromium
按照提示执行 qutebrowser --qt-flag disable-gpu还是崩溃。
运行qutebrowser报错:
Cannot mix incompatible Qt library (6.6.1) with this library (6.6.3)
怀疑是前面安装tauri的把webkit弄出问题来了。前面安装命令:
pkg install webkit2-gtk4
删除它
pkg remove webkit2-gtk4
还是不行
更新qt版本到6.6.0
pkg search qt
当前最新的qt版本 qt6-6.7.0, qt5是qt5-5.15.13
重新安装qt6-6.7.0
pkg install qt6
但是安装完之后还是提示:Qt library (6.6.1) with this library (6.6.3)
到ports里面去,
cd /usr/ports/devel//qt6
发现版本还是6.6.1
make deinstall ; make reinstall
安装完之后问题依旧。
尝试安装qtcreator
pkg install qtcreator
速度有点慢,来回调镜像和网络,
中间一度把pkg库搞崩了,提示:need to re-create database
pkg 其它命令都不管用了,尝试使用命令修复
pkg -dd update -f
修复过程中,发现报错,原来中科大的镜像库返回的是ipv6地址...
赶快把ipv6配上去
安装好后,又把qt6重新安装了一遍,
执行qtcreator 报错:
ld-elf.so.1: /usr/local/lib/qt6/libQt6Core.so.6: version Qt_6.7 required by /usr/local/bin/qtcreator not found
运行qutebrowser报错照旧。
明明目录里有那个文件啊,有libQt6Core.so.6这个文件,而且它的指向是libQt6Core.so.6.6.3 也没有问题 。
百思不得其解,重启系统。
重启系统
问题依旧
安装了qt6-base
pkg install qt6-base
再启动qutebrowser,有改观,以前的报错没有了,有了新的报错,显示QtWidgets有问题
安装了py39-qt6-pyqt
pkg install py39-qt6-pyqt
解决了前面的报错问题,有了新的报错,其实就是回到了几乎最前面的问题:
qutebrowser nedds QtWebKit or QtWebEngine ,but neither could be imported!
QtWebKit:Unavaiable with PyQt6
QtWebEngine:/usr/local/lib/qt6/libQt6Quick.so.6:Undefined symbol "_ZN5QFont11stringToTagEPKc@Qt_6"
见证奇迹的时刻
删除qt6
pkg remove qt6 qt6-base
结果:
qutebrowser
qutebrowser: Command not found.
原来删除qt6的时候把qutebrowser也删除了。
再安装qutebrowser
pkg install qutebrowser
安装qutebrowser同时就自动安装好了qt6-base,但是不会自动安装qt6
试试,哇,qutebrowser竟然能用了啊!
不知道是不是qt6这个库干扰的原因,也就是只需要安装qt6-base,而不安装qt6,问题解决。
未解决的问题
chrome还是没解决问题,有报错
ld-elf.so.1: /usr/local/share/chromium/chrome: Undefined symbol "_ZN6snappy11RawCompressEPKcmPcPm"
后来装了另一个linux兼容版本的chrome:pkg install linux-chrome
同时由于删除qt6和qt6-base,导致一批软件也被删除了,比如原来习惯使用的看系统资源的一个小软件。
结论:
以后再也不在自己的主环境乱调QT了,太危险了!