/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írczunátのコメントにあるガイドに従うことができます。いくつかの追加設定ですが、システム全体にアイテムをインストールする方法と非常に似ています。 Home Managerは特定のパッケージにいくつかの追加オプションも提供していますので、Home Managerのマニュアルでそのオプションを確認してください。そのうちの1つはここにあります。