122

As far as I see in the ongoing development for 22.04 Jammy, Firefox is a Snap package. The related Deb package in apt is just a shortcut/link to the that snap version.

I prefer my installation not to be from snap packages, since I find them too much 'Ubuntu-specific'.

Are there alternative ways to install Firefox on Jammy?
My favourite option would be an Apt repository or PPA. I will test the Flatpak version with my test virtual machine in the meantime.

Archisman Panigrahi
  • 28,338
  • 18
  • 105
  • 212
igi
  • 2,575
  • 1
    There is an Ubuntu bug here for permission problems caused by Snap packaged Firefox: https://bugs.launchpad.net/snapd/+bug/1972762 . Please go mark that bug as "also affects me" if you're having permission problems in Firefox due it being managed by Snap. – ntc2 May 29 '23 at 07:42

10 Answers10

156

If you switch to the APT version, you will lose the bookmarks in the snap version unless you sync them with your Firefox account, or export them manually.


The other answer by Organic Marble is for Firefox-ESR, and the answer by eddygeek is for the beta version.

This answer is for the latest stable version of Firefox. You can use the Firefox PPA maintained by Mozilla team.

sudo add-apt-repository ppa:mozillateam/ppa

Then, copy and paste the following code in a terminal in one go (don't copy-paste line by line) to prioritize the apt version of firefox over the snap version.

echo '
Package: *
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001

Package: firefox Pin: version 1:1snap1-0ubuntu2 Pin-Priority: -1 ' | sudo tee /etc/apt/preferences.d/mozilla-firefox

Next, remove the snap version of firefox

sudo snap remove firefox

If you see the following error,

error: cannot perform the following tasks:
- Remove data for snap "firefox" (1943) (unlinkat /var/snap/firefox/common/host-hunspell/en_ZA.dic: read-only file system)

Then run the following commands (source) to disable the hunspell service, and try removing Firefox snap once again.

sudo systemctl stop var-snap-firefox-common-host\\x2dhunspell.mount
sudo systemctl disable var-snap-firefox-common-host\\x2dhunspell.mount
sudo snap remove firefox

Install Firefox with apt.

sudo apt install firefox

To ensure that unattended upgrades do not reinstall the snap version of Firefox, enter the following command. Alternatively, you can turn off unattended upgrades.

echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox

To undo these changes

  1. Remove the firefox PPA.
sudo add-apt-repository -r ppa:mozillateam/ppa
  1. Remove the apt pin.
sudo rm -rf /etc/apt/preferences.d/mozilla-firefox
  1. Remove the apt version and reinstall snap.
sudo apt remove firefox && sudo snap install firefox

Source: OMG Ubuntu

Archisman Panigrahi
  • 28,338
  • 18
  • 105
  • 212
  • 28
    It is stupid that Ubuntu thinks that the version in snap is newer than the one from the actual repository. This answer makes sense to block Ubuntu from installing the snap version but it really seems like a pain that you have to add the pinning to block it now where in the past you did not. Thanks for a great answer! +1 – Terrance May 01 '22 at 17:33
  • 4
    Thanks! This is helpful. As a developer, I won't tolerate curl localhost:3000/ working fine, but the browser barfing some BS error at me on that same URL due to Snap shenanigans. – ulidtko Oct 14 '22 at 10:26
  • 8
    Beware of two things if doing this: a) the snap has put your firefox profile in ~/snap/firefox/common/.mozilla/firefox/... (though an old one may be in ~/.mozilla/firefox/...) b) that directory (~/snap/firefox/common/) will be removed(!) when you remove the snap

    You probably therefore want to backup/move your firefox profile before doing this.

    If you get caught out https://askubuntu.com/questions/1245136/where-does-snap-store-user-data-for-apps-that-have-been-removed and https://snapcraft.io/docs/snapshots may help you get your profile back.

    – PeterJCLaw Jan 04 '23 at 19:26
  • Won't this answer erase your profile and all your app data - bookmarks, history, settings, passwords, etc? – markling May 30 '23 at 08:08
  • @markling Yes it will, but you can sync everything by signing into Firefox – Archisman Panigrahi May 30 '23 at 12:05
  • So it is necessary to sign up and deploy Firefox Sync before doing this operation or you will lose your data? Hadn't you better say that? – markling Jun 01 '23 at 08:42
  • @markling Is not that obvious, given snap is self contained? – Archisman Panigrahi Sep 17 '23 at 01:06
