설치된 스냅 패키지를 홈 디렉토리로 옮기고 싶습니다. 스냅 패키지는 .deb 패키지보다 약간 크기 때문에 루트 파티션의 공간을 차지합니다. 패키지가 있으며 패키지를에 /var/lib/snapd/snaps
마운트하는 작업을하고 있음을 알고 있습니다 /snap/app_dir
. 단순화하려고했지만 작동하지 않았습니다.
답변
스냅 설치 디렉토리 변경
이것은 많은 사람들이 요구하는 일반적인 문제입니다. 스냅 개발자가 곧 해결하려고하지 않는 것 같으므로 일부 솔루션이 제안되었습니다.
커뮤니티가 강력하게 거부했지만 첫 번째 해결책 은 심볼릭 링크를 사용하여 스냅으로 연결되는 디렉토리를 연결하는 것입니다. 커뮤니티의 답변에 따르면 apparmom은 심볼릭 링크와 함께 작동하지 않는다고 말하면서이 방법은 작동하지 않는 것 같습니다.
두 번째 해결책 은 이미 설치된 응용 프로그램에서 나에게 잘 작동 mount --bind
하는 디렉토리 /val/lib/snapd/snaps
이지만 디렉토리를 다른 파티션으로 이동했기 때문에 새 응용 프로그램을 설치하지 못했습니다. 스냅 응용 프로그램을에있는 캐시 디렉토리와 하드 링크하는 것에 대한 오류가 발생했습니다 /var/lib/snapd/cache
. 위치가 동일한 파티션에 있는지 여부에 관계 없이이 솔루션이 작동하는지 알 수 없습니다. 그러나 이것이 파티션에서 다른 공간으로 공간을 확보하기 위해 snap 디렉토리를 이동하는 이유입니다.
세 번째이자 작업 옵션 은 /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
. 머신을 재부팅하면 모든 작업이 완료됩니다.