Nix
使用 nixOs 從遠端儲存庫中讀取文件
我正在使用 nixOs 包系統建構一個項目。我有一個包含不同配置文件的遠端 git repo。我想使用 nix 訪問這些文件,而無需編輯遠端倉庫。
該項目將使用特定的送出雜湊訪問遠端倉庫。誰能幫幫我,謝謝。
這是一個簡短的派生,它從不包含 Nix 配置的遠端 git 儲存庫中讀取文件:
with (import <nixpkgs> { }); let repo = fetchFromGitHub { owner = "nix-community"; repo = "awesome-nix"; rev = "c4adba38dc2ec33aa0f692cc5fcb9677b123087c"; sha256 = "cF9sh3vrDwTh64ZkgyEuJKmmA4UhbnXw8x4cnBMeGHk="; }; in stdenv.mkDerivation { name = "count-repo-lines"; src = repo; buildPhase = '' mkdir $out wc -l ./README.md > linecount ''; installPhase = '' cp linecount $out/linecount ''; system = builtins.currentSystem; }
如果將其保存到名為 的文件
count-remote-lines.nix
中,則該nix-build
命令會將輸出放入名為 的本地文件夾中result
:$ nix-build ./count-remote-lines.nix ...various log messages... $ cat ./result/linecount 154 ./README.md
或者,為了更好地解決派生的建構過程,通過在互動式 shell 中逐步完成它,請嘗試:
$ nix-shell ./count-repo-lines.nix --pure $ unpackPhase unpacking source archive /nix/store/xaff1yqipbpazhp9jz22rjp7izbglzr5-source source root is source $ cd source $ ls CONTRIBUTING.md LICENSE README.md
其餘的建構命令記錄在
man nix-shell
範例下。也在 wiki 頁面中,例如這個頁面。