网易云音乐 for Ubuntu 16.04 1.1.0版在Ubuntu 17.10上运行会有问题,表现是双击运行后GUI一直没有出现,但在进程列表中可以看到其进程并没有结束。这大概是因为运行过程中出了一些问题。因此,我尝试在终端中运行,希望能看到运行的输出,结果如下:
1 | $ netease-cloud-music |
说句题外话,像这样运行过程中遇到错误,既没有明显的报错信息,让人忍不住双击了好几下;也没有退出,一直占用着系统资源,这种行为是应该抵制的。以后编程时也要注意合理地设计出错时的行为,在出现致命错误时应当给出明显的错误信息,并且及时退出释放资源。
言归正传,看到了错误信息以后,就是使用搜索引擎了。我在贴吧中找到了线索:加上sudo
就能正常运行。运行结果是这样的:
1 | $ sudo netease-cloud-music |
报错归报错,但终于其他功能都能跑起来了。
不过每次都从终端中运行也不是个事,最好还是像之前那样,双击以后输入密码,然后就能正常运行。
首先想到的是,在快捷方式的命令中加上sudo
:
双击运行后,发现什么都没有发生,没有要求输入密码,进程列表中也没有网易云音乐。
也就是说,现在的问题是如何在.desktop文件中使用sudo
运行命令。
在askUbuntu上,我发现有人提过相同的问题。在下面的答案中,我觉得比较好的解决方案是使用gksu
代替sudo
。这两个命令的功能十分相似,主要区别是前者是在GUI中输入密码,后者是在命令行中输入密码。gksu
不是自带的,需要先安装:
1 | $ sudo apt-get install gksu |
之后将desktop中的sudo
改成gksu
:
然后双击运行后会弹出一个模态框让你输入密码(这里截不了图),之后就一切正常了。
经验总结:
- 编程时需要注意出错时程序的行为
- 可以使用
gksu
在GUI中请求权限