Hello Nix

最近、NixについてYouTubeで取り上げられていて気になったので入門してみた。

既存の環境に雑に導入すると壊れたので新しい環境を作る。

環境: Windows 11 / WSL (Ubuntu-26.04)

手順

Ubuntuを入れる

ちょうど26.04が出たばっかでした。折角なのでインストール

.wslファイルをそのまま起動しても致命的なエラーが起こるかもしれないので以下を実行しておく

wsl --update

終わったら落としてきたファイルを開いてインストールと初期設定を済ませる

Nixを入れる

本題のNixをインストール。ここを参考に

curl -sSfL https://artifacts.nixos.org/nix-installer | sh -s -- install

flake.nixを書いてみる

こんな感じに書いておくとよさそう?

{
  description = "base env";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
  };

  outputs =
    { nixpkgs, ... }:
    let
      system = "x86_64-linux";
      pkgs = import nixpkgs { inherit system; };
    in
    {
      devShells.${system}.default = pkgs.mkShell {
        packages = with pkgs; [
          git
          gh
          nodejs # ここらへんはお好みに
          pnpm
          go
        ];
      };

      formatter.${system} = pkgs.nixfmt;
    };
}

packageはNixOSのサイトで探すとお求めのものがあるかもしれない。 hugoもありました。

https://search.nixos.org/packages?channel=23.05&include_modular_service_options=1&include_nixos_options=1&show=hugo

おわり

macOSだとbrewで入れていないGoとbrew installの依存で入ってきたGoが衝突してめんどくさかったがそういうことがなくなってよさそう(この環境はWindowsだが)。

あとがき

  • ghをいれておけばgh auth loginで公開鍵勝手に作って登録してくれるので楽です