Many Linux distributions come with Firefox pre-installed through their package manager and set as the default browser. However, if you need to install Firefox on Linux using a different method, the following guide will show you various alternative ways to download and install Firefox on Linux.
Table of Contents
Install Firefox .deb package for Debian-based distributions (Recommended)
To install the .deb
package through the APT repository, do the following:
- Create a directory to store APT repository keys if it doesn't exist:
sudo install -d -m 0755 /etc/apt/keyrings
- Import the Mozilla APT repository signing key:
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
- If you do not have
wget
installed, you can install it with:sudo apt-get install wget
- The fingerprint should be 35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3. You may check it with the following command:
gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); if($0 == "35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3") print "\nThe key fingerprint matches ("$0").\n"; else print "\nVerification failed: the fingerprint ("$0") does not match the expected one.\n"}'
- Next, add the Mozilla APT repository to your sources list:
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null
- Configure APT to prioritize packages from the Mozilla repository:
echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
' | sudo tee /etc/apt/preferences.d/mozilla
- Update your package list, and install the Firefox .deb package:
sudo apt-get update && sudo apt-get install firefox
Set up different languages in Firefox with .deb files
For those of you who would like to use Firefox in a different language than American English, we have also created .deb
packages containing the Firefox language packs. To install a specific language pack, replace fr in the example below with the desired language code:
sudo apt-get install firefox-l10n-fr
To list all the available language packs, you can use this command after adding the Mozilla APT repository and running sudo apt-get update
:
apt-cache search firefox-l10n
Data migration
If you were using Snap or Flatpak before, you are required to import your profile. There are two ways to do this. You can use either of these methods:
- Method 1: Set up Sync. For instruction, see How do I set up Sync on my computer?
- Method 2: Copy the existing files on your computer. Make sure that all copies of Firefox on your computer are completely closed before doing this:
- Flatpak:
mkdir -p ~/.mozilla/firefox/ && cp -a ~/.var/app/org.mozilla.firefox/.mozilla/firefox/* ~/.mozilla/firefox/
- Snap:
mkdir -p ~/.mozilla/firefox/ && cp -a ~/snap/firefox/common/.mozilla/firefox/* ~/.mozilla/firefox/
- Flatpak:
In both cases, once you’ve moved the profiles, launch Firefox from the terminal with the command firefox -P
. Select your desired profile. After this initial setup, the -P
command will no longer be necessary.
Install from your distribution package manager
To install Firefox using your distribution package manager, please refer to your Linux distribution's documentation.
This method is recommended because it ensures Firefox and all the required libraries are installed and configured optimally for your distribution. However, there may be a small delay between the official release of a new version of Firefox and the moment when your distribution updates the version it distributes. Your distribution may also distribute it without the Firefox branding or only distribute the ESR version.
Install from Flatpak
To install Firefox from Flatpak, install and configure Flatpak on your computer. Once Flatpak is installed, go to the Firefox Flathub's page, and click the button. Alternatively, you can type the following command in a terminal:
flatpak install flathub org.mozilla.firefox
By default, Flatpak installs Firefox in the same locale as your operating system. To use a different language, please follow the instructions on how to use Firefox in another language.
Install from Snap
To install Firefox from Snap, install Snap on your computer. Once Snap is installed, go to the Firefox Snapcraft's Store page, click the button, and follow the instructions. Alternatively, you can type the following command in a terminal:
sudo snap install firefox
If available, Snap installs Firefox in the same locale as your operating system. To use a different language, please follow the instructions on how to use Firefox in another language.
Install Firefox from Mozilla builds
Before you install Firefox from a Mozilla build, make sure that your computer has the required libraries installed. Missing or incompatible libraries may cause Firefox to be inoperable.
System Firefox installation (for advanced users)
To install Firefox with this method, you must be able to log in as root or execute sudo
commands.
This installation will have priority over the Firefox version installed through your package manager. To run the version installed with your package manager, you will need to execute the binary from a terminal. To do so in most distributions, open a terminal and type:/usr/bin/firefox
- Go to the Firefox download page, and click the button.
- Open a terminal, and go to the folder where your download has been saved. For example:
-
cd ~/Downloads
- Extract the contents of the downloaded file by typing:
-
tar xjf firefox-*.tar.bz2
-
The following commands must be executed as root or preceded bysudo
.
-
- Move the uncompressed Firefox folder to /opt:
-
mv firefox /opt
-
- Create a symlink to the Firefox executable:
-
ln -s /opt/firefox/firefox /usr/local/bin/firefox
-
- Download a copy of the desktop file:
-
wget https://raw.githubusercontent.com/mozilla/sumo-kb/main/install-firefox-linux/firefox.desktop -P /usr/local/share/applications
-
Alternatively, if wget
is not installed on your computer, go to the URL mentioned above, right-click on the page to open the contextual menu, and select . After you downloaded the file, move it to /usr/local/share/applications.
To verify that the installation was successful, you can open the Troubleshooting Information page. In the Application Basics section, the value of the line Application Binary should be /opt/firefox/firefox-bin.
Local Firefox installation in user's account
sudo
commands, or just prefer to use a local Firefox in your account, you can make a local installation. You can also do this to have multiple Firefox installations for different builds.- Go to the Firefox download page, and click the button.
- You can also click the Download a different platform or language link below that button to choose another build: Nightly, Beta, Developer or ESR.
- Open a terminal, and go to the folder where your download has been saved. For example:
-
cd ~/Downloads
-
- Extract the downloaded file contents. This will create a folder named firefox. After that, you can delete the archive:
-
tar xjf firefox-*.tar.bz2
rm firefox-*.tar.bz2
-
- If you downloaded a specific build, you may want to rename the uncompressed folder accordingly. For example:
-
mv firefox firefox-nightly
-
- You can leave the uncompressed folder into your download folder, or move it to another place in your account. For example:
-
mv firefox ~/firefox
-
- Firefox is now ready to be used. You can run it directly from the terminal:
-
~/firefox/firefox &
-
- Create a desktop shortcut. (It may be different in your Linux distribution.)
- Right-click on the desktop, and choose Create launcher from the context menu.
- You can also type this on the terminal:
-
ln -s ~/firefox/firefox ~/Desktop/
-
- An icon for the desktop shortcut will be found in
~/firefox/browser/chrome/icons/default/
Security features warning
You may see a warning that “some of Firefox’s security features may offer less protection on your current operating system”.
The sandbox in Firefox makes use of unprivileged user namespaces when creating new processes for enforcing more security. This can be considered a security risk, therefore some Linux distributions have started to restrict its usage and only allow it to work where there is an AppArmor profile.
Such profiles can only cover a limited set of installations paths, including Snap and Debian packages. They cannot however cover some other use cases, such as tarball installations as well as local development builds.
To create an AppArmor profile for Firefox:
In /etc/apparmor.d/
, create a file with the name firefox-local
in the file, add the following:
# This profile allows everything and only exists to give the
# application a name instead of having the label "unconfined"
abi <abi/4.0>,
include <tunables/global>
profile firefox-local
/home/<USER>/bin/firefox/{firefox,firefox-bin,updater}
flags=(unconfined) {
userns,
# Site-specific additions and overrides. See local/README for details.
include if exists <local/firefox>
}
Replace <USER>
with your Linux user name
This assumes the Firefox install is at $HOME/bin/
Once you have saved the file, run sudo systemctl restart apparmor.service
in the Linux terminal.