Qv2ray: archlinux libprotobuf.so.22: cannot open shared object file

Created on 2 Jun 2020  ·  16Comments  ·  Source: Qv2ray/Qv2ray

  • [x] 我确定我已经尝试多次复现此次问题,并且将会提供涉及此问题的系统环境,每个软件及其版本。

我们建议您按照下方模板填写 Bug Report,以便我们收集更多的有效信息

简单描述这个 Bug:

2020-06-02 Syu后qv2ray无法启动

查过history未对系统进行过特殊操作

archlinux amd64
启动后提示

$ qv2ray
qv2ray: error while loading shared libraries: libprotobuf.so.22: cannot open shared object file: No such file or directory

然后退出

如何复现这个 Bug:

  1. shell qv2ray


    1. 3.
  2. 4.

如果是连接问题,在其他 v2ray 客户端里出现过吗?

N/A

相关截图或日志

Qv2ray 日志:

N/A

系统信息 (请删掉不符合的项)

受影响的 Qv2ray 安装平台

  • Linux

受影响的 Qv2ray 安装源

  • ArchLinuxCN - 稳定版

已安装的插件 & 插件安装源:

qv2ray-plugin-ssr-git 20200524.r54.687225a-1
qv2ray-plugin-trojan-git 20200524.r28.1f42492-1

首选项 -> 关于信息:

N/A

$ pacman -Qii qv2ray
名字           : qv2ray
版本           : 2.5.0-3
描述           : Cross-platform V2ray Client written in Qt (Stable Release)
架构           : x86_64
URL            : https://github.com/Qv2ray/Qv2ray
软件许可       : GPL3
组             : 无
提供           : qv2ray
依赖于         : hicolor-icon-theme  qt5-base>5.11.0  grpc>=1.27.0  zxing-cpp
可选依赖       : v2ray: use system v2ray core. [已安装]
依赖它         : qv2ray-plugin-ssr-git  qv2ray-plugin-trojan-git
被可选依赖     : 无
与它冲突       : qv2ray
取代           : 无
安装后大小     : 3.58 MiB
打包者         : lilac (on behalf of DuckSoft) <[email protected]>
编译日期       : Mon 01 Jun 2020 02:15:51 AM CST
安装日期       : Tue 02 Jun 2020 11:30:23 PM CST
安装原因       : 单独指定安装
安装脚本       : 否
验证者         : 数字签名
备份文件       :
(无)

$ pacman -Qii v2ray 
名字           : v2ray
版本           : 4.23.3-1
描述           : A platform for building proxies to bypass network restrictions
架构           : x86_64
URL            : https://github.com/v2ray/v2ray-core
软件许可       : MIT
组             : 无
提供           : 无
依赖于         : glibc  v2ray-domain-list-community  v2ray-geoip
可选依赖       : 无
依赖它         : 无
被可选依赖     : qv2ray
与它冲突       : 无
取代           : 无
安装后大小     : 40.11 MiB
打包者         : Felix Yan <[email protected]>
编译日期       : Mon 01 Jun 2020 11:44:14 PM CST
安装日期       : Tue 02 Jun 2020 11:22:02 PM CST
安装原因       : 单独指定安装
安装脚本       : 否
验证者         : 数字签名
备份文件       :
UNMODIFIED      /etc/v2ray/config.json

$ pacman -Qii protobuf 
名字           : protobuf
版本           : 3.12.0-1
描述           : Protocol Buffers - Google's data interchange format
架构           : x86_64
URL            : https://developers.google.com/protocol-buffers/
软件许可       : BSD
组             : 无
提供           : libprotoc.so=23-64  libprotobuf.so=23-64  libprotobuf-lite.so=23-64
依赖于         : gcc-libs  glibc  zlib
可选依赖       : 无
依赖它         : grpc
被可选依赖     : vlc
与它冲突       : 无
取代           : protobuf-cpp
安装后大小     : 9.22 MiB
打包者         : Lukas Fleischer <[email protected]>
编译日期       : Mon 18 May 2020 12:13:11 AM CST
安装日期       : Tue 02 Jun 2020 11:18:30 PM CST
安装原因       : 作为其他软件包的依赖关系安装
安装脚本       : 否
验证者         : 数字签名
备份文件       :
(无) 

其他信息

tuna源,未开启32位,未开启测试源

