How to remove Snap completely without losing Firefox?
I am wondering whether or not there is a way to completely remove Snap from Ubuntu 21.10 (Impish Indri) without losing the ability to install Ubuntu's default browser Firefox.
When I just recently updated to the newest Ubuntu release I realized that the installer programmatically reinstalled Snap, although I had manually removed it before. Additionally the installer removed Firefox, which was installed via the repositories, and reinstalled it via snap.
As I don't want snap to be installed on my machines for various reasons, my question is: Is there a safe way to remove it, and to get the Firefox DEB back to the sources?
Is there a PPA? Could I use a source of an Ubuntu flavor additionally, which didn't remove the Firefox Deb from its sources?
You can combine two measures.
Start by removing Snap package of Firefox by snap remove firefox --purge
.
Then follow the steps:
-
prevent Snap installation by purging and pinning it with negative priority:
sudo apt-get autopurge snapd cat <<EOF | sudo tee /etc/apt/preferences.d/nosnap.pref # To prevent repository packages from triggering the installation of Snap, # this file forbids snapd from being installed by APT. # For more information: https://linuxmint-user-guide.readthedocs.io/en/latest/snap.html Package: snapd Pin: release a=* Pin-Priority: -10 EOF
-
Then install Firefox from
-
official repositories as simple as
sudo apt-get install firefox
-
some third-party (but trusted) repositories
a. deb-packaged Firefox from UbuntuZilla - regular or ESR
Add UbuntuZilla repository with its signing key byecho "deb http://downloads.sourceforge.net/project/ubuntuzilla/mozilla/apt all main" | sudo tee -a /etc/apt/sources.list.d/ubuntuzilla.list > /dev/null sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2667CA5C sudo apt-get update sudo apt-get install firefox-mozilla-build
Note: if one needs ESR version - then replace last command with
sudo apt-get install firefox-esr-mozilla-build
.Removal is possible by the following commands:
sudo rm /etc/apt/sources.list.d/ubuntuzilla.list sudo apt-get autoremove --purge '*firefox*' sudo apt-get update
b. deb packaged Firefox ESR version from Mozilla Team PPA
To get Firefox ESR version installed from Mozilla Team PPA use commands below:
sudo add-apt-repository ppa:mozillateam/ppa sudo apt-get update sudo apt-get install firefox-esr
Additional locales may be installed by using packages like
firefox-esr-locale-it
(example for Italian).To remove deb-packaged Firefox one can use commands like:
sudo apt-get install ppa-purge sudo ppa-purge ppa:mozillateam/ppa sudo apt-get autoremove --purge
-
Locally extracted Firefox archive
If one needs to download and install Firefox to the home folder, then it is possible in the following way:
mkdir ~/Software ~/bin cd ~/Software wget -c http://ftp.mozilla.org/pub/firefox/releases/93.0/linux-x86_64/en-US/firefox-93.0.tar.bz2 tar -xf firefox-93.0.tar.bz2 ln -sf /home/$USER/Software/firefox/firefox ~/bin/firefox # create desktop-file with long command below mkdir -p ~/.local/share/applications/ cat <<EOF > ~/.local/share/applications/firefox-user.desktop #!/usr/bin/env xdg-open [Desktop Entry] Encoding=UTF-8 Name=Firefox (local) GenericName=Browser Comment=Web Browser Exec=firefox %u Icon=/home/$USER/Software/firefox/browser/chrome/icons/default/default48.png Terminal=false X-MultipleArgs=false StartupWMClass=Firefox Type=Application Categories=Network;WebBrowser; MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall; EOF update-menus
then logout and login back.
To remove such local installation use commands below:
rm -rf ~/Software/firefox rm -v ~/.local/share/applications/firefox-user.desktop rm -v ~/bin/firefox update-menus
-
Discussion and notes:
My personal choice will be one of deb-based.
I would prefer ESR (2b) to get my Firefox behavior stable as it is needed for enterprise level application.