Too*_*iis 22 permissions read-only snap
我一直在尝试更改 Blender 的图标很长时间,但无论我做什么,我都不允许在/snap/blender-tpaw/3/.
这是我尝试过的:
nautilus没有编辑文件sudo。nautilus使用sudo(sudo nautilus在终端中)编辑文件。cp或rm不使用sudo.sudo(例如sudo cp <source> /snap/blender-tpaw/3/或sudo rm /snap/blender-tpaw/3/<filename.ext>)sudo -i)在每种情况下,我都会收到以下错误:
cannot remove/copy '/snap/blender-tpaw/3/filename.ext': Read-only file system
Run Code Online (Sandbox Code Playgroud)
其中 filename 是文件, .ext 是其扩展名。
这也适用于其他快照的文件,而不仅仅是 Blender。
我在这里做错了吗?或者根本不可能更改这些文件?虽然我不认为这是不可能的,因为从 Ubuntu 到 Blender 的一切都是开源的,所以他们没有理由阻止我们修改这些文件。
编辑:
我使用主菜单(alacarte)来更改图标,但我仍然想知道为什么我无法修改任何快照文件。
whe*_*ler 20
虽然问题的前提在技术上是正确的(您不能更改快照文件),但有一些方法可以解决此问题。
一种这样的方法是将--bind选项与mount,结合使用,以将现有文件层次结构重新安装到其他位置。
例如,如果您希望快照使用系统证书而不是安装在 中的证书core,则可以使用以下命令将主机上包含系统证书的目录挂载到系统证书目录的顶部core:
sudo mount --bind -o nodev,ro /etc/ssl/certs /snap/core/current/etc/ssl/certs/
Run Code Online (Sandbox Code Playgroud)
这实际上并没有改变 snap 文件系统。如果卸载文件夹,旧文件夹将取代它:
sudo umount /snap/core/current/etc/ssl/certs
Run Code Online (Sandbox Code Playgroud)
注意:在重新启动之间挂载不会持续。有几种方法可以在重新启动后保持挂载。一种方法是创建一个systemd启动脚本:
$ cat <<-EOF | sudo tee /etc/systemd/system/snap-core-current-etc-ssl-certs.mount
[Unit]
Description=Mount unit to fix etc ssl certs in core package
After=snapd.service
[Mount]
What=/etc/ssl/certs
Where=/snap/core/current/etc/ssl/certs
Type=none
Options=bind,nodev,ro
[Install]
WantedBy=multi-user.target
EOF
$ systemctl enable snap-core-current-etc-ssl-certs.mount
Run Code Online (Sandbox Code Playgroud)
取自这里。
pop*_*pey 16
如果不重新构建快照,就不可能更改快照的内容。这主要是一种安全措施,以确保快照未被篡改。
但是,图标所指的可能是在被称为桌面文件blender-tpaw_blender.desktop这是可编辑的,并且可以发现/var/lib/snapd/desktop/applications。
您可以更改以下行以更新图标:-
Icon=/snap/blender-tpaw/3/meta/gui/icon.svg
Run Code Online (Sandbox Code Playgroud)