インストールしたスナップパッケージをホームディレクトリに移動したい。スナップパッケージは.debパッケージよりわずかに大きいため、ルートパーティションにスペースが必要です。パッケージは/var/lib/snapd/snaps
にあり、/snap/app_dir
にパッケージをマウントすることで動作していることを知っています。シミュレートしようとしましたが、うまくいきませんでした。
私はついに道を見つけました。
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
で確認できます。マシンをリブートすると、すべて完了です。
これは多くの人が求める一般的な問題であり、スナップ開発者はすぐに解決するつもりはないようですので、検索中にいくつかの解決策が提案されました。
最初の解決策はコミュニティによって強く拒否されましたが、試みませんでしたが、シンボリックリンクを使用してディレクトリにリンクし、スナップにつながりますこの方法は、コミュニティがシンボリックリンクでは機能しないという回答をコミュニティが返すため、機能しないようです。
2番目の解決策は、mount --bind
ディレクトリ/val/lib/snapd/snaps
です。これは、既にインストールされているアプリケーションでは問題なく動作しますが、新しいアプリケーションのインストールに失敗しましたディレクトリを別のパーティションに移動していたからです。これにより、スナップアプリケーションと/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 !!!
##############################################################################