如何将Firefox v. 57降级到v. 56?

最直接的方法是将Firefox 57降级到Firefox 56吗?
这样做是为了有更多时间等待适用于旧版扩展的可用替代品。

4升级到Firefox 57后,我研究并替换了一些无法使用的传统Firefox扩展的解决方法,例如这个答案:https://askubuntu.com/questions/516033/how-to-have-websites-fit-the-screen/976958#976958。现在我的Firefox 57一切正常运行,并且比Firefox 56更快,所以这次升级是值得的。 - karel
7我知道对你来说已经太晚了,但为了阻止软件包升级,你可以运行 sudo apt-mark hold firefox*(这也是 @Videonauth 在降级后使用的方法)。 - Byte Commander
41这是个坏主意。如果你不想使用FF 57,那就用Firefox ESR吧。因为它会得到安全补丁,而FF 56则不会。 - Display Name
21自2011年以来,Firefox一直在破坏完全正常工作的扩展功能! - Eric Duminil
2@EricDuminil 在Firefox 57(即Quantum)发布之后,Mozilla开始从Firefox附加组件网页中删除不再起作用的扩展程序。 - karel
@SargeBorsch 功能不够 - anna328p
1@SargeBorsch 我相信使用稍微过时的网络浏览器不会导致你的电脑被劫持。人们仍然在旧电脑上使用Internet Explorer 8和Chrome 49,而这比一个版本过时的主流浏览器更容易成为攻击目标。 - anna328p
4@DmitryKudriavtsev 很抱歉直言不讳地说,你最近有没有看新闻?那些“成熟的目标”正在遭受计算机劫持,如果存在安全问题,脚本小子们肯定会复制它并加入恶意载荷。 - wizzwizz4
6个回答

获取受支持的Firefox ESR 60.x(传统附加组件在此处无法工作)

如果您需要受支持的Firefox ESR,则可以添加其中一个PPA。 这里有两个选项:

供您参考:

  • 此新版本不支持传统插件。
  • 将传统扩展移植为WebExtension的当前状态位于Google电子表格中。WebExtensions的比例并不太高。

获取不受支持的Firefox ESR 52.x(传统插件在此可用)

请注意,ESR 52版本已不再受支持。请自行承担风险。

您可以通过以下命令从Jonathon F的PPA ppa:jonathonf/firefox-esr-52获取Firefox ESR 52.9.0:

sudo add-apt-repository ppa:jonathonf/firefox-esr-52
sudo apt-get update
sudo apt-get install firefox-esr

有了这个版本,我可以继续使用我的插件,比如SiteDelta、TableTools2、Show Parent Folder、Manage Folders、Wired Marker等等。
注意:如果您之前已经添加了ppa:jonathonf/firefox-esr PPA,并且不希望Firefox升级到60版本,那么您可以使用以下命令将此版本固定(以16.04 LTS为例):
cat <<EOF | sudo tee /etc/apt/preferences.d/pin-firefox
Package: firefox-esr
Pin: version 52.9.0esr-1~16.04.york0
Pin-Priority: 1337
EOF

如果您添加了任何PPA(ppa:mozillateam/ppappa:jonathonf/firefox-esr),并且Firefox从52升级到60,则请使用以下命令删除任何版本为60的PPA,并启用特殊的PPA(ppa:jonathonf/firefox-esr-52):
sudo ppa-purge ppa:mozillateam/ppa
sudo ppa-purge ppa:jonathonf/firefox-esr
sudo add-apt-repository ppa:jonathonf/firefox-esr-52
sudo apt-get update
sudo apt-get install firefox-esr

