Mova os pacotes de encaixe para outro local / diretório

3

Eu quero mover os pacotes instantâneos instalados para o diretório inicial. Os pacotes do Snap são ligeiramente maiores que os pacotes .deb, portanto, ocupam espaço na minha partição raiz. Eu sei que os pacotes estão localizados em /var/lib/snapd/snaps e eles estão trabalhando com a montagem do pacote em /snap/app_dir . Eu tentei simular, mas não funcionou.

    
por ultimatex 29.04.2018 / 09:17

2 respostas

2

Eu finalmente encontrei um jeito.

  • Primeiro, mova o pacote de encaixe para o local desejado. Deixe snap_app.snap como o aplicativo que você deseja mover. Mova o pacote de /var/lib/snapd/snaps/snap_app.snap para ~/snaps/snap_app.snap .
  • Então você tem que mudar a opção de montagem em /etc/systemd/system/snap-snap_app-90.mount , número no nome do arquivo pode ser variar. Tem diretiva What=/snap_app_loaction sob [Mount] . Altere-o para o novo local do pacote de snap.
  • Finalmente você tem que ligar simbolicamente o pacote snap a /var/lib/snapd/snaps/ .
    Ex: %código%

O pacote do Snap é originalmente montado no diretório ln -s /var/lib/snapd/snaps/snap_app ~/snaps/snap_app.snap . você pode verificar com /snap/snap_app . Reinicie a sua máquina e está tudo pronto.

    
por ultimatex 30.04.2018 / 07:13
1

Alterar diretório de instalação de snaps

Este é um problema comum que muitos pedem, parece que os desenvolvedores não pretendem resolvê-lo logo, então algumas soluções foram sugeridas enquanto eu procuro.

A primeira solução que foi strongmente recusada pela comunidade, mas eu não tentei, é usar link simbólico para vincular os diretórios que levam a snaps, este método parece não funcionar como o A comunidade responde que não parece funcionar com links simbólicos.

A segunda solução é mount --bind do diretório /val/lib/snapd/snaps , que funciona bem para mim com os aplicativos já instalados, mas não conseguiu instalar novos aplicativos porque eu estava movendo o diretório para outra partição. Isso me deu um erro sobre a vinculação difícil do aplicativo snap com o diretório de cache que está localizado em /var/lib/snapd/cache . Não sei se essa solução pode funcionar se o local estiver na mesma partição ou não; mas esta é a razão pela qual eu estou movendo o diretório snap para liberar algum espaço da partição para outro.

A terceira e opção de trabalho é mover o diretório /var/lib/snapd como um todo, em seguida, mount --bind para outro local e isso funcionou para mim, e aqui estão as etapas.

Apenas uma pequena nota, você já sabe, Depois que o rsync é feito nas etapas abaixo, você pode fazer backup dos dados dentro de /var/lib/snapd para outro local até que todo o processo seja concluído com êxito, então você poderá remover os dados de backup se quer libertar mais espaço.

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

Referências

  1. Local de disco personalizado para determinados snaps questão
  2. ask ubuntu Pergunta (Não é a melhor solução) Link
  3. Sugestão para usar o bind mount em vez de links simbólicos em diretórios de snap em movimento Link
  4. Diferenças entre links de montagem e simbólicos Link
  5. Faça o bind mount permenant
por Muhammad Yusuf 30.08.2018 / 22:40