Alterar diretório de instalação de snaps
Este é um problema comum que muitos pedem, parece que os desenvolvedores não pretendem resolvê-lo logo, então algumas soluções foram sugeridas enquanto eu procuro.
A primeira solução que foi strongmente recusada pela comunidade, mas eu não tentei, é usar link simbólico para vincular os diretórios que levam a snaps, este método parece não funcionar como o A comunidade responde que não parece funcionar com links simbólicos.
A segunda solução é mount --bind
do diretório /val/lib/snapd/snaps
, que funciona bem para mim com os aplicativos já instalados, mas não conseguiu instalar novos aplicativos porque eu estava movendo o diretório para outra partição. Isso me deu um erro sobre a vinculação difícil do aplicativo snap com o diretório de cache que está localizado em /var/lib/snapd/cache
. Não sei se essa solução pode funcionar se o local estiver na mesma partição ou não; mas esta é a razão pela qual eu estou movendo o diretório snap para liberar algum espaço da partição para outro.
A terceira e opção de trabalho é mover o diretório /var/lib/snapd
como um todo, em seguida, mount --bind
para outro local e isso funcionou para mim, e aqui estão as etapas.
Apenas uma pequena nota, você já sabe, Depois que o rsync é feito nas etapas abaixo, você pode fazer backup dos dados dentro de /var/lib/snapd
para outro local até que todo o processo seja concluído com êxito, então você poderá remover os dados de backup se quer libertar mais espaço.
##############################################################################
# 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.
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 !!!
##############################################################################
Referências
-
Local de disco personalizado para determinados snaps questão
- ask ubuntu Pergunta (Não é a melhor solução) Link
- Sugestão para usar o bind mount em vez de links simbólicos em diretórios de snap em movimento Link
- Diferenças entre links de montagem e simbólicos Link
- Faça o bind mount permenant