我需要在 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";