11

Warning - answer may have been obsoleted by recent events as of Feb 2024

You can install the official Firefox ESR (Extended Support Release) version via .deb from the Mozilla ppa

sudo add-apt-repository ppa:mozillateam/ppa
sudo apt install firefox-esr

More information is available here: https://ubuntuhandbook.org/index.php/2022/03/install-firefox-esr-ubuntu/

Organic Marble
  • 23,641
  • 15
  • 70
  • 122
  • Note that if you try to use your old FireFox profile with FireFox ESR, it will fail to startup and complain about possible profile corruption. I didn't try to find a work around, I just switched the PPA install of regular Firefox from the other answer. – ntc2 May 29 '23 at 08:53
  • 1
    You can keep your profile, but only if the ESR version is the same as (or newer) than the current release version. And this only happens once a year. – YtvwlD Sep 07 '23 at 13:08
  • 1
    The ESR version worked for me!! Thank you. – Quantanglement Jan 06 '24 at 00:53
  • @user535733 thanks, done – Organic Marble Feb 14 '24 at 15:41
  • Could you explain why this may have been obsoleted? What recent events are you referring to? – FWDekker Mar 02 '24 at 17:23
  • 1
    @FWDekker there's now an official Mozilla ppa for the regular version of FF, more frequently updated than the ESR version. https://ubuntuhandbook.org/index.php/2022/04/install-firefox-deb-ubuntu-22-04/ – Organic Marble Mar 02 '24 at 17:32
10

This was the only thing that worked for me after upgrading to Ubuntu 22.10.

First, remove the Snap version of Firefox:

sudo snap remove firefox

(If you have settings in the Snap version of Firefox under ~/snap/firefox/, you may want to migrate those to ~/.mozilla/firefox/)

Then add the PPA from mozillateam:

sudo add-apt-repository ppa:mozillateam/ppa

Now, the package firefox is provided by both the Ubuntu repos and the Mozilla PPA. The version provided in the Ubuntu repos is a transitional package that actually installs the Snap version of Firefox behind the scenes, which in this case, we don't want. Check that you can see both firefox packages by running:

apt info -a firefox

To prevent the installation of the Snap version of Firefox through the firefox package provided by Ubuntu, we need to modify this file as root, using gnome-text-editor or whichever text editor you prefer:

sudo gnome-text-editor /etc/apt/preferences.d/mozillafirefoxppa

Add these lines:

Package: firefox*
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 501

Package: firefox* Pin: release o=Ubuntu Pin-Priority: -1

The first three lines give priority to the firefox packages provided by the Mozilla PPA. And the last three lines disable installing the firefox packages from Ubuntu's repositories.

Run sudo apt update to make sure the changes have been taken into account.

Now, you should be able to install the PPA version of Firefox. You can simulate an installation of Firefox using --dry-run, like this, so as to check which version of Firefox will be installed:

sudo apt install --verbose-versions --dry-run firefox

If you don't see the word snap in the version number of the firefox package (for example: 1:1snap1-0ubuntu2), you are good to go. Run this command to install Firefox (without Snap):

sudo apt install --verbose-versions firefox
Flimm
  • 41,766
6

The transition of Firefox from Deb to Snap was announced in September 2021. See https://discourse.ubuntu.com/t/feature-freeze-exception-seeding-the-official-firefox-snap-in-ubuntu-desktop/24210/199 for complete discussion.

This is the result of cooperation and collaboration between the Desktop and Snap teams at Canonical and Mozilla developers, and is the first step towards a deb-to-snap transition that will take place during the 22.04 development cycle.

Translation: The shift of Firefox from Deb to Snap is a Mozilla-driven decision. The Ubuntu teams are trying to make the transition as painless as possible for most folks.

