web-dev-qa-db-fra.com

Déplacer les packages de capture vers un autre emplacement / répertoire

Je souhaite déplacer les packages d'installation installés dans le répertoire de base. Les paquets instantanés sont légèrement plus grands que les paquets .deb, ils prennent donc de la place dans la partition racine. Je sais que les paquets sont situés dans /var/lib/snapd/snaps et ils travaillent avec le montage du paquet sur /snap/app_dir. J'ai essayé de simlinked, mais cela n'a pas fonctionné.

4
ultimatex

J'ai finalement trouvé un moyen.

  • Tout d'abord, déplacez le paquet instantané à l'emplacement souhaité. Laissez snap_app.snap comme application que vous souhaitez déplacer. Déplacez le package de /var/lib/snapd/snaps/snap_app.snap vers ~/snaps/snap_app.snap.
  • Ensuite, vous devez changer l’option de montage dans /etc/systemd/system/snap-snap_app-90.mount, le numéro dans le nom du fichier peut varier. La directive What=/snap_app_loaction est sous [Mount]. Changez-le pour votre nouvel emplacement de paquet instantané.
  • Enfin, vous devez créer un lien symbolique entre le paquet logiciel instantané et /var/lib/snapd/snaps/.
    Ex: ln -s ~/snaps/snap_app.snap /var/lib/snapd/snaps/snap_app.snap

Le package de capture est monté à l’origine dans le répertoire /snap/snap_app. vous pouvez le vérifier avec mount. Redémarrez votre ordinateur et vous avez tous terminé.

4
ultimatex

Modifier le répertoire d'installation des captures

C’est un problème courant que beaucoup de gens demandent, il semble que les développeurs d’instantanés n’aient pas l’intention de le résoudre rapidement; certaines solutions ont donc été suggérées lors de ma recherche.

La première solution qui a été fortement refusée par la communauté, mais je n'ai pas essayé, consiste à utiliser un lien symbolique pour relier les répertoires, ce qui conduit à des instantanés. cette méthode ne semble pas fonctionner car la communauté répond que cet apparmom ne fonctionne pas avec des liens symboliques.

La deuxième solution est mount --bind le répertoire /val/lib/snapd/snaps qui fonctionne bien pour moi avec les applications déjà installées mais n'a pas pu installer de nouvelles applications car je déplaçais le répertoire vers un autre. cloison. Cela m'a donné une erreur sur la liaison difficile de l'application instantanée avec le répertoire de cache qui se trouve dans /var/lib/snapd/cache. Je ne sais pas si cette solution peut fonctionner si l'emplacement se trouve dans la même partition ou non; mais c’est la raison pour laquelle je déplace le répertoire de capture pour libérer de l’espace d’une partition à une autre.

La troisième option qui fonctionne consiste à déplacer le répertoire /var/lib/snapd dans son ensemble, puis mount --bind à partir d'un autre emplacement, ce qui a fonctionné pour moi et voici les étapes.

Juste une petite note, vous le savez déjà, une fois que rsync est terminé dans les étapes ci-dessous, vous pouvez sauvegarder les données dans /var/lib/snapd vers un autre emplacement jusqu'à la fin du processus, puis vous pouvez supprimer les données de sauvegarde si vous souhaitez libérer plus d'espace. .

##############################################################################
# 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 !!!
##############################################################################

Références

  1. emplacement du disque personnalisé pour certains instantanés issue
  2. poser la question Ubuntu (Pas la meilleure solution) Lien
  3. Suggestion d'utiliser le montage lié au lieu des liens symboliques dans les répertoires de capture mobiles Link
  4. Différences entre le montage lié et les liens symboliques Lien
  5. Make bind mont permanent
7
Muhammad Yusuf