環境設定
ここでは、私のサーバーにNixOSインストールしたときの設定の一部、および書き方の備忘録を残しておきます。
OSの設定
まずはインストールしたあとのコマンドなどについてです。
NixOsでは/etc/nixosに、OSやUser、ソフトの設定を行うようです。
最初は
configuration.nix
hardware-configuration.nix
があります。
まずはconfiguration.nixを編集して設定などをかえます。
反映するためには
sudo nixos-rebuild switch
を打つ必要があります。
書き方は色々ですが、configuration.nix内では
imports =
[ ## Include the results of the hardware scan.
./hardware-configuration.nix
./i18n.nix
./host.nix
./avahi.nix
./user.nix
];
のような形でファイルを分離することもできます。
そこで色々設定しました。例えば以下
boot.kernelPackages = pkgs.linuxPackages_7_1;
nixpkgs.config.allowUnfree = true;
environment.systemPackages = with pkgs; [
wget
git
tmux
];
programs.neovim = {
enable = true;
defaultEditor = true;
vimAlias = true;
};
networking.firewall.allowedTCPPorts = [ 3389 ];
nix = {
settings = {
auto-optimise-store = true;
experimental-features = ["nix-command" "flakes"];
};
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 14d";
};
};
hardware.graphics.enable = true;
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia.open = true;
などです。
初期設定時はsudo nixos-rebuild switchをそのまま使っていましたが、以降ではflake.nixで管理します。
適宜設定を書いたら、
nix flake update
sudo nixos-rebuild switch --flake .
で反映させます。
nix flake updateはflake.nixを見て.lockファイルを作成してくれます。
これにより、nixpkgsの大元の最新が更新されても.lockで固定するようです。
ユーザーローカル設定
上記はOSとともにどのユーザーにも共通する設定です。
次にユーザーの独自設定、例えばシンタックスハイライトやシェル、Tmux設定など?を設定します。
その際はhome-managerを使います。
まずは
nix run home-manager/master -- init
masterブランチにあるhome-managerを取得して初期化。
すると~/.config/home-manager/にflake.nixなどができるので適宜編集して
cd ~/.config/home-manager/
nix run home-manager/master -- switch --flake ./
で反映します。
今回はhome.nix内で
programs.home-manager.enable = true;
を入れているので二回目以降はhome-managerが入っているので
反映できます。
プロジェクト環境設定
最後にプロジェクトごとに環境を作って、そこに入る方法をかいて行きます。
でもflake.nixまでは基本は同じです。
cd tmp/root-test/
vim flake.nix
nix flake update
開発環境に入る方法は
閉じる方法は
覚書
nix run nixpkgs##ttysvr -- maze
nh search asciiqua
nh os switch .
nh home switch .