网易云音乐下载地址:https://d1.music.126.net/dmusic/netease-cloud-music_1.2.1_amd64_ubuntu_20190428.deb
特别说明:由于Ubuntu 21.10(Impish Indri)服务支持时间已经于2022年7月14日结束,所以Ubuntu官方不再提供相关包的下载,目前从官网用 wget 下载deb的方法失效。为了大家方便,这里将自己当时下载的相关文件打包放在了百度云盘,供各位大佬使用。下载后请参考 官网404补救措施。
问题描述
从ubuntu21.10升级到 22.04 会出现无法打开网易云音乐现象,在终端中输入 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
这里主要的原因是因为升级ubuntu后, 相应动态库的版本过高导致的. 主要涉及libgio 、libpangocairo、libselinux。
解决思路
经过分析,网易云音乐内部包含了一个库文件目录 /opt/netease/netease-cloud-music/libs
, 所以解决办法是从正常的ubuntu 21.10中下载库文件拷贝到该目录,这一点在文件netease-cloud-music.bash
可以验证。相应包可以从 https://packages.ubuntu.com/下载,下载时注意选择impish版本。
特别强调:如果是手动操作,不小心将ubuntu 21.10的老版本库文件放在了 /lib/x86_64-linux-gnu
等类似系统目录, 将会导致系统死机,重启也无效。解决办法是在开机时按下 Alt
+F2
,进入终端输入账户和密码,确保可以上网后,重新安装相应包后重启电脑。
sudo apt reinstall libpangocairo-1.0-0 libglib2.0-0
sudo reboot now
解决办法
根据以上的分析,这里编写了一个脚本,供大家参考。
mkdir /tmp/netease-install -p && cd /tmp/netease-install
# 1. download neccesary debs.
export source_url=http://kr.archive.ubuntu.com/ubuntu/pool
wget ${source_url}/main/g/glib2.0/libglib2.0-0_2.68.4-1ubuntu1_amd64.deb
wget ${source_url}/main/p/pango1.0/libpangocairo-1.0-0_1.48.10+ds1-1_amd64.deb
wget ${source_url}/main/libs/libselinux/libselinux1_3.1-3build2_amd64.deb
# 2. extract debs.
dpkg -x libglib2.0-0_2.68.4-1ubuntu1_amd64.deb ./
dpkg -x libpangocairo-1.0-0_1.48.10+ds1-1_amd64.deb ./
dpkg -x libselinux1_3.1-3build2_amd64.deb ./
# 3. copy files
export source_dir_prefix=/tmp/netease-install
export source_dir_usr=${source_dir_prefix}/usr/lib/x86_64-linux-gnu
export source_dir_lib=${source_dir_prefix}/lib/x86_64-linux-gnu
export dest_dir=/opt/netease/netease-cloud-music/libs/
sudo cp ${source_dir_usr}/libgio-2.0.so.0 ${dest_dir}
sudo cp ${source_dir_usr}/libpangocairo* ${dest_dir}
sudo cp ${source_dir_lib}/libselinux.so.1 ${dest_dir}
# 4. clean up
cd ~
rm -rf /tmp/netease-install
官网404补救措施
百度网盘下载地址: 链接: https://pan.baidu.com/s/1NwSwrdGFdqEe92ATZYQafQ?pwd=2qvi 提取码: 2qvi
下载文件后,将文件夹内所有文件解压至 /opt/netease/netease-cloud-music/libs/
,注意要用管理员权限。参考命令:在解压后的文件夹内打开终端
sudo cp ./lib* /opt/netease/netease-cloud-music/libs/
参考资料
[1] https://blog.csdn.net/luoweid/article/details/124484949