nikkie-ftnextの日記

イベントレポートや読書メモを発信

Nix 初学者の記録:Home Manager でできるだけ最新版の Gemini CLI を使いたい!(unstable channel を知る)

はじめに

七尾百合子さん、お誕生日 248日目 おめでとうございます! nikkieです。

Nix というものに興味を持っており、初学者の気づきを書き残します。
Nix は理解を深めたいと思っていますので、先達の方でお気づきの点ありましたらやさしく教えていただけると嬉しいです。

目次

お試し Home Manager

Nix の評判は聞き及んでおり、マシン構築の機会があったので、Home Managerを試しました。

Home Manager is a Nix-powered tool for reproducible management of the contents of users’ home directories.

今回の環境情報です。

$ home-manager --version
25.05-pre
$ nix-channel --version
nix-channel (Nix) 2.32.2

Home Manager で Gemini CLI をインストール

Using Home Manager

Your use of Home Manager is centered around the configuration file, which is typically found at ~/.config/home-manager/home.nix in the standard installation or (略)

Configuration Example

{ config, pkgs, ... }:

{
  home.stateVersion = "25.05";

  home.packages = [
    pkgs.gemini-cli
  ];
}

このhome.nixhome-manager switchすると、インストールされます。
gemini -vは「0.10.0」を返します。
Nix環境に以下が入ると理解しました
https://search.nixos.org/packages?channel=25.05&show=gemini-cli&query=gemini-cli
https://github.com/NixOS/nixpkgs/blob/nixos-25.05/pkgs/by-name/ge/gemini-cli/package.nix

unstable channel から Gemini CLI をインストール

Gemini CLI は変更が速いので、なるべく最新に近いものを使いたいです。
How do I install packages from Nixpkgs unstable? を参照し、unstableなchannelを指定すればよさそうと理解しました。
実際 unstable channel には 0.10.0 よりも新しいバージョンが入っています。
https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/ge/gemini-cli/package.nix

{ config, pkgs, ... }:

+let
+  pkgsUnstable = import <nixpkgs-unstable> {};
+in
{

  home.packages = [
-    pkgs.gemini-cli
+    pkgsUnstable.gemini-cli
  ];
}
$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs-unstable
$ nix-channel --update
$ home-manager switch
$ gemini -v
0.15.3

新しい Gemini CLI になりました!
疑問:nix-channel --addコマンドを手で打つという手順が生まれていて宣言的ではなく感じるのですが、これは設定ファイルに書けるのでしょうか?

終わりに

Home Manager で unstable な channel を add して、最新に近い Gemini CLI をインストールできました!

Nix は理解できてないと感じるところしかないという感じで、理解を深められるように触っていけたらなあと思っています。
まず理解したいビデオ