当我的 /tmp 符号链接到另一个地方时,如何从 snap 安装 Firefox?

当我的 /tmp 符号链接到另一个地方时,如何从 snap 安装 Firefox?

将我的桌面升级到 ubuntu jammy,这迫使我使用 snaps 中的 Firefox。

问题-snap install firefox失败:

error: cannot perform the following tasks:
- Run configure hook of "firefox" snap if present (run hook "configure": cannot create temporary directory for the root file system: Permission denied)

用 strace 检查了一下,问题似乎是:

10:56:07.401761 mkdir("/tmp/snap.rootfs_b4V7qn", 0700) = -1 EACCES (Permission denied) <0.000031>

就我而言,问题在于 /tmp 被符号链接到另一个地方:

lrwxrwxrwx 1 root root 17 sty  3 14:50 /tmp -> /mnt/storage/tmp//

当然它还有 777 个特权:

drwxrwxrwt 81 root root 20480 May  6 12:53 /mnt/storage/tmp

,但显然有些东西(apparmor?)正在引起问题。

我该如何修复它?

答案1

不是符号链接,而是“mount --bind”/tmp到新位置。mount --bind 会将目录重新定位到比符号链接更深的级别,并且 snap 会“看到”此类绑定。

要在启动期间自动挂载 --bind/tmp文件,请将以下行添加到/etc/fstab配置文件中:

/mnt/storage/tmp /tmp none bind

此后,/tmp它将作为一个普通目录/tmp而不是符号链接出现,因此 Firefox snap 版本将会安装而不会出现错误。

相关内容