有nix-shell
相当于 的make -C DIR
吗?早在我有一个 Nix shell 之前,我经常运行sudo make -C ~/dev/root install
来配置我的系统,而使用 Nix shell,我找不到比nix-shell --run 'sudo make -C ~/dev/root install' ~/dev/root/shell.nix
or更简单的方法cd ~/dev/root && nix-shell --run 'sudo make install'
- 如果我尝试简化nix-shell --run 'sudo make -C ~/dev/root install'
它,则使用 shell.nix (或 default.nix)当前目录,并在当前目录中nix-shell --run 'sudo make install' ~/dev/root/shell.nix
运行内部命令。sudo make install
答案1
我希望当我将你的问题解释为时我理解正确
如何自动转到Nix shell 中
cd
的路径?shell.nix
一个 shell hook 应该cd "${toString ./.}"
可以做到这一点。这当然是完全不纯洁的。我也不知道shell.nix
符号链接时会发生什么。不能退款。
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
buildInputs = [ pkgs.hello ];
shellHook = ''cd "${toString ./.}"'';
}
$ nix-shell ~/Documents/letters/shell.nix --run "pwd"
/home/<user>/Documents/letters