我想将安装的 snap 包移动到主目录。Snap 包比 .deb 包稍大,因此它们在我的根分区中占用空间。我知道包位于/var/lib/snapd/snaps并且他们正在将包安装到/snap/app_dir. 我试图simlinked,但它没有用。
Muh*_*suf 26
这是许多人要求的常见问题。似乎 snap 开发人员不打算很快解决它,因此提出了一些解决方案。
第一个被社区强烈拒绝但我没有尝试的解决方案是使用符号链接来链接导致快照的目录。这种方法似乎不起作用,因为社区回复说 apparmom 不适用于符号链接。
第二种解决方案是使用已安装的应用程序对我来说很好用mount --bind的目录/val/lib/snapd/snaps,但由于我将目录移动到另一个分区而无法安装新的应用程序。这给了我一个关于将 snap 应用程序与位于/var/lib/snapd/cache. 如果位置在同一分区中,我不知道此解决方案是否可行;但这就是我移动 snap 目录以从分区释放一些空间到另一个分区的原因。
第三个也是可行的选择是将整个/var/lib/snapd目录移动mount --bind到另一个位置,这对我有用,这是步骤。
只是一个小提示,您已经知道,在以下步骤中完成 rsync 后,您可以将里面的数据备份/var/lib/snapd到另一个位置,直到整个过程成功完成,然后如果您想释放更多空间,您可以删除备份数据,但是保持/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 -p /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 are kept for
recovery until you, manually reboot the system and make sure the service
is running correctly. Then you can manually remove the folder ~/snap/snapd
!!!!!!!!!!!!!!, you should do that manually."
fi
##############################################################################
# Take care the previous section may break the System !!!
##############################################################################
Run Code Online (Sandbox Code Playgroud)
Lak*_*ash 12
我找到了这个方法...
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]. 将其更改为新的 snap 包位置。/var/lib/snapd/snaps/. ln -s ~/snaps/snap_app.snap /var/lib/snapd/snaps/snap_app.snapSnap 包最初是挂载到/snap/snap_app目录中的。你可以用mount. 重新启动你的机器,你就完成了。
| 归档时间: |
|
| 查看次数: |
19321 次 |
| 最近记录: |