nix-shell은 `make -C DIR`과 동일합니까?

nix-shell은 `make -C DIR`과 동일합니까?

nix-shell이에 상응하는 것이 있습니까 make -C DIR? Nix 셸을 사용하기 오래 전에 정기적으로 시스템을 구성했는데 Nix 셸을 사용하는 것보다 더 쉬운 방법을 찾을 수 없었 습니다. 단순화하려는 경우 shell.nix(또는 default.nix )를 사용하는 것보다 더 쉬운 방법을 sudo make -C ~/dev/root install찾을 수 없었습니다 . 현재 디렉토리 에서 현재 디렉토리의 내부 명령을 실행합니다 .nix-shell --run 'sudo make -C ~/dev/root install' ~/dev/root/shell.nixcd ~/dev/root && nix-shell --run 'sudo make install'nix-shell --run 'sudo make -C ~/dev/root install'nix-shell --run 'sudo make install' ~/dev/root/shell.nixsudo make install

답변1

귀하의 질문을 다음과 같이 해석했을 때 올바르게 이해했으면 좋겠습니다.

Nix 쉘에서 자동으로 경로로 이동하는 방법은 무엇입니까 cd?shell.nix

쉘 후크가 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

관련 정보