Mohamed Zouari Asked: 2021-01-09 05:42:53 +0800 CST2021-01-09 05:42:53 +0800 CST 2021-01-09 05:42:53 +0800 CST 使用 nixOs 从远程存储库中读取文件 772 我正在使用 nixOs 包系统构建一个项目。我有一个包含不同配置文件的远程 git repo。我想使用 nix 访问这些文件,而无需编辑远程仓库。 该项目将使用特定的提交哈希访问远程仓库。谁能帮帮我,谢谢。 nix nixos 1 个回答 Voted Best Answer Robert K. Bell 2021-01-09T16:59:46+08:002021-01-09T16:59:46+08:00 这是一个简短的派生,它从不包含 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 页面中,例如这个页面。
这是一个简短的派生,它从不包含 Nix 配置的远程 git 存储库中读取文件:
如果将其保存到名为 的文件
count-remote-lines.nix
中,则该nix-build
命令会将输出放入名为 的本地文件夹中result
:或者,为了更好地解决派生的构建过程,通过在交互式 shell 中逐步完成它,请尝试:
其余的构建命令记录在
man nix-shell
示例下。也在 wiki 页面中,例如这个页面。