A lot of volunteers have been testing the Firefox Snap, discovering/filing/fixing bugs since the 21.10 cycle to sand down the rough edges and document the corner-cases. (It's been my daily driver since then)

Folks who want Firefox have several options:

  1. Use the Snap. The Snap comes from Mozilla upstream, and is designed to be cross-distro and cross-platform. You should not find it "Ubuntu-specific." The Firefox Snap will be included in stock installs of Ubuntu Desktop.

  2. Download the binary from Mozilla upstream. This requires knowledge of how to install and uninstall without a package manager. It's the same binary used in the Snap.

  3. If you still want to use deb packages that are in the Ubuntu Repositories, then join Debian and help the volunteer packagers who work Firefox. It's a complex beast to packages as a deb (which is why Mozilla is unenthusiatic about continuing the effort) but the community --with enough volunteers-- is capable of great things.

  4. Add the Mozilla deb repository. Use apt-pinning to select this repository instead of the Ubuntu repos.

  5. Flatpak and other add-on package managers.

user535733
  • 62,253
  • 14
    Both Flatpak or Snap have the same problem. Both are methods of packaging something "non-native" to the system that brings a lot of environment/dependencies/etc. with it. While for some "standalone" applications this is OK, such an important piece of system as a default web browser should be closely integrated with the system, which means it should be a .deb package. Use of Debian .deb package seems to be the only viable way. – raj Mar 26 '22 at 15:23
  • 4
    @raj well, it's not going to be a .deb package anymore, like it or not, without a lot more volunteer participation. – user535733 Mar 26 '22 at 18:02
  • 3
    Somebody will provide PPA with firefox.deb soon enough – Pavel Niedoba Mar 31 '22 at 21:03
  • 9
    The Mozilla Team PPA has already made the package (along with ESR & thunderbird). The maintainer of Ubuntu's own Firefox package is the team member. https://launchpad.net/~mozillateam/+archive/ubuntu/ppa. And there's a step by step guide to add the PPA and set priority. – Nim Apr 05 '22 at 15:43
  • 9
    This bug https://bugzilla.mozilla.org/show_bug.cgi?id=1661935 (Snap does not support NativeMessaging) makes the snap version too limited for now (eg. browserpass extension, kde plasma integration, gnome extensions integration, etc...). It is a real regression, and I'm not sure the proposed solution will be ready soon... – alci Apr 06 '22 at 08:06
  • 2
    So what exactly happens if you've deliberately purged the firefox snap from 21.10 and installed the non-snap version? Is it going to dishonor your purge and install the snap anyway, or not install Firefox at all? – Michael Apr 22 '22 at 18:13
3

As mentioned before

Remove snap version of the firefox

sudo snap remove firefox

Add mozillateam repository

sudo add-apt-repository ppa:mozillateam/ppa

Unattended updates

echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox

If you don't want to update all packages from LP-PPA-mozillateam then i would do following:

echo '
Package: firefox
Pin: version 1:1snap1-0ubuntu2
Pin-Priority: 99

Package: * Pin: release o=LP-PPA-mozillateam Pin-Priority: 99

Package: firefox* Pin: release o=LP-PPA-mozillateam Pin-Priority: 1001 ' | sudo tee /etc/apt/preferences.d/mozilla-firefox

This makes only firefox package updated from LP-PPA-mozillateam, and not others. Also reduce priority of the firefox snap version.

And now you are ready to install firefox

sudo apt install firefox
Alex
  • 308
2

I found the following workaround to get a deb-based firefox from the firefox-next ppa.

Warning: It is the beta version!

Because the package name is also firefox, we need to blacklist the dummy snap shortcut package which has version 1:1snap1-0ubuntu2

sudo apt remove firefox
echo "
Package: firefox
Pin: version 1:1snap1-0ubuntu2
Pin-Priority: 99
" | sudo tee /etc/apt/preferences
sudo add-apt-repository ppa:mozillateam/firefox-next
sudo apt install firefox

Here is a variant of the add-apt-repository step, that still respects the new package signing requirements - it works with both ppa (main release) and firefox-next (beta) repositories:

sudo gpg --keyserver hkp://keyserver.ubuntu.com:80 --no-default-keyring --keyring /usr/share/keyrings/firefox.gpg --recv-keys 9BDB3D89CE49EC21
echo 'deb [signed-by=/usr/share/keyrings/firefox.gpg]  https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu jammy main 
' | sudo tee /etc/apt/sources.list.d/firefox.list

(This was useful for me because under pre-release of KDE Neon 22.04, add-apt-repository currently returns aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for Neon/jammy)

eddygeek
  • 1,669
  • 1
  • 15
  • 17
1

You can install the latest official .deb builds working with Ubuntu 22.04 LTS (Jammy) here:
https://launchpad.net/~phd/+archive/ubuntu/firefox/

This is a PPA repository with official Ubuntu packages released originally for Ubuntu 20.04 LTS (Focal) and updated automatically as soon as a new version is released.

0

The switch from a snap Firefox installation to a ppa and apt installation is is automated here, with an attempt at a bit more control and documentation than the effective and compact script by Archisman Panigrahi. Perhaps someone likes it:

#!/bin/bash
# This script verifies Firefox is installed in the right way. Firefox is used
# to set the GitHub SSH keys and GitHub personal access tokens automatically.
# And to control a Firefox browser, it needs to be installed using apt instead
# of snap. https://stackoverflow.com/questions/72405117
# https://www.omgubuntu.co.uk/2022/04/how-to-install-firefox-deb-apt-ubuntu-22-04
# https://askubuntu.com/questions/1399383/

Run with:

bash -c "src/prerequisites/firefox_version.sh"

command_output_contains(){ local substring="$1" shift local command_output="$@" if grep -q "$substring" <<< "$command_output"; then echo "FOUND" else echo "NOTFOUND" fi }

#######################################

Checks if firefox is installed using snap or not.

Locals:

respones_lines

found_firefox

Globals:

None

Arguments:

None

Returns:

0 If command was evaluated successfully.

Outputs:

FOUND if firefox is installed using snap.

NOTFOUND if firefox is not installed using snap.

####################################### firefox_via_snap(){ local respons_lines="$(snap list)" local found_firefox=$(command_output_contains "firefox" "${respons_lines}") echo $found_firefox }

#######################################

Checks if firefox is installed using ppa and apt or not.

Locals:

respones_lines

found_firefox

Globals:

None

Arguments:

None

Returns:

0 If command was evaluated successfully.

Outputs:

FOUND if firefox is installed using ppa and apt.

NOTFOUND if firefox is not installed using ppa and apt.

####################################### firefox_via_apt(){ local respons_lines="$(apt list --installed)" local found_firefox=$(command_output_contains "firefox" "${respons_lines}") echo $found_firefox }

#######################################

Checks if firefox is added as ppa or not.

Locals:

respones_lines

ppa_indicator

found_firefox_ppa

Globals:

None

Arguments:

None

Returns:

0 If command was evaluated successfully.

Outputs:

FOUND if firefox is added as ppa.

NOTFOUND if firefox is not added as ppa.

####################################### firefox_ppa_is_added(){ # Get list of ppa packages added for apt usage. local respons_lines="$(apt policy)" # Specify identifier for firefox ppa presence. local ppa_indicator="https://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu" local found_firefox_ppa=$(command_output_contains "$ppa_indicator" "${respons_lines}") echo $found_firefox_ppa }

#######################################

Remove Firefox if it is installed using snap.

Locals:

respones_lines

found_firefox

Globals:

None

Arguments:

None

Returns:

0 If command was evaluated successfully.

Outputs:

FOUND if firefox is installed using snap.

NOTFOUND if firefox is not installed using snap.

####################################### remove_snap_install_firefox_if_existant(){ if [ "$(firefox_via_snap)" == "FOUND" ]; then

    # Prompt user for permission.
    ask_user_swapping_firefox_install_is_ok

    # User permission is granted here, remove firefox snap installation.
    yes | sudo snap remove firefox 2&gt;&amp;1
    assert_firefox_is_not_installed_using_snap
    echo &quot;Firefox is removed.&quot; &gt; /dev/tty
fi
assert_firefox_is_not_installed_using_snap

}

