Ändern Sie das Snaps-Installationsverzeichnis
Dies ist ein häufiges Problem, nach dem viele fragen. Es scheint, dass Snap-Entwickler nicht beabsichtigen, es bald zu lösen, daher wurden einige Lösungen vorgeschlagen.
Die erste Lösung , die von der Community stark abgelehnt wurde, aber ich habe es nicht versucht, besteht darin, symbolische Links zu verwenden, um die Verzeichnisse zu verknüpfen, die zu Snaps führen. Diese Methode scheint nicht zu funktionieren, da die Community-Antworten besagen, dass Apparmom nicht mit symbolischen Links funktioniert.
Die zweite Lösung ist mount --bind
das Verzeichnis, /val/lib/snapd/snaps
das für mich mit den bereits installierten Anwendungen gut funktioniert, aber keine neuen Anwendungen installieren konnte, weil ich das Verzeichnis auf eine andere Partition verschoben habe. Das gab mir einen Fehler bezüglich der harten Verknüpfung der Snap-Anwendung mit dem Cache-Verzeichnis, in dem sich befindet /var/lib/snapd/cache
. Ich weiß nicht, ob diese Lösung funktioniert, wenn sich der Speicherort auf derselben Partition befindet oder nicht. Dies ist jedoch der Grund, warum ich das Snap-Verzeichnis verschiebe, um Speicherplatz von der Partition auf eine andere freizugeben.
Die dritte und funktionierende Option besteht darin, das /var/lib/snapd
Verzeichnis als Ganzes mount --bind
von einem anderen Speicherort dorthin zu verschieben. Das hat bei mir funktioniert, und hier sind die Schritte.
Nur eine kleine Anmerkung, Sie wissen bereits, nachdem die rsync in den folgenden Schritten ausgeführt wurde, können Sie die Daten /var/lib/snapd
an einem anderen Speicherort sichern, bis der gesamte Prozess erfolgreich abgeschlossen ist. Anschließend können Sie die Sicherungsdaten entfernen, wenn Sie mehr Speicherplatz freigeben möchten.
##############################################################################
# Take Care this section may break the System !!!
##############################################################################
##Move snap folder to Home instead of root.
#Create the directory : you can change the location
mkdir /home/$USER/snap/snapd
#Copy the data
sudo rsync -avzP /var/lib/snapd/ /home/$USER/snap/snapd/
#Do backups
sudo mv /var/lib/snapd /var/lib/snapd.bak
sudo cp /etc/fstab /etc/fstab.bak
#Change fstab (Change $USER with your name or change the path totally)
echo "/home/$USER/snap/snapd /var/lib/snapd none bind 0 0" | sudo tee -a /etc/fstab
#remount fstab Or reboot.
sudo mkdir /var/lib/snapd
sudo mount -a
if ls /var/lib/snapd/ | grep snaps
then
echo "Re-mounting snapd folder is done successfully. !!!!"
sudo rm -rf /var/lib/snapd.bak
else
echo "WARNING : Re-mounting snapd folder failed, please revert !!!!! "
echo "WARNING : Re-mounting snapd folder failed, please revert !!!!! "
echo "WARNING : Re-mounting snapd folder failed, please revert !!!!! "
echo "WARNING : Re-mounting snapd folder failed, please revert !!!!! "
echo "WARNING : Re-mounting snapd folder failed, please revert !!!!! "
# Trying to revert automatically
sudo cp /etc/fstab.bak /etc/fstab
sudo mount -a
sudo umount /var/lib/snapd
sudo mv /var/lib/snapd.bak /var/lib/snapd
echo "Files located at ~/snap/snapd should be removed, but it keeped for
recovery until you ,manually, reboot the system and make sure the service
is running correctly then manually you can remove that folder ~/snap/snapd
!!!!!!!!!!!!!!, you should do that manually."
fi
##############################################################################
# Take Care the pervious section may break the System !!!
##############################################################################
Verweise
- Benutzerdefinierte Plattenposition für bestimmte Snaps Ausgabe
- Ubuntu-Frage stellen (Nicht die beste Lösung) Link
- Vorschlag zur Verwendung Bindehalterung anstelle von symbolischen Links in bewegten Schnapp Verzeichnissen Verbindung
- Unterschiede zwischen Bind Mount und symbolischen Links Link
- Binden Sie Mount Mount dauerhaft
Ich habe endlich einen Weg gefunden.
snap_app.snap
als App Sie verschieben. Verschieben Sie das Paket von/var/lib/snapd/snaps/snap_app.snap
nach~/snaps/snap_app.snap
./etc/systemd/system/snap-snap_app-90.mount
. Die Nummer im Dateinamen kann variieren. Es hat RichtlinieWhat=/snap_app_loaction
unter[Mount]
. Ändern Sie es in Ihren neuen Snap-Paketspeicherort./var/lib/snapd/snaps/
.Ex:
ln -s ~/snaps/snap_app.snap /var/lib/snapd/snaps/snap_app.snap
Das Snap-Paket wird ursprünglich in das
/snap/snap_app
Verzeichnis eingebunden . Sie können es mit überprüfenmount
. Starten Sie Ihren Computer neu und Sie sind fertig.quelle