これまで私はnix-env -i
パッケージをインストールしてNixパッケージマネージャを試してみました。では、次のいずれかを使用して管理したいと思います~/configuration.nix
。ここの例、私のドットファイルにバージョンを割り当てることができます。現在の環境でこの設定を作成する方法はありますか?
nixos-generate-config
ユーザーまたはシステムレベルの設定について見つけることができるすべての情報はNixOSに固有のものであり、ファイルを生成するために実行されたと仮定します。このツールはnixpkgsでは利用できないため、このツールはNixOSインストールの作成にのみ使用され、一般設定ファイルの生成には使用されていないようです。
また、Nixパッケージマネージャがインストール中にこのファイルを生成しないのはなぜですか? Nix(NixOSではない)ユーザーは、このファイルなしでインストールされたソフトウェア(たとえば、Vimプラグイン)をどのように設定しますか?
答え1
このファイルは実際にはNixOSに固有のもので、NixOSのインストール時に自動的に作成されます。つまり、解決策があります。
そのうちの1つが説明されています。https://nixos.org/nixpkgs/manual/#sec-declarative-package-managementNixpkgsのマニュアルにあります。 (追加済み今回の広報.)
それ以来、財政のメカニズムが登場したことに注意してください。第12章 入れ子:"
packageOverrides
オーバーライドは、Nixpkgをカスタマイズする他の方法、特に次に説明するプロパティと似ています。6.5節。 「パッケージを修正してpackageOverrides
」。実際、packageOverrides
これはスーパーパラメータとのオーバーレイとしてのみ機能します。したがって、基本的な使用に適していますが、より強力で配布しやすいオーバーレイがあります。」また、ユーザー側の宣言的構成は作業中のようですが、しばらく更新されませんでした。https://github.com/NixOS/nixpkgs/pull/9250
また見てください一般ユーザー向けの宣言的パッケージ管理NixOS ディスカッションに関するディスカッション。
答え2
次のnix式を使用して、「nixシェル」環境を管理できます。
シェル・ニックス
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
buildInputs = [ pkgs.bash pkgs.zsh pkgs.curl pkgs.wget ];
}
次に、この環境に「入るには」次を実行します。nix-shell shell.nix
答え3
configuration.nix
Ben 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
次に変更を適用します。