真正真正安装多个独立版本的Firefox

Bre*_*arn 9 windows firefox

我在这里看到了一些其他问题(例如,thisthis),以及网络上的许多其他页面,提供了用于并排安装和运行多个版本的 Firefox 的各种策略。所有这些都是笨重和/或脆弱的。

它们基本上都归结为两种方式之一,每种方式都有自己的问题。

  1. 使用便携式 Firefox。

    • 问题:便携式 Firefox 只有一个配置文件。要使用多个配置文件,您必须安装一个单独的程序,该程序创建一个单独的配置文件并且必须单独启动(即,您没有使用普通的 Firefox 配置文件管理器管理配置文件)。
  2. 将第二个版本安装到其自己的目录中。

    • 问题:所有安装的版本都使用相同的 appdata 目录,这意味着它们看到相同的配置文件。您必须确保使用专门为其指定的配置文件启动每个版本,否则它可能会修改或损坏其他版本正在使用的配置文件。这意味着对任何已安装的版本使用多个配置文件再次是一个冒险的提议,就好像您不小心选择了错误的配置文件,一个版本可能会踩到另一个版本的脚趾。

我想要的是一种真正、真实、诚实地安装多个独立版本 Firefox 的方法。我所说的独立是指他们永远不应该以任何方式相互了解、互动或干扰。我应该能够为任何版本创建多个配置文件,使用该版本自己的配置文件管理器,并且这些版本应该有单独的 appdata 目录,以便与任何版本关联的整个配置文件集与与之关联的整个配置文件集完全分开任何其他版本。

基于我上面提到的两种方法,我可以设想两种方法:

  1. 如果有真正的便携式 Firefox,那就太好了。我所说的“真实”是指一个便携式版本,它实际上具有正常安装版本的所有功能,尤其包括配置文件管理器和添加/删除/选择配置文件而不使用额外的 PortableApps 基础架构层的能力。

  2. 如果我可以安装一个普通版本的 Firefox 但给它一个不同的 appdata 目录,那么它就不会踩到任何其他版本的任何配置文件。

有没有办法做这些事情,或者让我自己安装多个版本的 Firefox,每个版本都可以做正常安装版本可以做的所有事情,但完全独立于和对碰巧安装的任何其他版本没有任何影响?

小智 5

回答这个问题有点晚了,但无论如何我的 2 美分。