#######################################

Ask user for permission to swap out Firefox installation.

Locals:

yn

Globals:

None

Arguments:

None

Returns:

0 If command was evaluated successfully.

3 If the user terminates the program.

Outputs:

Mesage indicating Firefox will be uninstalled.

####################################### ask_user_swapping_firefox_install_is_ok(){ echo "" > /dev/tty echo "Hi, firefox is installed using snap. To automatically add your " > /dev/tty echo "access tokens to GitHub, we need to control the firefox browser." > /dev/tty echo "To control the firefox browser, we need to switch the installation" > /dev/tty echo "method from snap to apt." > /dev/tty echo "" > /dev/tty echo "We will not preserve your bookmarks, history and extensions." > /dev/tty echo "" > /dev/tty while true; do read -p "May we proceed? (y/n)? " yn case $yn in [Yy]* ) echo "Removing Firefox, please wait 5 minutes, we will tell you when it is done."; break;; [Nn]* ) echo "Installation terminated by user."; exit 3;; * ) echo "Please answer yes or no." > /dev/tty;; esac done }

#######################################

Asserts Firefox is not installed using snap, throws an error otherwise.

Locals:

None

Globals:

None

Arguments:

None

Returns:

0 If Firefox is not installed using snap.

1 If Firefox is still isntalled using snap.

