如何在 Raspberry Pi 上删除不完整或损坏的 nextcloud 快照安装?

Den*_*nis 35 raspberrypi ubuntu-mate 16.04 snap

首先警告:我知道这个问题涉及 Mate 和 Raspberry Pi,所以如果您认为它超出了本论坛的范围,请忽略它。但是,如果它可能对涉及快照或该平台的事物有所帮助或具有典型意义,那就去吧。

我决定尝试安装 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
Run Code Online (Sandbox Code Playgroud)

当我尝试 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 /
Run Code Online (Sandbox Code Playgroud)

我试过

快照中止nextcloud

并得到

错误:找不到 ID 为“nextcloud”的更改

我还应该注意,它没有显示为已安装,因为我只得到以下内容

$ snap list
Name Version Rev Developer Notes
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
Run Code Online (Sandbox Code Playgroud)

但是分区还在。

**更新,出于调试目的,我再次运行了整个过程,并在“snap abort 1”命令之后让它静置。在某些时候,后台似乎已经完成了一些事情,因为 lsblk 什么也没显示,而 snap 接口查询什么也没显示。

kyr*_*ofa 57

snap命令实际上由两个组件组成,服务器和客户端。您正在与客户互动。当您在客户端取消安装操作时,这是您取消它的唯一地方——客户端。所以它停止向您显示它正在安装,但它仍在安装(这是一个错误)。(更新:此错误已在 snapd v2.20.1 中修复。)

在服务器端,所有这些都发生在“变化”中。您可以在此处阅读有关它们的更多信息,但出于您的目的,您只想中止此特定更改。为此,请运行:

$ snap changes
<snip>
203  Doing   2016-06-24T12:17:45Z  -  Install "nextcloud" snap
Run Code Online (Sandbox Code Playgroud)

请注意 ID 203 以及它现在正在“执行”这一事实。要中止该操作,请使用更改 ID:

$ sudo snap abort 203
Run Code Online (Sandbox Code Playgroud)

改变应该停止。但是,我必须说,更改在中途冻结的事实对于您中止它的能力来说并不是好兆头。如果它不起作用,也许尝试重新启动。如果这似乎仍然没有修复它并且您可以丢失所有快照及其数据,则可以使用此脚本完全重置 snapd 状态。