Como faço para remover uma instalação de snap incompleta ou quebrada do nextcloud em um Raspberry Pi?

22

Primeiro, a ressalva: entendo que essa pergunta envolve Mate e um Raspberry Pi; portanto, se você a considerar fora do domínio deste fórum, ignore-a. Mas com a chance de ser útil ou típico de algo que envolve snaps ou essa plataforma, aqui vai.

Decidi tentar instalar o snap da nextcloud. Isso gerou muitos erros e pareceu congelar no meio do processo (por mais de uma hora). Eu o matei e apenas decidi tentar removê-lo. A instalação parecia ....

$ 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

Quando tento remover remove nextcloud, recebo

erro: não é possível remover "nextcloud": o snap "nextcloud" tem alterações em andamento

O que eu principalmente gostaria de fazer é remover corretamente o snap e recuperar o espaço da partição criada. Se partição é o termo correto?

$ 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 /

eu tentei

snap abort nextcloud

e pegou

erro: não é possível encontrar a alteração com o ID "nextcloud"

Também devo observar que ele não aparece como instalado, pois recebo apenas o seguinte

$ snap list
Nome Versão Rev Notas do desenvolvedor
ubuntu-core 16.04 + 20160531.12-01 120 canonical -

Embora apareça em ....

$ snap interfaces
: network nextcloud
: rede-ligação nextcloud

eu tentei

$ 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

Mas a partição ainda está lá.

** Atualização, eu executei todo o processo novamente para fins de depuração e deixei repousar após o comando "snap abort 1". Em algum momento, algo parece ter sido concluído em segundo plano porque o lsblk não mostra nada e a consulta snap interfaces não mostra nada.

Dennis
fonte

Respostas:

44

Na snapverdade, o comando é composto de dois componentes, servidor e cliente. Você está interagindo com o cliente. Quando você cancelou a operação de instalação no lado do cliente, esse foi o único local em que foi cancelada - o cliente. Então, ele parou de mostrar que estava sendo instalado, mas ainda estava sendo instalado (isso é um bug ). ( Atualização: esse bug foi corrigido no snapd v2.20.1.)

No lado do servidor, tudo isso está acontecendo em "alterações". Você pode ler mais sobre eles aqui , mas, para seus propósitos, deseja apenas abortar essa alteração específica. Para fazer isso, execute:

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

Observe a identificação, 203, e o fato de estar "fazendo" agora. Para abortar essa operação, use o ID da mudança:

$ sudo snap abort 203

E a mudança deve parar. No entanto, devo dizer que o fato de a mudança ter congelado parcialmente não é um bom presságio para sua capacidade de abortá-la. Se não funcionar, talvez tente reiniciar. Se isso ainda não parece ter sido corrigido e você está bem, perdendo todos os seus snaps e seus dados, é possível redefinir completamente o estado snapd com esse script .

Kyle
fonte
Ir para votação por enquanto, porque o script realmente se livra da partição e isso foi declarado como meu objetivo principal. Fiz isso e depois voltei ao longo de todo o processo para coletar mensagens de erro e atualizei a pergunta para refletir essas informações, bem como o fato de que, como você declarou, o congelamento indicava que o cancelamento e a remoção não funcionariam. Vou dar um dia para ver se existe uma maneira mais limpa de se livrar do nextcloud e, caso contrário, aceitarei isso por causa da eficácia do script. Graças
Dennis
Estou um pouco confuso com relação à "partição" a que você se refere. Snapd não particiona nada. A que exatamente você está se referindo?
Kyle
Eu atualizei as informações na pergunta. Posso estar com a terminologia errada, mas estou falando sobre o que parece uma partição para mim que aparece no lsblk. Eles também aparecem nos gerenciadores de arquivos como discos, embora eu aparentemente não esteja claro sobre o que são os contêineres. Você também pode ver pela atualização no final que seus conselhos para abortar um processo específico funcionaram de fato (se eu tivesse sido paciente).
Dennis
Nota lateral, vejo no seu blog que você é aparentemente "o homem" nesse tópico. Se houver algo que eu possa fornecer que seja útil, re: por que isso não funcionou em primeiro lugar, por favor me avise.
Dennis
Haha, dificilmente, eu apenas escrevo algumas vezes. Snaps são simplesmente imagens squashfs que são montadas no lugar /snap, e é isso que você está vendo lá. Em relação à falha, parece que existem alguns problemas de kernel no armhf para o MATE. Você se importaria de registrar um bug com essas informações para que possamos investigar adequadamente?
Kyle