Ubuntu下完美解决网易云音乐无法启动的问题

8748118-394391b3571569cd.png
网易云音乐

问题探索

自从网易云音乐诞生以来,不管是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
# 不过感觉安装不安装这个,没感觉有啥影响。

参考内容

部分内容参考知乎fancyz大神的回答

猜你喜欢

转载自blog.csdn.net/weixin_33924770/article/details/87509373