我正在尝试让 Firefox 使用多个配置文件(在 Fedora 33 下)。这不是一个新的配置;我过去一直都能成功运行,但 Firefox 突然似乎不高兴了。如果我尝试使用显式配置文件启动 Firefox,如下所示:
firefox --profile default
它抱怨道:
Your Firefox profile cannot be loaded. It may be missing or inaccessible.
虽然:
名为的配置文件
default
存在并在配置文件管理器中可见。配置文件的条目
default
存在于~/.mozilla/firefox/profiles.ini
:[Profile1] Name=default IsRelative=1 Path=8hiuv29u.default
指定目录存在:
$ ls -ld ~/.mozilla/firefox/8hiuv29u.default drwx------ 11 lars lars 4096 Jan 12 16:13 /home/lars/.mozilla/firefox/8hiuv29u.default
如果我运行
firefox
而不添加任何附加参数,它会调出配置文件管理器。如果我选择default
然后Start Firefox
,它会按预期打开浏览器。
这种情况发生在多个配置文件上,而不仅仅是default
配置文件。这些都是刚刚创建的配置文件;起初,我以为可能是过时的配置文件存在一些问题,所以我删除了所有旧配置文件并重新创建了它们。
我在网上找到的大多数解决方案都归结为“删除您的配置文件并重新创建”,但我这样做了却没有成功。如果没有解决方案,也欢迎提出建议,从 Firefox 获取更多(任何!)详细的调试信息以帮助诊断问题。
更新:为了确保以前的安装中没有出现任何奇怪的东西,我尝试了这个:
$ rm -rf $HOME/.mozilla $HOME/.cache/mozilla
然后启动配置文件管理器:
$ firefox --profilemanager
创建两个新的配置文件(default
和work
),然后尝试:
$ firefox --profile default
但这仍然会产生同样的错误。
答案1
问题是,它--profile
不采用个人资料的名称;相反,它采用小路。我意识到这包含在帮助输出中,但它并不明显,我只在运行时注意到了这种行为strace
。比较一下strace
运行中的输出firefox -profile default
(其中我的 cwd 是~/.mozilla
):
925559 stat("/home/lars/.mozilla/firefox/profiles.ini", {st_mode=S_IFREG|0664, st_size=307, ...}) = 0
925559 openat(AT_FDCWD, "/home/lars/.mozilla/firefox/profiles.ini", O_RDONLY) = 12
925559 getcwd("/home/lars/.mozilla", 4096) = 20
925559 lstat("/home/lars/.mozilla/default", 0x7ffd7af11200) = -1 ENOENT (No such file or directory)
firefox -profilemanager
这样,运行并选择默认配置文件的结果如下:
927814 stat("/home/lars/.mozilla/firefox/profiles.ini", {st_mode=S_IFREG|0664, st_size=299, ...}) = 0
927814 openat(AT_FDCWD, "/home/lars/.mozilla/firefox/profiles.ini", O_RDONLY) = 13
927814 stat("/home/lars/.mozilla/firefox/x4mpd3cq.default", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
如果我提供一条明确的路径,一切都会正常,如下所示:
firefox --profile ~/.mozilla/firefox/x4mpd3cq.default/
有一个单独的选项,-P
它接受配置文件名称,因此这也有效:
firefox -P default
答案2
它为什么会这样?我不知道。您已经表明该配置文件夹归您所有;您是否确保其中包含的所有文件也归您所有?这是一个不太可能的猜测,但也许sudo chown -R lars:lars ~/.mozilla/firefox/8hiuv29u.default
会有所不同。
可以修复吗?试试这个:
- 创建一个新文件夹,例如
~/.mozilla/firefox/8hiuv29u.default/Lars
。 - 在该文件夹中创建一个单独的文件:
touch ~/.config/Firefox/Lars/prefs.js
。无需在其中放入任何内容。 - 使用配置文件管理器启动 Firefox,创建一个新的配置文件:
- 将其命名为“Lars”,但不要立即点击“完成”!
- 单击“选择文件夹”并导航至
~/.mozilla/firefox/Lars
。 - 单击“完成”。
- 使用该配置文件启动 Firefox(这会创建一堆附加文件),然后再次退出 Firefox。
- 将文件从旧配置文件复制(不要移动!)到新目录。理想情况下,首先只复制
prefs.js
(您的设置)和places.sqlite
(您的书签)。- 对于
.xpi
中的每个单独文件~/.mozilla/firefox/8hiuv29u.default/extensions
,双击该文件(它应该在 Firefox 中打开)或将其拖到浏览器窗口中以重新安装旧插件。(专业提示:我会利用这个机会来识别它们,重命名源文件.xpi
,并保留它们的备份副本“以备下次使用”。) - 要恢复您的插件设置,请关闭 Firefox,然后复制
~/.mozilla/firefox/8hiuv29u.default/extension-preferences.json
和/或~/.mozilla/firefox/8hiuv29u.default/extensions.json
/和/或~/.mozilla/firefox/8hiuv29u.default/extension-settings.json
(我不记得这些是什么)。 - 你可能复制其他项目也有可能成功,但是由于某些文件中存在旧的配置文件名,这也可能带来问题。读者请注意。
- 对于
将来,全新安装 Firefox 后,请按照步骤 1、2 和 3 操作,然后用最新备份中的配置文件文件夹替换整个配置文件文件夹。