问题探索
自从网易云音乐诞生以来,不管是Windows,安卓,还是IOS,都在用他来听歌。最近安装了Ubuntu,发现网易云音乐专门开发了Ubuntu版本,于是立刻下载安装(网易云音乐官方下载地址),安装后发现网易云音乐无法启动,通过查询发现后台已有网易云音乐的进程。
poo@ubuntu:~$ ps -ef|grep netease-cloud-music
poo 11827 1946 2 14:21 tty2 00:00:00 netease-cloud-music
poo 11832 11827 0 14:21 tty2 00:00:00 /usr/bin/netease-cloud-music --type=zygote --no-sandbox --lang=en-US --log-file=/home/poo/.cache/netease-cloud-music/Cef/console.log --log-severity=error
poo 11872 11832 0 14:21 tty2 00:00:00 /usr/bin/netease-cloud-music --type=zygote --no-sandbox --lang=en-US --log-file=/home/poo/.cache/netease-cloud-music/Cef/console.log --log-severity=error
poo 11879 10566 0 14:21 pts/0 00:00:00 grep --color=auto netease-cloud-music
-
通过搜索,网上主流有三种方案:
- 通过root权限启动网易云音乐
- 通过点击关机-取消关机启动网易云音乐
- 通过启动单独的一个sandbox启动网易云音乐
-
测试以上三种方式的可用性
-
通过root权限启动网易云音乐
经过测试,除了不能驻留任务栏外,可以正常启动网易云音乐。但是作为一个音乐播放软件,启动需要root权限,还是让人有点不舒服。 -
通过点击关机-取消关机启动网易云音乐
经过测试,这种方式基本也可以启动网易云音乐(有一定几率启动不了,看人品),但为了启动一个音乐软件,经常性的做关机-关机取消这样的操作,我相信没有几个人能受得了。 -
通过启动单独的一个sandbox启动网易云音乐
经过测试,这种方式并不能很好的启动网易云音乐(当然听说有人可以,或许我人品一般吧!),所以直接放弃。
-
发现问题
昨天在逛知乎的时候,不小心看到知乎fancyz大神的一篇关于网易云音乐在Ubuntu下无法启动的问题的解答,才真正找到无法启动网易云音乐的原因所在。
回答中提到,网易云音乐无法启动实际上问题与环境变量SESSION_MANAGER有关。
- 我们先来看看SEESION_MANAGER的状态
poo@ubuntu:~$ env |grep SEESION_MANAGER # 结果不为空
poo@ubuntu:~$ sudo env |grep SEESION_MANAGER # 结果为空
# 这个说明SEESION_MANAGER为空时网易云音乐可以启动
- 我们再来看看点击关机-取消关机后SEESION_MANAGER的状态
poo@ubuntu:~$ env |grep SEESION_MANAGER # 结果为空
# 这个说明SEESION_MANAGER为空时网易云音乐可以启动
所以从上面的结果可以看出,以上两种方法也是变相的清空SESSION_MANAGER
解决方案
- 首先我们通过命令测试一下是否能正常启动
poo@ubuntu:~$ unset SESSION_MANAGER && netease-cloud-music
# 启动正常
- 然后我们修改启动命令解决通过图标可以打开网易云音乐
# 通过以下命令查找网易云音乐的启动文件
poo@ubuntu:~$ dpkg -L netease-cloud-music|grep desktop
/usr/share/applications/netease-cloud-music.desktop
# 打开netease-cloud-music.desktop
poo@ubuntu:~$ sudo gedit /usr/share/applications/netease-cloud-music.desktop
# 修改执行命令那一行为:Exec=Exec=sh -c "unset SESSION_MANAGER && netease-cloud-music %U",然后保存。
# "sh -c" 命令,它可以让 bash 将一个字串作为完整的命令来执行
注意事项
如果之前曾经通过root权限启动过网易云音乐,请先执行以下命令,主要为了修正某些文件归属由当前用户变成root的情况。
cd /home/poo/.config/netease-cloud-music/*
sudo chown -R poo:poo *
cd /home/poo/.cache/netease-cloud-music/*
sudo chown -R poo:poo *
# 注意:poo是当前用户名
如果通过命令测试的时候,出现Gtk-Message: 19:53:08.713: Failed to load module "canberra-gtk-module"
的错误,请执行sudo apt install libcanberra-gtk-module
poo@ubuntu:~/.config/netease-cloud-music$ unset SESSION_MANAGER && netease-cloud-music
Gtk-Message: 19:53:08.713: Failed to load module "canberra-gtk-module"
poo@ubuntu:~/.config/netease-cloud-music$ sudo apt install libcanberra-gtk-module
# 不过感觉安装不安装这个,没感觉有啥影响。
参考内容
网友评论