首先要说明的是:我知道这个问题涉及 Mate 和 Raspberry Pi,所以如果你认为它超出了本论坛的范围,请忽略它。但万一它对 Snap 或该平台有帮助或典型,那就继续吧。
我决定尝试安装 nextcloud snap。它抛出大量错误,并且似乎在安装过程中冻结(超过一个小时)。我关闭了它,然后决定尝试将其删除。安装看起来像......
$ sudo snap install nextcloud
2016-06-24T08:48:29-04:00 ERROR cannot setup apparmor for snap "nextcloud": cannot load apparmor profile "snap.nextcloud.apache": cannot load apparmor profile: exit status 1
apparmor_parser output:
Cache read/write disabled: interface file missing. (Kernel needs AppArmor 2.4 compatibility patch.)
Warning: unable to find a suitable fs in /proc/mounts, is it mounted?
Use --subdomainfs to override.
2016-06-24T08:53:29-04:00 ERROR cannot setup apparmor for snap "nextcloud": cannot load apparmor profile "snap.nextcloud.apache": cannot load apparmor profile: exit status 1
apparmor_parser output:
Cache read/write disabled: interface file missing. (Kernel needs AppArmor 2.4 compatibility patch.)
Warning: unable to find a suitable fs in /proc/mounts, is it mounted?
Use --subdomainfs to override.
[|] Setup snap "nextcloud" security profiles
当我尝试 snap remove nextcloud 时我得到
错误:无法删除“nextcloud”:快照“nextcloud”正在进行更改
我主要想做的是正确地删除快照并从它创建的分区中恢复空间。如果分区是正确的术语?
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 46.6M 0 loop /snap/ubuntu-core/120
loop1 7:1 0 113.9M 0 loop /snap/nextcloud/12
mmcblk0 179:0 0 14.9G 0 disk
├─mmcblk0p1 179:1 0 64M 0 part /boot
└─mmcblk0p2 179:2 0 14.8G 0 part /
我试过
取消 nextcloud
并得到
错误:无法找到 ID 为“nextcloud”的变更
我还应该注意到,它没有显示为已安装,因为我只得到以下内容
$ snap list
名称 版本 修订版 开发者说明
ubuntu-core 16.04+20160531.12-01 120 canonical -
虽然它确实出现在....
$ snap 接口
:network nextcloud
:network-bind nextcloud
我试过
$ snap changes
ID Status Spawn Ready Summary
1 Doing 2016-06-24T12:39:20Z - Install "nextcloud" snap
$ sudo snap abort 1
$ snap changes
ID Status Spawn Ready Summary
1 Abort 2016-06-24T12:39:20Z - Install "nextcloud" snap
但分区仍然存在。
**更新,为了调试,我再次运行了整个过程,并在“snap abort 1”命令后让它静置。在某个时刻,似乎后台已经完成了某些操作,因为 lsblk 什么都没显示,snap 接口查询什么都没显示。
答案1
该snap
命令实际上由两个组件组成:服务器和客户端。您正在与客户端交互。当您在客户端取消安装操作时,您只能在客户端取消它。因此它不再显示正在安装,但它仍在安装(这是一个漏洞)。 (更新:该错误已在 snapd v2.20.1 中修复。)
在服务器端,所有这些都发生在“变化”中。您可以阅读更多有关它们的信息这里,但就您的目的而言,您只想中止此特定更改。为此,请运行:
$ snap changes
<snip>
203 Doing 2016-06-24T12:17:45Z - Install "nextcloud" snap
请注意 ID 203,以及它现在正在“执行”的事实。要中止该操作,请使用更改 ID:
$ sudo snap abort 203
更改应该会停止。但是,我必须说,更改中途冻结的事实并不利于您中止它。如果它不起作用,也许可以尝试重新启动。如果这仍然没有解决问题,并且您愿意丢失所有快照及其数据,您可以使用以下命令完全重置 snapd 状态这个脚本。
答案2
当你看到错误的 snap install 并且你没有安装该应用程序时,请运行以下命令
sudo snap changes
并查找已安装应用程序的 ID。
之后,运行命令
sudo snap remove app_name
并返回
sudo snap install app