/etc/nixos/configuration.nix
NixOS(22.11 기준)를 설정할 때 기본적으로 항상 OS에 있도록 Emacs를 시스템에 추가하고 싶습니다 . Emacs를 사용하여 시스템 구성을 편집하려면 먼저 Emacs를 설치해야 합니다.
nix-env -i emacs
예상한 대로, 편집 environment.systemPackages
하고 nixos-rebuild
명령한 후 내 OS에 emacs가 있고 다음에 nixos를 다시 빌드할 때 Emacs가 거기에 있을 것입니다(저에게도 마찬가지입니다 nix-env --uninstall emacs
).
이제 문제는 내가 설치한 내용이 파일 nix-env -i
에 반영되지 않는다는 것입니다. /etc/nixos/configuration.nix
명령줄에서 실행되기 때문에 로컬에 설치된 명령 세트는 재현하기 어렵습니다. (추가하려는 구성도 마찬가지입니다 ~/.emacs.d
)
내 질문은 다음과 같습니다
구성 파일을 통해 로컬 설치(예: emacs
here) 또는 로컬 구성(예: here )을 재현할 수 있는 방법이 있습니까 ?.emacs.d
답변1
nix-env -i
시스템 재현성을 보장하기 위해 소프트웨어를 설치하는 것을 권장하지 않습니다 . 모든 시스템 변경은 편집을 통해 이루어져야 합니다 nixos-configuration.nix
.
Emacs 설정은 홈매니저를 통해 수정하는 것을 권장합니다.
구성이 적으면 직접 전달할 수 있습니다.홈 매니저 -programs.emacs.extraConfig
).
구성이 많을 경우 사용을 권장합니다.홈 매니저 -home.file.<name>.source
관리를 위해.
시스템의 재현성을 높이기 위해 Flakes와 함께 NixOS를 사용하는 것이 좋습니다. 가이드는 다음과 같습니다.
답변2
시스템용 패키지를 설치하기 위해 nix-env를 사용하는 것은 권장되지 않습니다. 모든 사용자를 위해 시스템에 패키지를 추가하려면,설명서의 이 부분을 확인하세요.. 즉, 다음을 포함하도록 Configuration.nix를 편집합니다.
environment.systemPackages = with pkgs; [
<your package here>
]
그런 다음 구성을 편집하려면 다음을 수행하십시오.이 웹사이트를 방문하세요이 패키지의 옵션을 확인하세요. 예를 들어 vim의 경우 샘플 구성은 다음과 같습니다.
programs.vim = {
enable = true;
defaultEditor = true;
};
이렇게 하면 전체 구성을 선언적으로 만들 수 있습니다. 사용자별 프로그램 및 구성을 원할 경우 홈 관리자에 대한 @Vladimír czunát의 의견에 있는 가이드를 따를 수 있습니다. 약간의 추가 설정이지만 전체 시스템에 항목을 설치하는 방법과 매우 유사합니다. Home Manager는 특정 패키지에 대한 몇 가지 추가 옵션도 제공하므로 Home Manager 매뉴얼에서 해당 옵션을 확인하세요.그 중 하나는 여기에서 찾을 수 있습니다.