Outputs:

Nothing

#######################################

Run with:

assert_firefox_is_not_installed_using_snap(){ if [ "$(firefox_via_snap)" == "FOUND" ]; then echo "Error, Firefox installation was still installed using snap." > /dev/tty exit 2 fi } assert_firefox_is_installed_using_ppa(){ if [ "$(firefox_via_apt)" != "FOUND" ]; then echo "Error, Firefox installation was not performed using ppa and apt." > /dev/tty exit 2 fi }

#######################################

Asserts Firefox ppa is added to apt.

Locals:

None

Globals:

None

Arguments:

None

Returns:

0 If Firefox ppa is added to apt.

4 Otherwise.

Outputs:

Error message indicating firefox ppa is not added correctly.

#######################################

Run with:

assert_firefox_ppa_is_added_to_apt(){ if [ "$(firefox_ppa_is_added)" == "NOTFOUND" ]; then echo "Error, Firefox ppa was not added to apt." > /dev/tty exit 4 fi } assert_firefox_ppa_is_removed_from_apt(){ if [ "$(firefox_ppa_is_added)" == "FOUND" ]; then echo "Error, Firefox ppa was not removed from apt." > /dev/tty exit 4 fi }

#######################################

Adds firefox ppa to install using apt if it is not added yet.

Locals:

None

Globals:

None

Arguments:

None

Returns:

0 If Firefox is not installed using snap.

1 If Firefox is still isntalled using snap.

Outputs:

Nothing

####################################### add_firefox_ppa_if_not_in_yet(){ if [ "$(firefox_ppa_is_added)" == "NOTFOUND" ]; then echo "Now adding Firefox ppa to apt." > /dev/tty echo "" > /dev/tty yes | sudo add-apt-repository ppa:mozillateam/ppa fi assert_firefox_ppa_is_added_to_apt } remove_firefox_ppa(){ if [ "$(firefox_ppa_is_added)" == "FOUND" ]; then echo "Now removing Firefox ppa to apt." > /dev/tty echo "" > /dev/tty yes | sudo add-apt-repository --remove ppa:mozillateam/ppa fi assert_firefox_ppa_is_removed_from_apt }

#######################################

Asserts the Firefox installation package preference is set to ppa/apt. Does

this by verifying the file content is as expected using hardcoded MD5Sum.

Locals:

None

Globals:

None

Arguments:

None

Returns:

0 If Firefox is not installed using snap.

1 If Firefox is still isntalled using snap.

Outputs:

Nothing

####################################### assert_firefox_installation_package_preference_file_content(){ local preferences_path="$1" local md5_output=$(md5sum $preferences_path) local expected_md5_output="961023613b10ce4ae8150f78d698a53e $preferences_path" if [ "$md5_output" != "$expected_md5_output" ]; then echo "Error, the md5 output of: $preferences_path is not as expected." > /dev/tty echo "md5_output= $md5_output" > /dev/tty echo "expected_md5_output=$expected_md5_output" > /dev/tty exit 5 fi }

assert_firefox_auto_update_file_content(){ local preferences_path="$1" local md5_output=$(md5sum $preferences_path) local expected_md5_output="ffd6e239ef98a236741f4ba5c84ab20e $preferences_path" if [ "$md5_output" != "$expected_md5_output" ]; then echo "Error, the md5 output of: $preferences_path is not as expected." > /dev/tty echo "md5_output= $md5_output" > /dev/tty echo "expected_md5_output=$expected_md5_output" > /dev/tty exit 5 fi }

#######################################

Sets the Firefox installation package preference from snap to ppa/apt.

Locals:

preferences_path

Globals:

None

Arguments:

None

Returns:

0 If Firefox is not installed using snap.

1 If Firefox is still isntalled using snap.

Outputs:

Nothing

#######################################

Run with:

