Je souhaite déplacer les packages d'installation installés dans le répertoire de base. Les paquets instantanés sont légèrement plus grands que les paquets .deb, ils prennent donc de la place dans la partition racine. Je sais que les paquets sont situés dans /var/lib/snapd/snaps
et ils travaillent avec le montage du paquet sur /snap/app_dir
. J'ai essayé de simlinked, mais cela n'a pas fonctionné.
J'ai finalement trouvé un moyen.
snap_app.snap
comme application que vous souhaitez déplacer. Déplacez le package de /var/lib/snapd/snaps/snap_app.snap
vers ~/snaps/snap_app.snap
./etc/systemd/system/snap-snap_app-90.mount
, le numéro dans le nom du fichier peut varier. La directive What=/snap_app_loaction
est sous [Mount]
. Changez-le pour votre nouvel emplacement de paquet instantané./var/lib/snapd/snaps/
.ln -s ~/snaps/snap_app.snap /var/lib/snapd/snaps/snap_app.snap
Le package de capture est monté à l’origine dans le répertoire /snap/snap_app
. vous pouvez le vérifier avec mount
. Redémarrez votre ordinateur et vous avez tous terminé.
C’est un problème courant que beaucoup de gens demandent, il semble que les développeurs d’instantanés n’aient pas l’intention de le résoudre rapidement; certaines solutions ont donc été suggérées lors de ma recherche.
La première solution qui a été fortement refusée par la communauté, mais je n'ai pas essayé, consiste à utiliser un lien symbolique pour relier les répertoires, ce qui conduit à des instantanés. cette méthode ne semble pas fonctionner car la communauté répond que cet apparmom ne fonctionne pas avec des liens symboliques.
La deuxième solution est mount --bind
le répertoire /val/lib/snapd/snaps
qui fonctionne bien pour moi avec les applications déjà installées mais n'a pas pu installer de nouvelles applications car je déplaçais le répertoire vers un autre. cloison. Cela m'a donné une erreur sur la liaison difficile de l'application instantanée avec le répertoire de cache qui se trouve dans /var/lib/snapd/cache
. Je ne sais pas si cette solution peut fonctionner si l'emplacement se trouve dans la même partition ou non; mais c’est la raison pour laquelle je déplace le répertoire de capture pour libérer de l’espace d’une partition à une autre.
La troisième option qui fonctionne consiste à déplacer le répertoire /var/lib/snapd
dans son ensemble, puis mount --bind
à partir d'un autre emplacement, ce qui a fonctionné pour moi et voici les étapes.
Juste une petite note, vous le savez déjà, une fois que rsync est terminé dans les étapes ci-dessous, vous pouvez sauvegarder les données dans /var/lib/snapd
vers un autre emplacement jusqu'à la fin du processus, puis vous pouvez supprimer les données de sauvegarde si vous souhaitez libérer plus d'espace. .
##############################################################################
# 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 !!!
##############################################################################