从 2.0 或 3.0版本开始,我一直在使用FF的多版本 + 多轮廓舞蹈。一个额外的好处是不同计算机和不同 Windows 版本之间的配置文件可移植性。让我们看看基础知识:

  1. 根据需要安装任意数量的 FF 版本,每个版本都在其自己的目录中。'C:\Program Files (x86)' 不再是 Win7 下的最佳选择(由于 UAC),但我仍然使用它(出于 WinXP 的坏习惯)。例如,在这台机器中,我有:

    • C:\Program Files (x86)\Firefox_26
    • C:\Program Files (x86)\Firefox_31
    • C:\Program Files (x86)\Firefox_38
  2. 有一个专用文件夹来存储您的 FF 配置文件集合,每个配置文件都有一个子文件夹(希望以任何有意义的方式命名,以避免混淆)。同样,在这台机器上,我有:

    • D:\TJ\Fake_subst_I\FF_profiles\Profil_12.0_Main
    • D:\TJ\Fake_subst_I\FF_profiles\Profil_12.0_PH
    • D:\TJ\Fake_subst_I\FF_profiles\Profil_19.0_Main
    • D:\TJ\Fake_subst_I\FF_profiles\Profil_26.0_Main
    • D:\TJ\Fake_subst_I\FF_profiles\Profil_31.0_discard_sessions
    • D:\TJ\Fake_subst_I\FF_profiles\Profil_31.0_Main
    • D:\TJ\Fake_subst_I\FF_profiles\Profil_38.0_discard_sessions
  3. 进入每个安装目录并制作firefox.exe 的多个副本(具有不同名称的 OFC - 同样是有意义的名称!)。例如 ...

    • C:\Program Files (x86)\Firefox_31\firefox(v31_test_restored_profile).exe
    • C:\Program Files (x86)\Firefox_31\firefox(v31_txyz).exe
    • C:\Program Files (x86)\Firefox_31\firefox(v31_txyz_discard_sessions_bypass_Avast).exe
    • C:\Program Files (x86)\Firefox_31\firefox(v31_zyxba_bypass_Avast).exe
    • C:\Program Files (x86)\Firefox_31\firefox.exe

      1. 注意:普通的“firefox.exe”:当我想使用“默认”配置文件(主要是零附加组件)测试一个特定版本的 FF 时,我会使用它。
  4. 接下来的内容需要对细节的健康关注;不是很复杂,但它需要大量的复制粘贴和仔细的搜索和替换:拥有一组 .BAT 文件,这些文件将匹配某些给定版本的 FF 与某些给定的配置文件文件夹。我有一些非常长且令人费解的 .BAT,我现在没有完整发布,但一些关键要素如下:

    set dir_applic=C:\PROGRA~2\FIREFO~3
    REM
    REM .BAT is happier with old DOS 8.3 filenames (when 'normal' filenames contain spaces)
    REM
    set dir_profil=I:\FF_profiles\Profil_38.0_discard_sessions
    set ff_exe=firefox(v38_txyz_discard_sessions_bypass_Avast).exe
    set coman=start %dir_applic%\%ff_exe% -no-remote -profile %dir_profil%\
    REM
    REM I don't like and don't use parm '-P' for 'profile NAMES'
    REM
    echo %coman%
    pause
    REM
    REM ... the echo+pause lets you SEE the actual command expansion before execution
    REM
    %coman%
    REM
    REM the cooked-up command has just been executed.
    REM
    
    Run Code Online (Sandbox Code Playgroud)
    1. 如果您注意到变量“dir_profil”的内容与配置文件文件夹的路径不完全匹配,那是因为我的结构中存在遗留的可移植性问题。它与所回答的问题没有直接关系,但为了完整起见,我会事先声明我的 .BAT 文件版本也有以下命令:

    设置 real_drive=D
    设置 fake_drive=I
    subst %fake_drive%: %real_drive%:\TJ\Fake_subst_%fake_drive%
    REM ... 这样 .BAT 实际上会促使 FF 看到 D: 的子文件夹,因为我:
  5. 上述设置允许您同时运行多个版本+配置文件的组合(只要可用 RAM 允许,OFC)。

  6. 现在,对于每个配置文件,您需要具有以下所有有效内容;否则,将保证即将发生 BORK,不仅在一个特定的 PROFILE 文件夹中,而且在一个特定的 INSTALL 文件夹中。你被警告了!

    • 菜单工具/选项/高级/更新:“永远不要检查更新”
    • 不要 - 永远 - 手动检查 FF 更新。再一次——从不。
    • about:configextensions.update.enabled = false
    • 在您需要时手动检查附加更新;建议之后检查附加组件管理器中的“查看最近更新”列表,以了解每次更新的附加组件以及对每个附加组件所做的更改(可能是不必要的极客)。
  7. 强烈推荐作为整个策略的胶水

  8. 或多或少推荐(不要让“安全专家”知道这一点),这取决于您(错误的)浏览习惯的 OFC:抵制拥有 FF 的所有最新版本的诱惑。您必须将每一个都安装在其自己的目录中,并且还必须有一个新的配置文件目录来匹配。

  9. 每当您想要拥有全新 FF 版本的冲动时,您都必须遵循以下步骤:

    • 从 Mozilla.org 下载新版本(同样,不要使用任何“更新”功能)
    • 创建一个新的安装文件夹
    • 在新创建的文件夹中安装新的 FF 版本,但不要运行它!
    • 运行您一直使用的最后一个 FF 版本(从 .BAT 文件,OFC 开始)
    • 在之前的 FF 版本上,更新所有附加组件
    • 运行上述先前 FF 版本的 FULL FEBE 备份(它将生成一个优化的 .ZIP 文件,实际命名为“whatever.FBU”)
    • 创建一个新的 EMPTY 文件夹,用于包含新安装的 FF 版本的 FF 配置文件
    • [可选]使用 7z 解压 'whatever.FBU' 文件(FEBE 压缩的配置文件备份),然后毫不客气地将其所有内容转储到新创建的空配置文件文件夹中。注意: 此处的“可选”表示:要么您这样做,以实现旧配置文件的完整和更新版本的目标,要么您不这样做,从一个全新的空白配置文件开始。两者都可以工作,具体取决于您希望新配置文件用于什么 - 在空白配置文件的情况下,FF 将在首次使用时自动填充其基本的必需元素。
    • 将“firefox.exe”文件从新安装的 FF 版本复制到其非常相同的目录中,现在使用一个有意义的名称(以匹配新的配置文件文件夹名称和用途)
    • 将您之前的 .BAT 文件克隆到一个新文件中,您将在其中仔细替换以下变量的内容:

      dir_applic (if containing spaces, use its 8.3 DOS notation)
      dir_profil
      ff_exe
      
      Run Code Online (Sandbox Code Playgroud)
    • 运行新克隆和编辑的 .BAT 文件,以便新安装的 FF 版本中的重命名 firefox.exe 将引用新的刚刚填充的 PROFILE 文件夹(而 OFC 完全忽略并保留以前的 FF 版本及其每个相应的配置文件)

    • 这是真相时刻,FF 将检查您所有附加组件的兼容性,禁用其中的一些,推荐其他一些的新版本等等等等。
    • 每当您在最新的个人资料中完成按摩附加组件时,请转到下一项!
  10. 由于FEBE 的设置包含用于配置文件备份的DESTINATION 文件夹,您现在应该将其更改为以前的值,以便从现在开始任何新的 FEBE 备份都将存储在与以前 FF 版本的备份不同的文件夹中。

  11. 生成两个 FEBE 备份:一个逐项备份,一个多合一备份。验证两个备份集是否都在新目标文件夹中结束(即,不与来自先前配置文件版本组合的备份一起)。

  12. 在某处创建并测试一个快捷方式,指向新测试的 .BAT 文件。

  13. 松一口气,和/或为如此复杂和复杂的程序而责备自己。