change_firefox_package_priority(){ local preferences_path="/etc/apt/preferences.d/mozilla-firefox"

# Set the installation package preference in firefox.
echo 'Package: *

Pin: release o=LP-PPA-mozillateam Pin-Priority: 1001' | sudo tee "$preferences_path"

# Verify the installation package preference is set correctly in firefox.
assert_firefox_installation_package_preference_file_content &quot;$preferences_path&quot;

}

#######################################

Ensures the firefox installation is updated automatically.

Locals:

update_filepath

Globals:

None

Arguments:

None

Returns:

0 If Firefox is not installed using snap.

1 If Firefox is still isntalled using snap.

Outputs:

Nothing

####################################### ensure_firefox_is_updated_automatically(){ local update_filepath="/etc/apt/apt.conf.d/51unattended-upgrades-firefox" # Set the installation package preference in firefox. echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee "$update_filepath"

# Verify the installation package preference is set correctly in firefox.
assert_firefox_auto_update_file_content &quot;$update_filepath&quot;

}

#######################################

Installs firefox using ppa and apt.

Locals:

None

Globals:

None

Arguments:

None

Returns:

0 If Firefox is installed using ppa and apt.

1 If Firefox is mpt installed using ppa and apt.

Outputs:

Nothing

####################################### install_firefox_using_ppa(){ if [ "$(firefox_via_apt)" == "NOTFOUND" ]; then yes | sudo apt install firefox 2>&1 fi assert_firefox_is_installed_using_ppa echo "Firefox is installed succesfully using ppa and apt." > /dev/tty }

Swap Firefox installation from snap to ppa/apt using functions above.

0. Detect how firefox is installed.

1. If firefox installed with snap:

1.a Ask user for permission to swap out Firefox installation.

1.b. Verify and mention the bookmarks, addons and history are not removed.

1.c Remove snap firefox if it exists.

1.d Verify snap firefox is removed.

remove_snap_install_firefox_if_existant

2.a Add firefox ppa to apt if not yet in.

2.b Verify firefox ppa is added (successfully).

add_firefox_ppa_if_not_in_yet #remove_firefox_ppa

3.a Change Firefox package priority to ensure it is installed from PPA/deb/apt

instead of snap.

3.b Verify Firefox installation priority was set correctly.

change_firefox_package_priority

4.a Ensure the Firefox installation is automatically updated.

4.b Verify the auto update command is completed succesfully.

ensure_firefox_is_updated_automatically

5.a Install Firefox using apt.

5.v Verify firefox is installed succesfully, and only once, using apt/PPA.

install_firefox_using_ppa

a.t.
  • 317
0

My answer is similar to others but I ran into a problem with hunspell. I could not continue without unmounting it. Like markling and Archisman Panigrahi said, you must back up your Firefox profile somehow, or save it all to the cloud with Firefox Sync, before you begin, or you will lose your bookmarks, passwords, etc. After making my backup, here is what I did:

sudo snap disable firefox
sudo umount /var/snap/firefox/common/host-hunspell
sudo snap remove --purge firefox
sudo apt purge firefox
sudo apt autoremove
sudo add-apt-repository ppa:mozillateam/ppa
echo '
Package: firefox*
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 501

Package: firefox* Pin: release o=Ubuntu Pin-Priority: -1 ' | sudo tee /etc/apt/preferences.d/99mozillateamppa echo 'Unattended-Upgrade::Allowed-Origins:: "LP-PPA-mozillateam:${distro_codename}";' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox sudo apt update sudo apt install firefox

The Mozillateam PPA's "firefox" package distributes what is officially a beta version (I received Firefox 116 exactly one week before it will be officially released), although you can think of it as a release candidate (116 had already been in beta for three weeks before it was packaged for the Mozillateam PPA). If you're not completely comfortable with that, then you can edit the last line and install "firefox-esr" instead of "firefox":

sudo apt install firefox-esr
Seaside
  • 39
0

Recently the FF team presented an official Debian repo with Firefox Nightly

# make folder for PGP repo key
sudo install -d -m 0755 /etc/apt/keyrings
# download repo key and store to /etc/apt/keyrings
sudo wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O /etc/apt/keyrings/packages.mozilla.org.asc
# add the APT repository to 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

Update package list

sudo apt-get update

Install the Firefox Nightly .deb package

sudo apt-get install firefox-nightly

The command to start FF Nightly is firefox-nightly. It's blue icon will be shown alongside of FF. It will be updated more often than snap version which may be anoying.