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


22

首先要警告:我知道这个问题涉及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

当我尝试快速删除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
名称版本Rev开发人员说明
ubuntu-core 16.04 + 20160531.12-01 120规范-

虽然确实出现在...

$ snap接口
:网络nextcloud
:网络绑定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

但是分区仍然存在。

** 更新,我再次运行了整个过程以进行调试,仅在“快照中止1”命令之后运行它。在某些时候,后台似乎完成了某些事情,因为lsblk不显示任何内容,而snap接口查询也不显示任何内容。

Answers:


44

snap命令实际上由服务器和客户端两个部分组成。您正在与客户互动。当您取消客户端上的安装操作时,这是您唯一取消的位置-客户端。因此它停止向您显示正在安装,但仍在安装(这是一个bug)。(更新:此错误已在快照v2.20.1中修复。)

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

$ snap changes
<snip>
203  Doing   2016-06-24T12:17:45Z  -  Install "nextcloud" snap

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

$ sudo snap abort 203

并且更改应停止。但是,我必须说,变更中途冻结的事实对于您中止变更的能力不是一个好兆头。如果不起作用,请尝试重新启动。如果仍然不能解决问题,并且可以丢失所有快照和数据,则可以使用此脚本完全重置快照状态。


现在要进行投票,因为脚本确实摆脱了分区,这是我的主要目标。我这样做了,然后返回了整个过程以收集错误消息,并更新了问题以反映该信息以及您所说的冻结表明中止和删除将不起作用的事实。我将花费一天的时间来看看是否有一种更干净的方法来摆脱nextcloud,如果没有的话,由于脚本的有效性,它会接受这种方法。谢谢
丹尼斯

对于您所指的“分区”,我有些困惑。Snapd不会分区任何内容。您到底指的是什么?
凯尔(Kyle)2016年

我更新了问题中的信息。我可能用错了术语,但是我在说的是看起来像是一个出现在lsblk中的分区。它们也以磁盘形式显示在文件管理器中,尽管我不清楚容器是什么。最后,您还可以通过更新了解到中止特定过程的建议实际上是有效的(如果我有耐心的话)。
丹尼斯

旁注,我从您的博客中看到您显然是该主题的“男人”。如果有什么我可以提供的,将对您有所帮助:为什么这首先没有奏效,请告诉我。
丹尼斯

哈哈,哦,几乎不,我有时只是写。捕捉只是squashfs图像,然后将它们安装到中的位置/snap,这就是您在此处看到的。关于失败,它看起来像是MATE的armhf上的一些内核问题。您介意使用此信息记录错误,以便我们进行适当调查吗?
凯尔(Kyle)2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.