A partir do Ubuntu 20.04 LTS, o sistema de empacotamento Snap, da Cacnocical, passou a ser o padrão para instalação de programas, em uma aposta comercial da empresa para atrair desenvolvedores.
Snap é um tipo de empacotamento de programa em sandbox. Isso quer dizer que em vez de compartilhar bibliotecas com o sistema, cada programa traz todas suas dependências consigo. No caso específico do Snap, alguns pacotes mais importantes vêm distribuídos no sistema e são compartilhados, diminuindo a carga de download e o espaço de disco utilizado.
De cara, é possível detetar vantagens e desvantagens neste método de instalação. Por um lado, o programa jamais enfrentará problemas com ausência ou incompatiblidade de dependências, tampouco substituirá dependências já instaladas por versões incompatíveis com outros programas que delas também necessitam.
Por outro lado, por não compartilharem dependências, são programas que ocupam muito mais espaço em disco, porque têm que trazer consigo tudo que necessitam.
Portanto, embora seja um sistema menos propenso a provocar instabilidades no sistema, são, também, mais custosos em termos de espaço.
No universo Linux, há alguns sistemas de empacotamento de arquivos para instalação em sandbox em desenvolvimento e concorrendo entre si: Flatpack, Appimage e o Snap, da Canonical.
O Snap é uma aposta comercial da Canonical, e possui dois objetivos: facilitar o sistema de automatização de instalação e manutenção remota, especialmente em plataformas de IOT, e atrair parceiros comerciais, que encontram um mecanismo mais fácil para empacotar seus programas para o Ubuntu.
O problema é que ele envolve a instalação de uma partição virtual para cada pacote instalado, que é montada no carregamento do sistema, o que pode fazer com que ele demore muito para iniciar.
Com sua política comercial, a Canonical passou a empurrar os pacotes Snap goela abaixo dos usuários. A loja de aplicativos instalada no sistema passou a ser a Snap Store, de modo que os programas instalados pelos usuários, pela interface gráfica, são, em sua maioria, pacotes Snap.
Isso não quer dizer que os usuários não consigam instalar os programas com dependências compartilhadas; o método clássico do Linux. Só que, para isso, terão que fazê-lo pelo Terminal, o que não é intuitivo para o usuário novato.
Outra solução é substituir a Snap Store pela Gnome Software. Dessa forma, a solicitação pela interface gráfica realizará a instalação de pacotes .deb com dependências compartilhadas.
Se você estiver convencido a desinstalar o sistema de suporte e instalação dos pacotes Snap, em favor do sistema apt e da Gnome Software, siga os passos a seguir, rodando os comandos, um por vez, no Terminal (Ctrl+Alt+T).
Nota: a partir do Ubuntu 21.10 o Firefox virá instalado por padrão em sua versão Snap. Se quiser eliminá-lo, e os demais programas que porventura tenham sido incluídos, rode o seguinte comando para identificá-los:
snap list
Aparecerá uma lista com os programas instalados. Ao desinstalar completamente o daemon snapd, todos os programas, suas configurações e caches serão eliminados.
Como estes comandos estão sendo acessados pelo Firefox, quando o comando a seguir for acionado, o navegador será desinstalado. Sendo assim, instale a versão dos repositórios.
1.Instalando um navegador temporário
Como o Firefox instalado com o sistema é um SNAP, e ele será desinstalado junto do snapd, será necessário instalar outro navegador, para que seja possível continuar seguindo este tutorial após o expurgo do sistema imposto pela Canonical.
O Epiphany é o navegador nativo do projeto GNOME, e é extremamente leve. Para instalá-lo, rode o seguinte comando no Terminal:
sudo apt install epiphany-browser
2.Removendo o daemon do SNAP e os programas instalados
Vamos começar eliminando o snapd, os pacotes snap e todo o sistema de instalação de pacotes adicionais que vem com o Ubuntu para apagar eventuais redundâncias ou interferências cruzadas com o Gnome Software:
No Terminal (Ctrl+Alt+T), rode novamente o comando de listagens de pacotes snap:
snap list
Com a lista aberta, vamos desinstalar os pacotes, na seguinte ordem (um comando por linha para facilitar a leitura. Para copiar e colar os comandos, utilize Ctrl+C e, no Terminal, Shift+Ctrl+V):
sudo snap remove --purge firefox
Adicionalmente, remova o pacote .deb vazio do Firefox, que apenas existem para redirecionar para o pacote Snap correspondente:
sudo apt remove firefox
sudo snap remove --purge thunderbird
O mesmo em relação ao Thunderbird:
sudo apt remove thunderbird
sudo snap remove --purge snap-store
sudo snap remove --purge gnome-3-38-2004
sudo snap remove --purge gtk-common-themes
sudo snap remove --purge snapd-desktop-integration
sudo snap remove --purge bare
sudo snap remove --purge core20
Agora, desabilite, remova e coloque o daemon snapd em suspenso:
sudo systemctl stop snapd
sudo systemctl disable snapd
sudo systemctl mask snapd
sudo apt purge snapd -y
Após as remoções, rode:
sudo apt autoremove
Limpe e remova eventuais diretórios remanescentes:
rm -rf ~/snap
sudo rm -rf /snap
sudo rm -rf /var/snap
sudo rm -rf /var/lib/snapd
Agora, verifique se o diretório onde ficam instalados os snaps foi desinstalado:
ls /var/lib
Na lista que é apresentada, procure pelo diretório “snapd”. Ele não pode estar presente.
3.Evitando que o snapd seja reinstalado pelo sistema
Mesmo após ter apagado o snapd, a Canonical enfia o pacote, e os programas, goela abaixo do usuário a cada operação de update.
Para evitar que isso aconteça, crie um arquivo de preferência apt gambiarra que enganará o sistema para fazer com que ele sempre ache que há dependências desencontradas quando tentar, ele ou você, instalar o snapd novamente.
Para isso, no Terminal, comece criando o arquivo de configuração “nosnap.pref” em branco no editor Nano com o comando a seguir:
sudo nano /etc/apt/preferences.d/nosnap.pref
Copie e cole (Shift+Ctrl+V) o texto a seguir:
# To prevent repository packages from triggering the installation of snap,
# this file forbids snapd from being installed by APT.
Package: snapd
Pin: release a=*
Pin-Priority: -10
EOF
Salve o arquivo e feche o Nano com a sequência de comandos: Ctrl+x, S (ou Y, se seu sistema estiver em inglês) e “Return”.
##Agora, torne o script executável com o comando:
##sudo chmod +x /etc/apt/preferences.d/nosnap.pref
Só para garantir, vamos colocar os pacotes snap e snapd em hold:
sudo apt-mark hold snap
e
sudo apt-mark hold snapd
Religue o sistema:
sudo reboot now
Por fim, atualize a lista de repositórios com o comando:
sudo apt update
4.Substituindo a loja do Ubuntu pela loja do Gnome
Faça uma instalação limpa do Gnome-software:
sudo apt install --install-suggests gnome-software
Para se certificar de que o snapd não voltou, rode o seguinte comando:
sudo apt purge snapd
5.Instalando a versão DEB do Firefox
[ATUALIZAÇÃO: Ubuntu 22.04 e 23.10] A a Canonical retirou a versão DEB do Firefox (22.04) e do Thunderbird (23.10) de seus repositórios.
Como bloqueamos a instalação do snapd e de pacotes SNAP, é necessário instalar o Firefox, o Thunderbird e outros pacotes a partir de um PPA. Para isso, esse tutorial utilizará o PPA do “The team”, mantido por Rico Tzschichholz, um famoso usuário do Ubuntu e mantenedor dos pacotes oficiais do LibreOffice, entre outros.
Comece instalando o PPA:
sudo add-apt-repository ppa:mozillateam/ppa
Como se pode reparar da descrição, esse PPA foi originalmente criado para o Thunderbird, a versão ESR do Firefox e, agora, conta com a versão oficial do Firefox.
Rode o comando a seguir para instalar o Firefox:
sudo apt install -t 'o=LP-PPA-mozillateam' firefox
E o seguinte comando para o Thunderbird:
sudo apt install -t 'o=LP-PPA-mozillateam' thunderbird
Agora, é necessário apontar os updates desses programas para o PPA correspondente:
Para alterar a ordem de prioridade e colocar a versão do PPA no topo, abra o arquivo em branco a seguir no Nano:
sudo nano /etc/apt/preferences.d/mozillateamppa
O comando cria um arquivo de configuração em branco. Copie (Ctrl+C) e cole (Shift+Ctrl+V) as linhas abaixo:
Package: firefox*
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001
Package: firefox*
Pin: release o=Ubuntu
Pin-Priority: -1
Package: thunderbird*
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001
Package: thunderbird*
Pin: release o=Ubuntu
Pin-Priority: -1
Salve o arquivo e feche o Nano com a sequência de teclas: Ctrl+X, Y (ou S), Enter.
É isso.