我需要在 NixOS 中部署已配置并带有扩展的 Firefox。我想以声明方式(在configuration.nix
)中执行此操作,并且我不想使用家庭管理器。
通过用户个人资料:
- 配置可能通过首选项文件
- 加载扩展是不可能,Firefox 74 的支持已结束
通过安装目录:
- 配置+扩展可通过管理政策.json
Firefox 在中查找配置/nix/store/<hash>-firefox-unwrapped-74.0.1/lib/firefox/distribution/policies.json
(用 验证strace
)。
因此问题是:如何将此文件添加到 Firefox nixpkgs 包中? (额外问题:如何从我的 Github Repo 获取文件?)
我对 NixOs 还很陌生。我查阅了有关覆盖、覆盖、包装等的手册,但我无法成功。我尝试了firefox
和firefox-bin
。firefox-unwrapped
答案1
自 NixOS 21.05 (犯罪)现在可以轻松创建自定义 Firefox 包,并设置一些策略值,例如,
pkgs.wrapFirefox pkgs.firefox-unwrapped {
extraPolicies = {
DisableFirefoxStudies = true;
DisablePocket = true;
};
}
pkgs
Nixpkgs 软件包集在哪里。
答案2
我看了一眼 firefox Nix 表达式,没有看到提供policies.json
.
如果你修改包,以便可以提供策略作为派生的输入,它会起作用,但用户将被迫承担编译 Firefox 的负担;因为该文件将是构建输入。
如果 Firefox 提供了一种方法来指定在运行时在何处查找策略文件,那么这可能是一个理想的解决方案。否则,您可以向 Firefox 软件包添加补丁,该补丁修改源代码以查找策略文件,例如/etc/firefox/policies.json
...。完成此更改后,您可以使用environment
NixOS 模块来/etc/nixos/configuration.nix
创建策略。像这样的东西:
environment.etc."firefox/policies".text = "INSERT POLICY HERE";