干杯和好运!

2015 年 7 月 5 日编辑,以澄清 OP 在对我上述建议的解决方案的评论中提出的一些问题:

A. 如果我“运行各种 firefox_xxx.exe 文件之一而不在命令行上指定配置文件”......它会[尝试]运行我的 Windows 用户的“默认”FF 配置文件,即位于里面的配置文件“C:\用户\我的用户名”。结果将是随机的,具体取决于哪个版本是当前运行默认配置文件的 FF .exe,以及之前尝试在同一默认配置文件上运行的 FF .exe 的版本。记住,在我的计划中,:

  • 我的各种 firefox_xxx.exe 文件都不能在没有正确 .BAT 文件的情况下运行;
  • 我的默认 FF 配置文件仅用于测试目的,例如将更干净的 FF 环境与具有数十个附加组件的典型其他环境之一进行比较,并且不打算经常使用。

B. “检查更新”按钮并不意味着在我的计划中被按下。然而,在它被按下的假设情况下,大约会发生以下情况:

  1. 假设我正在运行一个特定的 .BAT 文件,该文件会调用 FF 31 的安装,以及为 FF 31 量身定制的特定配置文件:
  2. 该更新实际上会将位于“C:\Program Files (x86)\Firefox_31”中的 FF 版本更新为 FF 39,包括原始 firefox.exe 和该安装目录中存在的所有支持文件;
  3. 同一个安装目录中的 firefox.exe 重命名的“克隆”将保留在 v31,并且任何尝试运行这些可执行文件中的任何一个 - 现在被一组支持文件包围,这些文件现在都更新到 FF 39 - 可能会抛出一个错误,或者根本不启动浏览器。
  4. 更新还将扫描 .BAT 文件指向的配置文件目录,验证和无效的附加组件,因为它认为适合与 v39 一起运行,并且很可能会削弱该配置文件目录以供将来使用它定制的原始 v31 时使用为了;
  5. 我所有其他已安装的 FF 版本(每个版本都位于特定的安装目录中)将保持不变;
  6. 我所有其他现有的个人资料目录将保持不变,包括我可能为 FF 31 制作的任何其他个人资料目录;
  7. 例如,如果在 FF 31 的这个不需要的更新之后,我然后运行我的特定 .BAT 文件,该文件调用我的 FF 38 安装,再加上为 FF 38 量身定制的特定配置文件,一切都将保持不变并完美运行;
  8. OTOH,如果我现在尝试运行另一个会调用 FF 31 的 .BAT 文件,再加上一个也为 FF 31 量身定制的不同配置文件,我可能会得到不可预测的结果——因为,虽然这个不同的配置文件目录仍然完好无损'v31' 配置文件,FF 31 的 INSTALL 目录现在包含完整的 FF 39 安装,以及保留在 v31 的克隆 .exe。在这种情况下,此 .BAT 文件将调用“剩余的”v31 .exe 之一。

C. 正如我希望在上面证明的那样,您的陈述“如果更新一个安装会影响其他安装......”是不正确的,因此您的结论“安装不是完全独立的”是无效的。

D. 您链接到的 lockpref 方法旨在用于有“管理员”的环境,该环境需要防止“普通用户”进行不受欢迎的操作。我的解决方案 OTOH 是一个由极客为自己使用而创建的结构,因此它不仅假设严格和谨慎的使用参数,而且还假设没有其他用户可能会因为粗心的使用而厌烦它。


小智 0

我不知道是否可以在同一系统上安装不同的 Firefox,但我遇到了类似的问题,这是我的解决方法:

  1. 下载Firefox 配置文件管理器(它是一个独立的应用程序)并根据需要创建任意数量的配置文件。您可以任意选择要安装每个配置文件的目录。最好为配置文件提供一致的名称,但不是强制性的。

  2. 在桌面上,为您刚刚创建的每个配置文件创建一个 Firefox 链接(快捷方式)。

  3. 对于每个链接,right-click在其上的以下行后面的Property字段中选择一个“然后” :Target

    "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -no-remote -p "profile_name"
    
    Run Code Online (Sandbox Code Playgroud)
  4. profile_name使用您在创建配置文件时为配置文件选择的名称更改该部分。不是目录的名称。

  5. 你完成了。

正如我所说,您最终将在同一 Firefox 安装中运行多个配置文件,但在这种情况下,优点是您可以独立使用它们,甚至无需记住每个配置文件的名称及其用途。您只需单击桌面上的快捷方式,Firefox 就会为每个配置文件创建一个全新的实例(即为firefox.exe每个实例创建一个新进程)。这意味着您还可以一起运行它们,同时从任务管理器终止其中一个,重新打开它并执行您想要的任何操作。

到目前为止我一直在使用这个“技巧”,它从未给我带来任何问题或数据丢失。