尝试使用任何快照包,我遇到以下问题:
$ gimp
cannot create user data directory: /local/home/user/snap/gimp/40: Read-only file system
Run Code Online (Sandbox Code Playgroud)
(Gimp 只是一个例子)。
我有我$HOME的/local/home/$USER/(我无法改变这个!)并发现人们在 snap-store 论坛上有同样的问题:
https: //forum.snapcraft.io/t/how-can-i-use-snap-when- i-dont-use-home-user/3352和https://bugs.launchpad.net/snapcraft/+bug/1620771
在这个线程中,人们说/home是硬编码的snap,他们建议使用绑定安装来解决这个问题。
我尝试过的:
$ sudo mount --bind $HOME /home/$USER
Run Code Online (Sandbox Code Playgroud)
ls正确列出我的内容$HOME
$ ls /home/$USER
Run Code Online (Sandbox Code Playgroud)
我还将额外的主目录添加到/etc/apparmor.d/tunables/home.d/my-homes:
$ cat /etc/apparmor.d/tunables/home.d/my-homes
@{HOMEDIRS}+=/local/home/
Run Code Online (Sandbox Code Playgroud)
并/var/lib/snapd/apparmor/snap-confine/my-homes:
$ cat /var/lib/snapd/apparmor/snap-confine/my-homes
mount options=(rw rbind) @{HOMEDIRS}/ -> /tmp/snap.rootfs_*/home/,
Run Code Online (Sandbox Code Playgroud)
使用bind-mount AND 以及OR 更改文件再次运行快照,会出现与之前相同的错误。
我该如何解决这个问题?
$ snap list gimp
Name Version Rev Tracking Developer Notes
gimp 2.10.0 40 stable snapcrafters -
$ snap --version
snap 2.32.9
snapd 2.32.9
series 16
ubuntu 16.04
kernel 4.4.0-127-generic
Run Code Online (Sandbox Code Playgroud)
小智 1
从 2.59 开始,Snapd 有一个homedirs系统选项来处理这个问题。要升级到工作版本,您可以使用命令:
snap refresh --channel=latest/edge snapd
我什至不必随后设置主目录,但以防万一您可以使用:
snap set system homedirs=/local/home/
Zyg*_*cki -2
快照开发者在这里
很抱歉,这对您来说是个问题,因为您没有提供有关您正在使用的 snapd 版本的详细信息(提示,运行snap version并粘贴到此处)或您的真实主目录所在的详细安排(它可悲的是也很重要)。
我自己还没有亲自尝试过,但是使用这样的绑定安装应该足够好:
sudo mount --bind /some/random/place/home/zyga /home/zyga
如果将其添加到文件中,则可以使其永久化/etc/fstab。此后,您还必须将主目录更改为真正的位置/home/zyga,而不是原始位置。
如果失败,请snap install hello-world添加以下命令的输出:
SNAP_CONFINE_DEBUG=yes hello-world
dmesg | grep DENIED
| 归档时间: |
|
| 查看次数: |
3517 次 |
| 最近记录: |