如何在 Ubuntu 22.04 或更高版本中将 Firefox 作为传统 deb 包(不带 snap)安装?

igi*_*igi 120 firefox ppa software-installation snap 22.04

据我在22.04 Jammy的持续开发中看到,Firefox是一个 Snap 软件包。apt 中相关的 Deb 包只是该 snap 版本的快捷方式/链接。

我不喜欢我的安装来自 snap 包,因为我发现它们太多“Ubuntu 特定的”。

是否有其他方法可以在 Jammy 上安装 Firefox?
我最喜欢的选择是Apt 存储库PPA。同时我将使用我的测试虚拟机测试Flatpak版本。

Arc*_*ahi 152

如果切换到 APT 版本,您将丢失 snap 版本中的书签,除非您将它们与您的 Firefox 帐户同步,或者手动导出它们


Organic Marble 的另一个答案是针对 Firefox-ESR, eddygeek 的答案是针对 beta 版本。

此答案适用于最新稳定版本的 Firefox。您可以使用Mozilla 团队维护的Firefox PPA 。

sudo add-apt-repository ppa:mozillateam/ppa
Run Code Online (Sandbox Code Playgroud)

然后,将以下代码一次性复制并粘贴到终端中(不要逐行复制粘贴),以使 apt 版本的 Firefox 优先于 snap 版本。

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
Run Code Online (Sandbox Code Playgroud)

接下来,删除 Firefox 的 snap 版本

sudo snap remove firefox
Run Code Online (Sandbox Code Playgroud)

如果您看到以下错误,

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)
Run Code Online (Sandbox Code Playgroud)

然后运行以下命令()禁用 hunspell 服务,并再次尝试删除 Firefox snap。

sudo systemctl stop var-snap-firefox-common-host\\x2dhunspell.mount
sudo systemctl disable var-snap-firefox-common-host\\x2dhunspell.mount
sudo snap remove firefox
Run Code Online (Sandbox Code Playgroud)

使用 apt 安装 Firefox。

sudo apt install firefox
Run Code Online (Sandbox Code Playgroud)

要确保无人值守升级不会重新安装 Firefox 的 snap 版本,请输入以下命令。或者,您可以关闭无人值守升级。

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

要撤消这些更改

  1. 删除 Firefox PPA。
sudo add-apt-repository -r ppa:mozillateam/ppa
Run Code Online (Sandbox Code Playgroud)
  1. 拆下 apt 引脚。
sudo rm -rf /etc/apt/preferences.d/mozilla-firefox
Run Code Online (Sandbox Code Playgroud)
  1. 删除 apt 版本并重新安装 snap。
sudo apt remove firefox && sudo snap install firefox
Run Code Online (Sandbox Code Playgroud)

