一般ユーザーのためのnix設定ファイルはありますか?

一般ユーザーのためのnix設定ファイルはありますか?

/etc/nixos/configuration.nixNixOS(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

私の質問は次のとおりです

設定ファイルを使用してローカルインストール(emacshereなど)またはローカル設定(hereなど)を再現する方法はありますか?.emacs.d

答え1

nix-env -iシステムの再現性を確保するためにソフトウェアをインストールすることはお勧めできません。すべてのシステム変更は編集で行う必要がありますnixos-configuration.nix

Emacsの設定は、ホームマネージャを介して変更することをお勧めします。

構成が少ない場合は、直接渡すことができます。ホームマネージャー -programs.emacs.extraConfig)。

構成が多い場合は使用をお勧めします。ホームマネージャー -home.file.<name>.source管理のため。

システムの再現性を高めるために、Flakes で NixOS を使用することをお勧めします。ガイドは次のとおりです。

https://github.com/ryan4yin/nixos-and-flakes-book

答え2

システム用のパッケージをインストールするためにnix-envを使用することはお勧めできません。すべてのユーザーのためにシステムにパッケージを追加するには、マニュアルのこの部分を確認してください。。つまり、次を含むようにConfiguration.nixを編集します。

environment.systemPackages = with pkgs; [
    <your package here>
]

次に、構成を編集するには、次のようにします。このウェブサイトにアクセスしてくださいこのパッケージのオプションを確認してください。たとえば、vimの場合、サンプル構成は次のようになります。

programs.vim = {
    enable = true;
    defaultEditor = true;
};

これにより、構成全体を宣言的に作成できます。ユーザー固有のプログラムと設定が必要な場合は、ホーム管理者の@Vladimírczunátのコメントにあるガイドに従うことができます。いくつかの追加設定ですが、システム全体にアイテムをインストールする方法と非常に似ています。 Home Managerは特定のパッケージにいくつかの追加オプションも提供していますので、Home Managerのマニュアルでそのオプションを確認してください。そのうちの1つはここにあります。

関連情報