将我的桌面升级到 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 版本将会安装而不会出现错误。