Answers:
这是许多人要求的常见问题。快照开发人员似乎不打算很快解决它,因此提出了一些解决方案。
社区强烈拒绝但我没有尝试的第一个解决方案是使用符号链接来链接导致快照的目录。这种方法似乎不起作用,因为社区答复说apparmom不适用于符号链接。
第二种解决方案是mount --bind
该目录/val/lib/snapd/snaps
对我来说可以很好地与已安装的应用程序一起使用,但是由于将目录移动到另一个分区而无法安装新的应用程序。这给了我关于将快照应用程序与位于中的缓存目录进行硬链接的错误/var/lib/snapd/cache
。我不知道该位置是否在同一分区中是否可以解决此问题;但这就是为什么我要移动快照目录以将某些空间从分区释放到另一个目录的原因。
第三个可行的选择是将/var/lib/snapd
目录作为一个整体,然后mount --bind
从另一个位置移动到该目录,这对我有用,这是步骤。
仅需注意一点,您已经知道,在完成以下步骤的rsync之后,您可以将内部数据备份/var/lib/snapd
到另一个位置,直到成功完成整个过程为止,然后,如果要释放更多空间,则可以删除备份数据。
##############################################################################
# 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 !!!
##############################################################################
我终于找到了办法。
snap_app.snap
为你想移动的应用程序。将软件包从/var/lib/snapd/snaps/snap_app.snap
移至~/snaps/snap_app.snap
。/etc/systemd/system/snap-snap_app-90.mount
,文件名中的数字可能有所不同。它What=/snap_app_loaction
在下有指令[Mount]
。将其更改为新的快照包位置。/var/lib/snapd/snaps/
。ln -s ~/snaps/snap_app.snap /var/lib/snapd/snaps/snap_app.snap
Snap软件包最初安装在/snap/snap_app
目录中。您可以使用进行检查mount
。重新启动计算机,一切就完成了。