$ sudo ldconfig -v | grep proto
ldconfig: 无法对 /usr/libx32 进行 stat 操作: 没有那个文件或目录
libprotoc.so.23 -> libprotoc.so.23.0.0
libgstdataprotocol-0.10.so.0 -> libgstdataprotocol-0.10.so.0.30.0
libprotobuf-lite.so.23 -> libprotobuf-lite.so.23.0.0
libprotobuf.so.23 -> libprotobuf.so.23.0.0

你认为对我们修复bug有帮助的任何信息都可以在这里写出来:

Upstream distribution

Most helpful comment

根本原因是 arch 仓库里的 Protobuf 发生了大版本更新,需要 Rebuild。
你可以暂时使用 aur 里的构建(yay -S qv2ray --aur)。我们会通知上游重新构建。

感谢你的反馈。

All 16 comments

@zbqhc 请联系 archcn 管理员手动触发重编译过程 谢谢

根本原因是 arch 仓库里的 Protobuf 发生了大版本更新,需要 Rebuild。
你可以暂时使用 aur 里的构建(yay -S qv2ray --aur)。我们会通知上游重新构建。

感谢你的反馈。

了解

更新:上游已经合入主仓库。等待 lilac 自动构建。

解决该问题的方案之一:

第一步:安装protobuf。操作如下

  1. cd /usr/bin
  2. git clone https://github.com/protocolbuffers/protobuf.git
  3. cd protobuf
  4. git submodule update --init --recursive
  5. ./autogen.sh
  6. ./configure
  7. make
  8. make check
  9. sudo make install
  10. sudo ldconfig # refresh shared library cache.

第二步:执行一下命令
sudo sh -c "echo '/usr/local/lib' >> /etc/ld.so.conf"
sudo ldconfig

我就是这么解决的。安装protobuf过程较慢,请耐心等待

你这,污染环境啊……Arch Linux 哪有包用 /usr/local 的……
我不建议 Arch Linux 使用这个方法。Manjaro 用户请随意。

解决该问题的方案之一:

第一步:安装protobuf。操作如下

1. cd /usr/bin

2. git clone https://github.com/protocolbuffers/protobuf.git

3. cd protobuf

4. git submodule update --init --recursive

5. ./autogen.sh

6. ./configure

7. make

8. make check

9. sudo make install

10. sudo ldconfig # refresh shared library cache.

第二步:执行一下命令
sudo sh -c "echo '/usr/local/lib' >> /etc/ld.so.conf"
sudo ldconfig

我就是这么解决的。安装protobuf过程较慢,请耐心等待

manjaro用户是我没错了,平常也就做做题打比赛用的,只要能翻墙就好。
而且是系统默认的安装路径的锅啦。。

上游还是没有更新好吗?怎么pacman -Syu还是没有看到qv2ray的更新,这都好几天了

上游还是没有更新好吗?怎么pacman -Syu还是没有看到qv2ray的更新,这都好几天了

manjaro用户吗?Archlinux tuna源在4天前就可用了

还真是,manjaro用户只能接着等了吗?

上游还是没有更新好吗?怎么pacman -Syu还是没有看到qv2ray的更新,这都好几天了

建议 Manjaro 用户从 AUR 安装,或者用 AppImage 版本替代几天,等 Manjaro 同步了上游 Arch Linux。

我是想删了重新从aur安装,但是删除package的同时会不会把保存的代理设置也都删去呢?要是这样重装之后还的一个个添加,有些麻烦

我是想删了重新从aur安装,但是删除package的同时会不会把保存的代理设置也都删去呢?要是这样重装之后还的一个个添加,有些麻烦

不会。Qv2ray 除了从高版本降级会丢数据,从低版本升高版本不会丢数据。
Manjaro 用户要习惯这种日常。

我是想删了重新从aur安装,但是删除package的同时会不会把保存的代理设置也都删去呢?要是这样重装之后还的一个个添加,有些麻烦

manjaro不需要删掉,直接重装会用cache还是不行的
应该清掉yay缓存然后覆盖安装触发重编译即可

rm -rf ~/.cache/yay/qv2ray/
yay -S qv2ray

我是想删了重新从aur安装,但是删除package的同时会不会把保存的代理设置也都删去呢?要是这样重装之后还的一个个添加,有些麻烦

manjaro不需要删掉,直接重装会用cache还是不行的
应该清掉yay缓存然后覆盖安装触发重编译即可

rm -rf ~/.cache/yay/qv2ray/
yay -S qv2ray

果然可以了,谢谢!

Was this page helpful?
0 / 5 - 0 ratings