但请注意,由于此版本已过时,您将无法获得安全更新。
更新2019-07-09:Firefox ESR 52.9.0版本存在插件问题,证书已过期。即使是本地XPI安装也会出现“无法安装此插件,因为它似乎损坏。”的消息。为了解决这个问题,我们需要:
1. 下载更新的PEM证书从pastebin(或从这个superuser答案复制并保存为mozilla2019.pem。 2. 在Firefox中导航到about:preferences#advanced 3. 点击“查看证书”按钮,点击“导入”并安装mozilla2019.pem证书。

1请注意,降级到FF52 ESR可能会导致一些问题。根据我的经验,这些问题可能会或可能不会影响任何特定的配置文件,并且可能是间歇性的。 - Makyen
13更多信息:Firefox ESR 52系列将继续通过2018年6月获得安全更新,这将为您提供更多时间,同时保持更高的安全性。 - Nattgew
我没有任何问题(我使用SiteDelta、WiredMarker、Go Parent Folder和WebDeveloper)。对于感兴趣的用户,我在Ubuntu邮件列表上进行了一次关于在Ubuntu官方软件仓库中制作ESR包的讨论。 - N0rbert
4从长远来看,下一个 ESR 将像 FF57 一样进行量子化和仅支持 Web 扩展。如果在下一个 ESR 中仍然无法满足您的需求,您需要寻找一个打算继续支持传统扩展的 Firefox 分支,比如 Waterfox。https://www.waterfoxproject.org/downloads - Dan Is Fiddling By Firelight
2奇怪的是,对于这个问题,最佳答案并没有回答问题。 - user541686
7@Mehrdad 当问题的前提是一个糟糕的想法时... - Ry-
1我尝试了从ppa:mozillateam/ppa安装的Firefox ESR,发现了两个问题。首先,在菜单中它的快捷方式被称为“Firefox Web Browser”,这与当前的Firefox 57相同(尽管图标略有不同)。在菜单中应该将其称为Firefox ESR。其次,Firefox ESR在用户配置文件中创建了自己的目录(~/.mozilla/firefox-esr)。如果它能够从Firefox导入设置并在第一次运行时向用户提供这个选项,那将是很好的。 - rpr
@rpr 我忘了提到这一点。你可以询问mozillateam来做你想要的事情。所以我正在使用JonathonF的版本。它使用现有的Firefox配置文件,有一个名为Firefox ESR的普通图标。 - N0rbert
1@rpr 只需运行 cp -R ~/.mozilla/firefox/* ~/.mozilla/firefox-esr/ 将您现有的 firefox 配置文件导入到 firefox-esr - mchid

免责声明: 除非您的目标是在您使用工具时不进行更改,从而使您拥有稳定的生产环境,否则不建议将软件包保持暂停状态。
要做到这一点,您只需按照以下步骤操作:
对于Ubuntu 17.10:
注意:这在artful中始终有效,因为artful发布时Firefox版本为56。
# 参见脚注(1) sudo apt-get install firefox=56.0+build6-0ubuntu1 sudo apt-mark hold firefox
对于Ubuntu 16.04:
注意:如果您没有使用sudo apt clean或sudo apt autoclean清除存档缓存,这只适用于16.04。如果您已经清除了本地存档,您只能恢复到xenial发布的版本45.0.2+build1-0ubuntu1,或者您可以参考下面的@Michael Johnson's answer,在这种情况下也可以正常工作。
# 参见脚注(1) sudo apt-get install firefox=56.0+build6-0ubuntu0.16.04.2 sudo apt-mark hold firefox
对于其他所有Ubuntu版本:
注意:同样,只有在您尚未清除本地存档的情况下才能正常工作:
请求apt policy信息,它将返回类似以下内容: $ apt policy firefox firefox: Installed: 57.0+build4-0ubuntu0.17.10.5 Candidate: 57.0+build4-0ubuntu0.17.10.5 Version table: *** 57.0+build4-0ubuntu0.17.10.5 500 500 http://archive.ubuntu.com/ubuntu artful-updates/main amd64 Packages 500 http://archive.ubuntu.com/ubuntu artful-security/main amd64 Packages 56.0+build6-0ubuntu1 500 500 http://archive.ubuntu.com/ubuntu artful/main amd64 Packages 100 /var/lib/dpkg/status
我们需要找到告诉您版本56的软件包名称的行,例如在这个例子中是56.0+build6-0ubuntu1。然后将其放入以下行中:
# 参见脚注(1) sudo apt-get install firefox=<package version> sudo apt-mark hold firefox
如果以上所有选项都失败了,您可以在官方网站上下载旧版Firefox并在您的主目录中设置它们。请参阅如何安装tar.gz或tar.bz2文件以了解如何操作。这将使您在等待您喜欢的附加组件更新时,系统上有第二个选项,即Firefox 56。
由于我不想抄袭@Michael Johnson's answer,您应该参考他的答案以获取另一个很好的还原选项。
每当你觉得想要再次更新这个软件包到57或者任何当前版本的时候,你只需要简单地执行以下步骤(参见(2)):
sudo apt-mark unhold firefox
sudo apt update
sudo apt install firefox

当您第一次启动降级的Firefox时,可能会收到一个警告,提示某些在Firefox 57中可用的扩展(语言)与版本56不兼容。在检查这些扩展是否有更新版本后,您会发现没有任何更新,然后Firefox将正常启动。
脚注: (1)第一个命令将安装最新版本的 Firefox 56,即使你已经安装了 Firefox 57,而第二个命令将阻止此软件包更新(参见(2))。 (2)通常,只需保持/取消保持“firefox”就足以实现你想要的效果,但如果有疑问,保持/取消保持“'firefox\*'”将同时保持/取消保持所有以 firefox 开头的附加软件包。

3如果您的缓存中没有56.0版本,我猜您可以从https://launchpad.net/ubuntu/xenial/+package/firefox或https://launchpad.net/ubuntu/artful/+package/firefox下载并使用“dpkg -i”进行安装。 - Jellby
11请注意,与允许旧插件正常运行的ESR版本不同,版本56将不再接收安全更新。 - Chai T. Rex
3没错,我只是回答了问题,问题是关于如何降级到56版本,而不是关于什么是56的好替代品 :) - Videonauth
@Videonauth 哦,我知道,我只是想让大家知道一下 :) - Chai T. Rex
2看起来Ubuntu服务器上不再提供Firefox 56。相反,它可以在“Ubuntu Mozilla Security Team”的构建中找到。只需确保选择正确的发行版和架构即可。 - Vadim
@vadp 为了测试我上面的内容是否仍然适用于17.10,请执行以下操作:首先运行sudo apt autoclean,然后在您喜欢的下载文件夹中执行apt-get download firefox=56.0+build6-0ubuntu1 - Videonauth
Videonauth,我对你的说法感到困惑,即使用命令 sudo apt-mark hold firefox 来阻止更新。事实上,Firefox并不通过apt来进行更新,它会自行静默地独立完成更新,与你在apt中所做的无关。 - Mateus Araújo
谢谢你找到了那个,@Vadim。大多数人需要Ubuntu 16.04.2的amd64版本,因此对于他们来说精确的链接可能很有用:https://launchpad.net/~ubuntu-mozilla-security/+archive/ubuntu/ppa/+build/13537983 - Mateus Araújo
1@MateusAraújo 我不知道你从哪里得到这个误解。在Linux上,Firefox不会自动静默更新,它通过apt / apt-get提供的软件包来更新,这是在Ubuntu上使用的。你可以很容易地验证这一点。如果你打开“帮助”菜单,你会发现没有检查更新的选项,点击“关于”也不会像在Windows上那样自动进行静默检查更新。 - Videonauth
1@MateusAraújo 在Arch和Ubuntu上,要更新Firefox,我必须使用操作系统内部的软件包管理程序 - 我相信自动更新过程仅限于Windows和可能是Mac。 - Charles Green
@Videonauth,这不是一个误解。我的Firefox刚刚自动更新到57版本,没有任何我的操作,特别是没有使用sudo apt-get upgrade命令。 - Mateus Araújo
@MateusAraújo 你有按照上面的指示进行操作吗?你是否开启了未经监控的自动升级功能?由于Firefox来自https://security.ubuntu.com,它通常会通过未经监控的自动升级进行更新。然而,如果包被锁定,甚至这个过程也会被阻止。请检查你在`/var/log/apt/history.log`中的记录。 - Videonauth
1@Videonauth,对不起,这是个误解:Ubuntu被配置为静默下载和安装安全更新,但不会对普通更新执行此操作。这就是我以为Ubuntu没有更新而Firefox有更新的原因。 - Mateus Araújo

其他答案目前无法正常工作,需要阅读评论,因此我认为发布一个更直接的答案很有用,因为楼主要求“最简单直接的方法”。

如果您仍在使用Ubuntu 14.04 64位,请运行以下命令:

wget https://launchpad.net/~ubuntu-mozilla-security/+archive/ubuntu/ppa/+build/13537990/+files/firefox_56.0+build6-0ubuntu0.14.04.2_amd64.deb
sudo apt install -Vy gdebi # gdebi lets you install local deb packages resolving and installing its dependencies.
sudo gdebi firefox_56.0+build6-0ubuntu0.14.04.2_amd64.deb
sudo apt-mark hold firefox

如果您使用的是Ubuntu 16.04 64位系统,请运行以下命令:
wget https://launchpad.net/~ubuntu-mozilla-security/+archive/ubuntu/ppa/+build/13537983/+files/firefox_56.0+build6-0ubuntu0.16.04.2_amd64.deb
sudo dpkg -i firefox_56.0+build6-0ubuntu0.16.04.2_amd64.deb
sudo apt-mark hold firefox

如果你使用的是Ubuntu 17.10(32位或64位),请运行以下命令代替:
sudo apt-get install firefox=56.0+build6-0ubuntu1
sudo apt-mark hold firefox

如果你使用其他版本的Ubuntu,你需要去找到这里的.deb链接,然后像上面那样用dpkg进行安装。

你不需要降级到56版本才能使用旧版扩展。
你可以安装“Firefox Nightly”版本,它允许你在57+版本上启用旧版扩展。目前,我正在使用59*版本,旧版扩展对我来说一切正常。
首先,通过运行以下命令安装ubuntu-mozilla-daily ppa:
sudo add-apt-repository ppa:ubuntu-mozilla-daily/ppa
sudo apt-get update

接下来,运行以下命令安装Firefox Nightly:
sudo apt install firefox-trunk

此外,如果您想使用当前的Firefox配置文件,在Nightly版本中运行以下命令以复制您现有的Firefox配置文件:
cp -R $HOME/.mozilla/firefox/* $HOME/.mozilla/firefox-trunk/

最后:

  • 打开Firefox Nightly并转到about:config

  • 搜索extensions.legacy.enabled

  • 双击extensions.legacy.enabled将值切换为true

  • 搜索extensions.allow-non-mpc-extensions

  • 双击extensions.allow-non-mpc-extensions将值切换为true


注意:我的大多数非多进程能力的扩展都无法正常工作。

你可以从http://archive.ubuntu.com/ubuntu/pool/main/f/firefox/下载适用于Ubuntu的Firefox软件包。在列表的末尾,你会找到Firefox软件包,请忽略其他的(例如firefox-dbgfirefox-locale等)。在列表末尾的软件包中,请确保选择正确的Ubuntu版本和CPU架构。
对于Ubuntu 14.04: 对于Ubuntu 16.04:

对于Ubuntu 17.04:

对于Ubuntu 17.10,没有Firefox 56的软件包,请尝试使用17.04的软件包。对于其他版本,请尝试使用最接近的更新软件包,或者如果该软件包失败,则尝试使用最接近的旧软件包。

一旦您下载了正确的软件包,您将拥有一个.deb文件。使用sudo dpkg --install安装它。例如,如果您下载了17.04 64位软件包,则命令应为sudo dpkg --install firefox_56.0+build6-0ubuntu0.17.04.2_amd64.deb。在命令中用您下载的软件包匹配的文件名替换文件名。

运行dpkg命令后,您可能会看到一些错误。这是正常的。运行sudo apt-get -f install通过安装/更新所需的依赖项来修复错误。

在运行sudo apt-get -f install之前,您可能需要运行sudo apt-mark hold firefox,个人认为我从未需要这样做,但其他答案暗示这是必要的。使用此命令可能不会造成任何伤害,并且它将防止Firefox自动更新(使用sudo apt-mark unhold firefox允许再次更新Firefox)。

编辑:这些软件包似乎已被删除。可用更新版本,对于所有支持的Ubuntu版本使用相同的软件包:


1你的回答与上面的回答有何不同之处?它只是一个汇编而已。 - N0rbert
4@N0rbert 你的回答告诉OP使用了一个与他们所要求的版本不同的Firefox版本,并要求他们使用PPA。Videonauth的回答随意升级了用户的系统,如果用户在软件包缓存中没有该软件包,则毫无帮助。我的回答是唯一解释了如何从官方Ubuntu仓库下载所需版本的Firefox的答案。按照我的回答,用户将能够重新安装他们很可能之前已经安装过的确切软件包,即使它不再在他们的软件包缓存中。 - micheal65536
2好的。但OP没有考虑到安全性问题。我建议使用ESR :) - N0rbert
Ubuntu从您发布的链接中删除了Firefox 56。根据@Vadim的说明,它仍然可以在Ubuntu安全团队的构建中找到:https://launchpad.net/~ubuntu-mozilla-security/+archive/ubuntu/ppa/+builds?build_state=built&batch=75&memo=75&start=75 - Mateus Araújo
@MateusAraújo PPA中的那些并不一定与主要软件包仓库中的相同。 - micheal65536
他们是还是不是?在我看来,他们似乎相当平等。 - Mateus Araújo
@MateusAraújo 他们看起来可能相同,但不能保证它们完全相同。它们不来自官方软件包仓库,所以不能保证它们与系统中的其他软件包正常工作。它们确实是由Ubuntu团队的某个部分构建的,但仍不能保证它们完全相同。对于一些人(包括我自己),对于“如何将软件包降级到之前安装的版本”,“从其他来源安装这个其他软件包”并不是一个令人满意的答案。 - micheal65536
构建的名称是(例如)“firefox_56.0+build6-0ubuntu0.16.04.2_amd64”。这足以让我相信它确实是Firefox 56.0的第6个版本,适用于Ubuntu 16.04.2 64位。除非您确实知道这不是同一软件包,请不要贬低Ubuntu安全团队的工作。另一方面,您在编辑中发布的软件包不能与官方软件包相同,因为它们在Ubuntu版本之间存在差异,而您的软件包则没有。 - Mateus Araújo
@MateusAraújo 你无法保证这个软件包是完全相同的。它可能是针对相同版本的Ubuntu的同一版本Firefox的构建,但你无法保证是否应用了完全相同的补丁,或者使用了完全相同的编译器选项等。编辑中提到的软件包适用于所有Ubuntu版本,因为它们没有指定特定的版本。 - micheal65536
而且保证不会相同。 - Mateus Araújo
@MateusAraújo 但它们是“官方的”。它们“保证与系统上的其他软件包兼容”,并且“保证与用户如果今天从存储库安装 Firefox 56 将获得相同的结果”。它们比来自第三方 PPA 的任何软件包更“接近”于相同。 - micheal65536

你可以在ubuntu维护的版本旁边安装一个或多个最新的Firefox版本,就像Unix和Linux SE上这个问题的答案中建议的那样。

当你想要使用需要旧版本的应用程序时,你可以使用这些旧版本,并在它们的设置中禁用自动更新功能。

这是处理遗留Web应用程序的最佳方式,在这个时代,浏览器制造商将10年产品寿命或向后兼容性视为亵渎之词。