不关心排查过程和故障原因的读者,请直接跳转到
总结章节。
22版本ubuntu升级了很多库文件,导致netease的库无法使用。netease的库中,使用的是老版本的libselinux,老版本的libselinx需要老版本的libgio,但是,22版本的libgio是新的,所以,需要重新复制新版本的libselinx等库到netease的库中。
命令行运行命令:
ubuntu@ubuntu-Desktop:~$ netease-cloud-music
/opt/netease/netease-cloud-music/netease-cloud-music: /opt/netease/netease-cloud-music/libs/libselinux.so.1: no version information available (required by /lib/x86_64-linux-gnu/libgio-2.0.so.0)
/opt/netease/netease-cloud-music/netease-cloud-music: symbol lookup error: /lib/x86_64-linux-gnu/libgio-2.0.so.0: undefined symbol: g_module_open_full
报错内容如下:
/opt/netease/netease-cloud-music/netease-cloud-music: /opt/netease/netease-cloud-music/libs/libselinux.so.1: no version information available (required by /lib/x86_64-linux-gnu/libgio-2.0.so.0) /opt/netease/netease-cloud-music/netease-cloud-music: symbol lookup error: /lib/x86_64-linux-gnu/libgio-2.0.so.0: undefined symbol: g_module_open_full
这里可以看到,netease库文件目录为opt/netease/netease-cloud-music/netease-cloud-music/libs
,库中libselinx版本明显与系统的/lib/x86_64-linux-gnu/
中的ibgio-2.0.so.0对不上,所以,将环境中的libselinx库复制到netease库中。
执行命令:
sudo cp /lib/x86_64-linux-gnu/libselinux.so.1 /opt/netease/netease-cloud-music/libs/
随后继续执行命令
ubuntu@ubuntu-Desktop:~$ netease-cloud-music
/opt/netease/netease-cloud-music/netease-cloud-music: symbol lookup error: /lib/x86_64-linux-gnu/libgio-2.0.so.0: undefined symbol: g_module_open_full
这里可以看到,报错undefined symbol: g_module_open_full
执行命令:
ubuntu@ubuntu-Desktop:~$ ldd -r /lib/x86_64-linux-gnu/libgio-2.0.so.0 | grep module
libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f5a031c8000)
可以看到,系统库的libgio是新版本的,而netease的库中的libgmodule是老版本,libgio依赖于libgmodule,所以出错了,将系统库中libgmodule复制到netease库中。
执行命令:
sudo cp /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 /opt/netease/netease-cloud-music/libs/
同理,继续往下排查,后续的排查过程与上述一致,故省略了。
执行以下命令可以解决该问题:
sudo cp /lib/x86_64-linux-gnu/libselinux.so.1 /opt/netease/netease-cloud-music/libs/
sudo cp /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 /opt/netease/netease-cloud-music/libs/
sudo cp /lib/x86_64-linux-gnu/libpango-1.0.so.0 /opt/netease/netease-cloud-music/libs/
sudo cp /lib/x86_64-linux-gnu/libfribidi.so.0 /opt/netease/netease-cloud-music/libs/
sudo apt-get install libcanberra-gtk-module