Jak usunąć niekompletną lub uszkodzoną instalację snap nextcloud na Raspberry Pi?

22

Najpierw zastrzeżenie: rozumiem, że to pytanie dotyczy Mate i Raspberry Pi, więc jeśli uważasz, że jest ono poza sferą tego forum, po prostu zignoruj ​​je. Ale tutaj jest szansa, że ​​może to być pomocne lub typowe dla czegoś związanego z przystawkami lub platformą.

Postanowiłem spróbować zainstalować snap nextcloud. Rzuciło mnóstwo błędów i wydawało się, że zamarzło w trakcie procesu (przez ponad godzinę). Zabiłem go i po prostu postanowiłem go usunąć. Instalacja wyglądała jak ....

$ 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

Gdy próbuję wykonać snap usuń nextcloud, otrzymuję

błąd: nie można usunąć „nextcloud”: snap „nextcloud” ma zmiany w toku

Chciałbym przede wszystkim prawidłowo usunąć przystawkę i odzyskać miejsce z utworzonej partycji. Jeśli partycja jest poprawnym terminem?

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

próbowałem

snap przerwij nextcloud

i dostał

błąd: nie można znaleźć zmiany o identyfikatorze „nextcloud”

Powinienem również zauważyć, że nie wyświetla się jako zainstalowany, ponieważ otrzymuję tylko następujące

$ snap list
Nazwa Wersja Rev Uwagi dla deweloperów
ubuntu-core 16.04 + 20160531.12-01 120 canonical -

Chociaż pojawia się w ....

$ snap interfaces
: network nextcloud
: network-bind nextcloud

próbowałem

$ 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

Ale partycja nadal tam jest.

** Aktualizacja, uruchomiłem cały proces ponownie w celu debugowania i po prostu pozwól mi usiąść po poleceniu „snap abort 1”. W pewnym momencie wydaje się, że coś zakończyło się w tle, ponieważ lsblk nic nie pokazuje, a zapytanie o interfejsy Snap nie pokazuje niczego.

Dennis
źródło

Odpowiedzi:

44

snapKomenda jest w rzeczywistości składa się z dwóch elementów, serwera i klienta. Współdziałasz z klientem. Gdy anulujesz operację instalacji po stronie klienta, jest to jedyne miejsce, w którym ją anulowałeś - klient. Przestał więc pokazywać, że się instaluje, ale wciąż się instaluje (to jest błąd ). ( Aktualizacja: Ten błąd został naprawiony w snapd v2.20.1.)

Po stronie serwera wszystkie te rzeczy dzieją się w „zmianach”. Możesz przeczytać więcej o nich tutaj , ale dla swoich celów chcesz po prostu zrezygnować z tej konkretnej zmiany. Aby to zrobić, uruchom:

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

Zwróć uwagę na identyfikator, 203 i fakt, że „robi” to teraz. Aby przerwać tę operację, użyj identyfikatora zmiany:

$ sudo snap abort 203

I zmiana powinna się skończyć. Muszę jednak powiedzieć, że fakt, że zmiana zamarła w połowie, nie wróży dobrze twojej zdolności do jej przerwania. Jeśli to nie zadziała, być może spróbuj ponownie uruchomić komputer. Jeśli nadal nie wydaje się, aby to rozwiązało, a wszystko w porządku, tracisz wszystkie swoje zatrzaski i ich dane, możesz całkowicie zresetować stan przystawki za pomocą tego skryptu .

Kyle
źródło
Przejdę teraz na głosowanie, ponieważ skrypt rzeczywiście pozbywa się partycji, co zostało określone jako mój główny cel. Zrobiłem to, a następnie wróciłem przez cały proces, aby zebrać komunikaty o błędach i zaktualizowałem pytanie, aby odzwierciedlić te informacje, a także fakt, że jak powiedziałeś, zamrażanie wskazuje, że przerwanie i usunięcie nie zadziała. Daję dzień, aby sprawdzić, czy jest czystszy sposób, aby pozbyć się nextcloud, a jeśli nie, zaakceptuje to ze względu na skuteczność skryptu. Dzięki
Dennis
Jestem trochę zdezorientowany w odniesieniu do „partycji”, do której się odwołujesz. Snapd niczego nie dzieli. Do czego dokładnie się odnosisz?
Kyle
Zaktualizowałem informacje zawarte w pytaniu. Mogę mieć błędną terminologię, ale mówię o czymś, co dla mnie wygląda na partycję, która pojawia się w lsblk. Pojawiają się również w menedżerach plików jako dyski, chociaż najwyraźniej nie jestem pewien, jakie są pojemniki. Na końcu aktualizacji można również zobaczyć, że twoja rada przerwania konkretnego procesu faktycznie zadziałała (gdybym był cierpliwy).
Dennis
Na marginesie, widzę z twojego bloga, że ​​najwyraźniej jesteś „mężczyzną” na ten temat. Jeśli jest coś, co mogę podać, co byłoby przydatne, ponownie: dlaczego to nie zadziałało, proszę dać mi znać.
Dennis
Haha, och, ledwo, czasami po prostu piszę. Snapy to po prostu obrazy squashfs, które są następnie montowane na miejscu /snap, co właśnie tam widzisz. Jeśli chodzi o awarię, wygląda na to, że niektóre problemy z jądrem w armhf dla MATE. Czy masz coś przeciwko zarejestrowaniu błędu za pomocą tych informacji, abyśmy mogli właściwie zbadać problem?
Kyle