来源:OMG Ubuntu

  • Ubuntu 认为 snap 中的版本比实际存储库中的版本新,这是愚蠢的。这个答案对于阻止 Ubuntu 安装 snap 版本是有意义的,但现在你必须添加固定来阻止它,而在过去你没有这样做,这看起来确实很痛苦。感谢您的精彩回答!+1 (27认同)
  • 如果这样做,请注意两件事:a)快照已将您的 Firefox 配置文件放入“~/snap/firefox/common/.mozilla/firefox/...”(尽管旧的_可能_位于“~/.mozilla/”中) firefox/...`) b) 当您删除 snap 时,该目录 (`~/snap/firefox/common/`) 将被删除(!) 因此您可能需要在执行此操作之前备份/移动您的 firefox 配置文件。如果您被发现 https://askubuntu.com/questions/1245136/where-does-snap-store-user-data-for-apps-that-have-been-removed 和 https://snapcraft.io/docs /snapshots 可以帮助您恢复您的个人资料。 (8认同)
  • 谢谢!这很有帮助。作为一名开发人员,我不会容忍 `curl localhost:3000/` 工作正常,但由于 Snap 恶作剧,浏览器在同一 URL 上向我抛出一些 BS 错误。 (4认同)

Org*_*ble 11

警告 - 截至 2024 年 2 月,答案可能已因最近发生的事件而过时

您可以通过 Mozilla ppa 中的 .deb 安装官方 Firefox ESR(扩展支持版本)版本

sudo add-apt-repository ppa:mozillateam/ppa
sudo apt install firefox-esr
Run Code Online (Sandbox Code Playgroud)

更多信息请访问: https: //ubuntuhandbook.org/index.php/2022/03/install-firefox-esr-ubuntu/


Fli*_*imm 8

这是升级到 Ubuntu 22.10后唯一对我有用的东西。

首先,删除 Firefox 的 Snap 版本:

sudo snap remove firefox
Run Code Online (Sandbox Code Playgroud)

(如果您在 Firefox 的 Snap 版本中有设置~/snap/firefox/,您可能需要将它们迁移到~/.mozilla/firefox/

然后添加来自 mozillateam 的 PPA

sudo add-apt-repository ppa:mozillateam/ppa
Run Code Online (Sandbox Code Playgroud)

现在,该软件包firefox由 Ubuntu 存储库和 Mozilla PPA 提供。Ubuntu 存储库中提供的版本是一个过渡包,实际上在幕后安装了 Firefox 的 Snap 版本,在本例中,我们不希望这样做。通过运行以下命令检查您是否可以看到这两个firefox包:

apt info -a firefox
Run Code Online (Sandbox Code Playgroud)

为了防止通过 Ubuntu 提供的软件包安装 Firefox 的 Snap 版本firefox,我们需要以 root 身份使用gnome-text-editor或 您喜欢的任何文本编辑器修改此文件:

sudo gnome-text-editor /etc/apt/preferences.d/mozillafirefoxppa
Run Code Online (Sandbox Code Playgroud)

添加这些行:

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

Package: firefox*
Pin: release o=Ubuntu
Pin-Priority: -1
Run Code Online (Sandbox Code Playgroud)

前三行优先考虑firefoxMozilla PPA 提供的软件包。最后三行禁用firefox从 Ubuntu 存储库安装软件包。

运行sudo apt update以确保更改已被考虑在内。

现在,您应该能够安装 PPA 版本的 Firefox。您可以使用 模拟安装 Firefox --dry-run,如下所示,以检查将安装哪个版本的 Firefox:

sudo apt install --verbose-versions --dry-run firefox
Run Code Online (Sandbox Code Playgroud)

snap如果您在软件包的版本号中没有看到这个词firefox(例如:1:1snap1-0ubuntu2),那么就可以开始了。运行以下命令安装 Firefox(不带 Snap):

sudo apt install --verbose-versions firefox
Run Code Online (Sandbox Code Playgroud)


use*_*733 6

Firefox 从 Deb 过渡到 Snap 于 2021 年 9 月宣布。请参阅https://discourse.ubuntu.com/t/feature-freeze-exception-seeding-the-official-firefox-snap-in-ubuntu-desktop/24210 /199进行完整讨论。

这是 Canonical 和 Mozilla 开发人员的 Desktop 和 Snap 团队合作的结果,也是 22.04 开发周期中向 deb 到 snap 过渡的第一步。

翻译:Firefox 从 Deb 到 Snap 的转变是 Mozilla 驱动的决定。Ubuntu 团队正在努力让大多数人尽可能轻松地完成过渡。

许多志愿者一直在测试 Firefox Snap,发现/归档/修复自 21.10 周期以来的错误,以打磨粗糙的边缘并记录极端情况。(从那时起它就成了我的日常司机)

想要 Firefox 的人有多种选择:

  1. 使用快照。Snap 来自 Mozilla 上游,被设计为跨发行版和跨平台。您不应该发现它是“Ubuntu 特定的”。Firefox Snap 将包含在 Ubuntu Desktop 的库存安装中。

  2. 从 Mozilla 上游下载二进制文件。这需要了解如何在没有包管理器的情况下安装和卸载。它与 Snap 中使用的二进制文件相同。

  3. 如果您仍然想使用 Ubuntu 存储库中的 deb 软件包,请加入 Debian 并帮助使用 Firefox 的志愿者打包人员。将其打包为 deb 是一件复杂的事情(这就是 Mozilla 对继续努力不热心的原因),但是社区(有足够的志愿者)有能力做出伟大的事情。

  4. 添加Mozilla deb 存储库。使用 apt-pinning 选择此存储库而不是 Ubuntu 存储库。

  5. Flatpak 和其他附加包管理器。

  • Flatpak 或 Snap 都有同样的问题。两者都是将“非本机”的东西打包到系统中的方法,这会带来很多环境/依赖项/等。用它。虽然对于某些“独立”应用程序来说这是可以的,但像默认 Web 浏览器这样重要的系统部分应该与系统紧密集成,这意味着它应该是 .deb 包。使用 Debian .deb 包似乎是唯一可行的方法。 (14认同)
  • Mozilla 团队 PPA 已经制作了该软件包(以及 ESR 和 Thunderbird)。Ubuntu 自己的 Firefox 软件包的维护者就是团队成员。https://launchpad.net/~mozillateam/+archive/ubuntu/ppa。还有一个[分步指南](https://fostips.com/ubuntu-21-10-two-firefox-remove-snap/)来添加 PPA 并设置优先级。 (9认同)
  • 这个错误https://bugzilla.mozilla.org/show_bug.cgi?id=1661935(Snap不支持NativeMessaging)使得snap版本目前过于有限(例如browserpass扩展、kdeplasma集成、gnome扩展集成等)。 ..)。这是一个真正的回归,我不确定提议的解决方案是否会很快准备好...... (9认同)
  • @raj 好吧,如果没有更多的志愿者参与,无论喜欢与否,它都将不再是 .deb 包。 (4认同)
  • 很快就会有人为 firefox.deb 提供 PPA (3认同)
  • 那么,如果您故意从 21.10 中清除 Firefox snap 并安装非 snap 版本,到底会发生什么?它是否会损害您的清除并安装 snap,或者根本不安装 Firefox? (2认同)