NixOSの外部でNix環境を構成するには?

NixOSの外部でNix環境を構成するには?

これまで私はnix-env -iパッケージをインストールしてNixパッケージマネージャを試してみました。では、次のいずれかを使用して管理したいと思います~/configuration.nixここの例、私のドットファイルにバージョンを割り当てることができます。現在の環境でこの設定を作成する方法はありますか?

nixos-generate-configユーザーまたはシステムレベルの設定について見つけることができるすべての情報はNixOSに固有のものであり、ファイルを生成するために実行されたと仮定します。このツールはnixpkgsでは利用できないため、このツールはNixOSインストールの作成にのみ使用され、一般設定ファイルの生成には使用されていないようです。

また、Nixパッケージマネージャがインストール中にこのファイルを生成しないのはなぜですか? Nix(NixOSではない)ユーザーは、このファイルなしでインストールされたソフトウェア(たとえば、Vimプラグイン)をどのように設定しますか?

答え1

このファイルは実際にはNixOSに固有のもので、NixOSのインストール時に自動的に作成されます。つまり、解決策があります。

答え2

次のnix式を使用して、「nixシェル」環境を管理できます。

シェル・ニックス

{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
  buildInputs = [ pkgs.bash pkgs.zsh pkgs.curl pkgs.wget ];
}

次に、この環境に「入るには」次を実行します。nix-shell shell.nix

答え3

configuration.nixBen Creasyが提案したツールを使用して、ファイルの[NixOSドキュメント](nixos-rebuildスイッチ)に記載されているワークフローをコピーできます。ホームマネージャー

NixOS以外のLinuxディストリビューションのオプションがあります[1]:

targets.genericLinux.enable = true;

どの

NixOS以外のLinuxでnixインストールソフトウェアを簡単に使用できるように、いくつかの環境変数を自動的に設定します(ローカルの問題の修正、XDG_DATA_DIRSの設定など)。

ホームマネージャを使用してパッケージ/プログラムを宣言的に管理できます。以下は、home.nixマニュアルの最小例です。

{ pkgs, ... }:

{
  home.packages = [
    pkgs.htop
    pkgs.fortune
  ];

  programs.emacs = {
    enable = true;
    extraPackages = epkgs: [
      epkgs.nix-mode
      epkgs.magit
    ];
  };

  programs.firefox = {
    enable = true;
    profiles = {
      myprofile = {
        settings = {
          "general.smoothScroll" = false;
        };
      };
    };
  };

  services.gpg-agent = {
    enable = true;
    defaultCacheTtl = 1800;
    enableSshSupport = true;
  };

  programs.home-manager = {
    enable = true;
    path = "…";
  };
}

home-manager switch次に変更を適用します。

  1. https://nixos.wiki/wiki/Home_Manager#Usage_on_non-NixOS_Linux

答え4

私はNixを使ってUbuntuでドットファイルを管理します。私は走るこのスクリプトこれはただの包装です。このインストーラ

インストーラはドットファイルのバージョンを次に変換します。ニックスパッケージ、そして使用GNUリポジトリホームディレクトリに再接続します。

ほとんどの人にとっては少し複雑かもしれませんが、私はNixOS、Ubuntu、およびOSX間のドットファイルを管理するために使用します。

関連情報