解决arch应用无法打开

问题叙述

这几天下载了几个arch的应用,分别是clash-for-windows,YesPlayMusic,Cider 等应用
结果在应用程序里可以搜索到,但是点击却无法打开,没了下文

探索

想在终端里运行一下试试看,结果发现没找到这个命令
后来发现原来可执行的二进制文件存储在 /opt/XXX中
运行二进制文件,提示

1
2
[220109:0821/081627.977345:FATAL:setuid_sandbox_host.cc(158)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /opt/YesPlayMusic/chrome-sandbox is owned by root and has mode 4755.
[1] 220109 trace trap (core dumped) ./yesplaymusic

**发现与Sandbox有关

解决办法

1.不使用sandbox
在运行二进制文件时,加上后缀,例如

1
./XXX --no-sandbox

这样就可以正常运行了!

2.启用sandbox
上面那种虽然可以,但是显然有些麻烦了,搜来搜去,最后找到了这篇文章
这里把他的解决方法说一下,亲测可用

1
2
3
4
5
6
7
8
9
10
#检查内核用户空间是否打开,0关,1开
sudo sysctl -n kernel.unprivileged_userns_clone

#如果是0,请执行如下命令,再做尝试启动
sudo sysctl kernel.unprivileged_userns_clone=1

#如果成功启动,则将`kernel.unprivileged_userns_clone=1`写入/etc/sysctl.conf或/etc/sysctl.d/新增自己的配置文件xxx.conf
#此处以/etc/sysctl.conf举例,以root用户执行以下echo命令
echo "kernel.unprivileged_userns_clone=1" >> /etc/sysctl.conf
sysctl -p