Saya ingin memindahkan paket snap yang diinstal ke direktori home. Paket snap sedikit lebih besar dari paket deb sehingga mereka mengambil ruang di partisi root saya. Saya tahu paket berada di /var/lib/snapd/snapsdan mereka bekerja dengan memasang paket ke /snap/app_dir. Saya mencoba untuk terhubung, tetapi tidak berhasil.
Ini adalah masalah umum yang banyak diminta. Sepertinya pengembang jepret tidak bermaksud menyelesaikannya segera, jadi beberapa solusi disarankan.
Solusi pertama yang sangat ditolak oleh masyarakat, tetapi saya tidak mencoba, adalah dengan menggunakan tautan simbolis untuk menghubungkan direktori yang mengarah ke buncis. Metode ini tampaknya tidak berfungsi karena balasan komunitas mengatakan bahwa apparmom tidak bekerja dengan tautan simbolik.
Solusi kedua adalah mount --binddirektori /val/lib/snapd/snapsyang berfungsi baik bagi saya dengan aplikasi yang sudah diinstal tetapi gagal menginstal aplikasi baru karena saya memindahkan direktori ke partisi lain. Itu memberi saya kesalahan tentang menghubungkan aplikasi snap dengan direktori cache yang terletak di /var/lib/snapd/cache. Saya tidak tahu apakah solusi ini dapat berfungsi jika lokasi berada di partisi yang sama atau tidak; tapi ini adalah alasan mengapa saya memindahkan direktori snap untuk membebaskan beberapa ruang dari partisi ke yang lain.
Opsi ketiga dan yang berfungsi adalah memindahkan /var/lib/snapddirektori secara keseluruhan kemudian mount --bindke direktori itu dari lokasi lain dan itu berhasil untuk saya dan berikut adalah langkah-langkahnya.
Hanya sebuah catatan kecil, Anda sudah tahu, setelah rsync dilakukan pada langkah-langkah di bawah ini, Anda dapat membuat cadangan data di dalam /var/lib/snapdke lokasi lain sampai seluruh proses berhasil dilakukan maka Anda dapat menghapus data cadangan jika Anda ingin membebaskan lebih banyak ruang.
##############################################################################
# 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 !!!
##############################################################################
Bekerja bagus untukku. Terima kasih! Saya hanya perlu (kembali) membuat direktori / var / lib / snapd setelah memindahkannya ke .bak agar mount -a berfungsi
Salim
@ Salim, Anda benar, saya telah melewatkan langkah ini yang akan saya tambahkan ke skrip
Muhammad Yusuf
11
Saya akhirnya menemukan jalan.
Pertama-tama pindahkan paket snap ke lokasi yang diinginkan. Biarkan snap_app.snapsebagai aplikasi yang ingin Anda pindahkan. Pindahkan paket dari /var/lib/snapd/snaps/snap_app.snapke ~/snaps/snap_app.snap.
Maka Anda harus mengubah opsi mount /etc/systemd/system/snap-snap_app-90.mount, nomor dalam nama file mungkin bervariasi. Ini memiliki arahan di What=/snap_app_loactionbawah [Mount]. Ubah ke lokasi paket snap baru Anda.
Akhirnya Anda harus symlink paket snap ke /var/lib/snapd/snaps/.
Ex:
ln -s ~/snaps/snap_app.snap /var/lib/snapd/snaps/snap_app.snap
Paket snap awalnya di-mount ke /snap/snap_appdirektori. Anda dapat memeriksanya mount. Nyalakan ulang mesin Anda dan Anda semua selesai.
Saya akhirnya menemukan jalan.
snap_app.snap
sebagai aplikasi yang ingin Anda pindahkan. Pindahkan paket dari/var/lib/snapd/snaps/snap_app.snap
ke~/snaps/snap_app.snap
./etc/systemd/system/snap-snap_app-90.mount
, nomor dalam nama file mungkin bervariasi. Ini memiliki arahan diWhat=/snap_app_loaction
bawah[Mount]
. Ubah ke lokasi paket snap baru Anda./var/lib/snapd/snaps/
.Ex:
ln -s ~/snaps/snap_app.snap /var/lib/snapd/snaps/snap_app.snap
Paket snap awalnya di-mount ke
/snap/snap_app
direktori. Anda dapat memeriksanyamount
. Nyalakan ulang mesin Anda dan Anda semua selesai.sumber