回答:
これは多くの人が求める一般的な問題です。スナップ開発者はすぐにそれを解決するつもりはないようですので、いくつかの解決策が提案されました。
コミュニティによって強く拒否された最初の解決策は、私が試みなかったのですが、スナップにつながるディレクトリをリンクするためにシンボリックリンクを使用することです。apparmomはシンボリックリンクでは機能しないとコミュニティが返信しているため、この方法は機能しないようです。
2番目の解決策はmount --bind
、/val/lib/snapd/snaps
既にインストールされているアプリケーションで正常に機能するディレクトリですが、ディレクトリを別のパーティションに移動していたため、新しいアプリケーションをインストールできませんでした。そのため、snapアプリケーションをにあるキャッシュディレクトリにハードリンクすることに関するエラーが発生しました/var/lib/snapd/cache
。場所が同じパーティション内にあるかどうかにかかわらず、このソリューションが機能するかどうかはわかりません。しかし、これがスナップディレクトリを移動して、一部のスペースをパーティションから別のスペースに解放する理由です。
3番目の有効なオプションは、/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_app
ディレクトリにマウントされています。で確認できますmount
。マシンを再起動すれば完了です。