![如何解决运行 snap 应用程序时因无法访问 $HOME/.inputrc 而出错的问题](https://linux22.com/image/1195625/%E5%A6%82%E4%BD%95%E8%A7%A3%E5%86%B3%E8%BF%90%E8%A1%8C%20snap%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%97%B6%E5%9B%A0%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%20%24HOME%2F.inputrc%20%E8%80%8C%E5%87%BA%E9%94%99%E7%9A%84%E9%97%AE%E9%A2%98.png)
我理解错误发生的原因。我理解 snap 对此很严格。但是,我希望有某种方法可以手动告诉 snap 可以访问特定文件,或将文件添加到其环境中,或者类似的方式来绕过错误。
我正在使用 spark-client snap 应用程序。它一直运行良好。我刚刚将 .inputrc 文件添加到我的主目录,现在它失败了,因为在 spark-client.spark-shell 中,它是一个 REPL,有代码可以看到该文件,但无法读取它。我注意到,在运行时snap run --shell spark-client.spark-shell
,snap 应用程序可以看到所有文件,但无法读取它们(cat .inputrc
-> 权限被拒绝)。有什么办法可以解决这个问题吗?例如:
- 授予其访问权限?
snap connect {something with :personal-files}
:不能,因为只有 snap 作者可以添加插头/插槽? - 将文件复制到 snap 应用程序中?不能,因为
/snap/spark-client/current
它是一个已安装的只读文件系统。
我看到有人建议直接运行该命令,而不是将其作为 snap 命令运行。我同意。我找到了该命令/snap/spark-client/current/opt/spark/bin/spark-shell
,但显然有些命令先绕过它运行,因为它期望的环境变量未设置,所以我不能直接运行它。有没有一种直接的方法可以准确地找出作为 snap 应用程序运行的内容,以便我可以不在 snap 中运行它?