Quiero mover los paquetes snap instalados al directorio de inicio. Los paquetes Snap son un poco más grandes que los paquetes .deb, por lo que ocupan espacio en mi partición raíz. Sé que los paquetes están ubicados /var/lib/snapd/snapsy están trabajando con el montaje del paquete /snap/app_dir. Traté de simlinked, pero no funcionó.
Cambiar el directorio de instalación de instantáneas
Este es un problema común que muchos piden. Parece que los desarrolladores rápidos no tienen la intención de resolverlo pronto, por lo que se sugirieron algunas soluciones.
La primera solución que fue fuertemente rechazada por la comunidad, pero no lo intenté, es usar enlaces simbólicos para vincular los directorios que conducen a las instantáneas. Este método parece no funcionar ya que las respuestas de la comunidad dicen que apparmom no funciona con enlaces simbólicos.
La segunda solución es mount --bindel directorio /val/lib/snapd/snapsque funciona bien para mí con las aplicaciones ya instaladas, pero no pude instalar nuevas aplicaciones porque estaba moviendo el directorio a otra partición. Eso me dio un error acerca de la vinculación de la aplicación instantánea con el directorio de caché que se encuentra en /var/lib/snapd/cache. No sé si esta solución puede funcionar si la ubicación está en la misma partición o no; pero esta es la razón por la que estoy moviendo el directorio snap para liberar espacio de la partición a otra.
En tercer lugar, la opción de trabajo es mover el /var/lib/snapddirectorio como un todo mount --binddesde otra ubicación y eso funcionó para mí y aquí están los pasos.
Solo una pequeña nota, ya lo sabe, después de que rsync se realiza en los pasos a continuación, puede hacer una copia de seguridad de los datos dentro /var/lib/snapdde otra ubicación hasta que todo el proceso se complete con éxito, luego puede eliminar los datos de la copia de seguridad si desea liberar más espacio.
##############################################################################
# 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 !!!
##############################################################################
Funciona muy bien para mi. ¡Gracias! Solo tuve que (re) crear el directorio / var / lib / snapd después de moverlo a .bak para que monte -a funcione
Salim
@Salim, tienes razón, me he perdido este paso que agregaré al guión
Muhammad Yusuf el
11
Finalmente encontré un camino.
Primero mueva el paquete a presión a la ubicación deseada. Deje snap_app.snapcomo la aplicación que desea mover. Mueva el paquete de /var/lib/snapd/snaps/snap_app.snapa ~/snaps/snap_app.snap.
Luego debe cambiar la opción de montaje /etc/systemd/system/snap-snap_app-90.mount, el número en el nombre del archivo puede variar. Tiene directiva What=/snap_app_loactionbajo [Mount]. Cámbielo a su nueva ubicación de paquete instantáneo.
Finalmente, debe vincular el paquete de complemento a /var/lib/snapd/snaps/.
Ex:
ln -s ~/snaps/snap_app.snap /var/lib/snapd/snaps/snap_app.snap
El paquete Snap se monta originalmente en el /snap/snap_appdirectorio. puedes consultarlo con mount. Reinicie su máquina y ya está.
Finalmente encontré un camino.
snap_app.snap
como la aplicación que desea mover. Mueva el paquete de/var/lib/snapd/snaps/snap_app.snap
a~/snaps/snap_app.snap
./etc/systemd/system/snap-snap_app-90.mount
, el número en el nombre del archivo puede variar. Tiene directivaWhat=/snap_app_loaction
bajo[Mount]
. Cámbielo a su nueva ubicación de paquete instantáneo./var/lib/snapd/snaps/
.Ex:
ln -s ~/snaps/snap_app.snap /var/lib/snapd/snaps/snap_app.snap
El paquete Snap se monta originalmente en el
/snap/snap_app
directorio. puedes consultarlo conmount
. Reinicie su máquina y ya está.fuente