Chrome OS Flex下Linux应用无法启动,提示No Protocol Specified及Can't open display: :0的解决方法咨询
Chrome OS Flex下Linux应用无法启动,提示No Protocol Specified及Can't open display: :0的解决方法咨询
兄弟,我特别理解你折腾一两天没解决的烦躁感,我之前在Chrome OS Flex上也碰到过类似的显示问题,给你几个亲测有效的思路试试:
先检查DISPLAY环境变量是否正确配置
先在Linux终端里输入echo $DISPLAY,看看输出是不是:0。如果不是的话,手动设置变量:export DISPLAY=:0然后再尝试运行你的应用。要是不想每次打开终端都手动输,可以把这行加到你的bash配置文件里:
echo "export DISPLAY=:0" >> ~/.bashrc source ~/.bashrc修复X11授权文件的访问权限
Chrome OS的X11授权文件通常存放在/mnt/chromeos/run/xauth/data目录下,Linux容器可能没权限读取它。试试在终端执行:xauth merge /mnt/chromeos/run/xauth/data/$USER如果找不到这个路径,先通过
find /mnt/chromeos -name "*xauth*"搜索一下授权文件的位置,替换掉上面的路径就行。别用sudo运行GUI程序(除非加-E参数)
sudo会清空当前用户的环境变量,包括DISPLAY和X11授权相关的变量,这也是报错的常见原因。如果你的应用真的需要sudo权限,记得加上-E参数保留环境变量:sudo -E sh ./rider.sh终极方案:重置Linux开发环境
如果上面的方法都不管用,那可能是你的Linux容器本身出了问题。记得先备份好容器里的重要文件,然后打开Chrome OS的设置:
进入「开发者」->「Linux开发环境」,点击右上角的三个点按钮,选择「重置」。重置完成后重新安装Linux应用,应该就能正常启动了。
备注:内容来源于stack exchange,提问作者Anchor
相关产品推荐
相关产品推荐

