blog.anqou.net
rss
author
tags

#nix

breakpointHook で Nix のプログラムをデバッグする

2026-06-12

Nix でソフトウェアのビルドを行おうとする際、最初から完璧な Nix スクリプトが書けるわけではないので、少し Nix を書いて動かしてはビルドがエラーで失敗し、それを修正してまたビルドすると失敗し……というイテレーションを回すことになります。ビルドが一瞬で終わるようなソフトウェアであればまだ良い… Read more.

NixOS で Karukan を使う

2026-06-11

Karukan は GPT-2 を利用した日本語入力システムです。 Linux と macOS で動作します。Linux では Fcitx5 のアドオンとして動くようになっています。これを NixOS で動かしてみます。Karukan は現在のところ nixpkgs には収録されていません。 Kar… Read more.

Nix で N 日前の nixpkgs を使う

2026-06-10

サプライチェーンアタックへの対策として、パッケージが公開されてから実際にそのパッケージを使用するまでにしばらく時間を空けるという対策が取られる場合があります。例えば pnpm の minimumReleaseAge が有名です。同じようなことを Nix でやってみます。つまり nixpkgs でリリ… Read more.

opam-nix で custom repository を使う

2026-06-08

OCaml のパッケージマネージャーである OPAM でサードパーティーのパッケージをインストールする場合、通常は opam-repository からパッケージをダウンロードします。しかし opam-repository にないパッケージや、自分でパッチを当てたパッケージなどを使用したい場合、 O… Read more.

Nix で pause が入った Docker イメージを作る

2026-06-07

Kubernetes ではしばしば、何もせずに待機し続ける Pod を立ち上げたくなることがあります。この際 bash -c "sleep infinity" などを使用してもよいのですが、プロセスに PID 1 が割り当てられてしまう影響[1]で Pod 終了時に 30 秒待機しないといけないとい… Read more.

Jujutsu(jj)の便利な設定

2026-06-04

最近[1] Git の代わりに Jujutsu(jj コマンド[2]) を VCS として使うようにしています。 Git と違ってステージングが不要だったり、操作を jj undo で戻せたり、jj evolog で同一 change に対する編集履歴が見れたりと色々便利です。 Jujutsu の設… Read more.

nix-diff で Nix derivation の差分を確認する

2026-06-03

NixOS の configuration.nix や Nix Flake の flake.nix をリファクタした時などに、リファクタする前後で Nix のコードに実質的に差分が無いことを確認したくなることがあります。 Nix derivation のハッシュ値が変わらなければ差分がないことは明ら… Read more.

nix-store --verify --check-contents --repair で壊れた Nix store を修復する

2026-05-28

Nix でビルドを行っている時などにシステムがハングしたり電源断になったりすると、Nix store の一貫性が壊れた状態に陥ってしまうことがあります。今日自分は nix develop の実行中にメモリが枯渇?し、その結果カーネルパニックになって Nix store が壊れました。 その際、以下の… Read more.

Home Manager で常時有効な gitignore を設定する

2026-05-18

Git を使って開発していると、レポジトリに関わらず常に .gitignore に追加しておきたいファイルやディレクトリというものが発生することがあります。例えば .envrc や .direnv などが典型的です。最近では CLAUDE.local.md も ignore しておくと便利です。ある… Read more.

Nix で Git の private repo を src に指定する

2026-05-13

Nix で derivation を作成する際 src フィールドにソースコードやその他入力を指定する必要があります。通常これは公開されているエンドポイントを指定します。典型的には GitHub の公開(public)レポジトリです: src = fetchFromGitHub { ow… Read more.

nix-tree で依存を調べる

2026-05-11

Nix でソフトウェアをビルドする場合、そのソフトウェアが依存しているものを明示的に宣言する必要があるため、Nix を使わない場合と比べ依存関係を追いやすくなります。一方で、推移的に依存しているものや、あるいはどのバージョンに依存しているかなどはすぐにはよく分かりません。特に opam-nix のよ… Read more.

Home Manager 管理の Claude Code で Co-Authored-By をコミットに含めない

2026-05-02

Claude Code に git commit させると自動的に以下のような行がコミットメッセージに追加されます: Co-Authored-By: Claude Opus 4.7 私は LLM は人間ではない派閥なので(?)ツールの名前が Co-A… Read more.

Dependabot で Nix Flake の更新を行う

2026-04-29

Nix Flake は定期的に nix flake update を打つことで nixpkgs などの依存する inputs を最新に保つことができます。 GitHub でコードを管理している場合 Dependabot でこれを行いたくなりますが、これまで Dependabot は Nix Flak… Read more.

nix flake update で GitHub authenticated request を使う

2026-04-23

GitHub へのアクセスにはレートリミットが存在し、適当にアクセスしていると容易く制限に引っかかることがあります。 Nix のエコシステムは GitHub にかなり強く依存しており、特に nix flake update のようなコマンドは GitHub にアクセスできないと以下のようなエラーを出… Read more.

Nix Flake で再現可能でシンプルな Python 開発環境を作る

2026-04-22

Nix Flake は再現可能な開発環境を作るのに便利ですが、ドキュメントを見てもどのように使えばいいのか初見ではよく分かりません。そこで、Python コードを書くためのシンプルな開発環境を作ってみます。ここに書く例はシンプルすぎて本格的な開発には向きません[1]が、適当に書いたアドホックなスクリ… Read more.

agenix で Claude Code の MCP Server の認証情報を管理する

2026-04-18

home-manager には Claude Code のサポートが入っており、これを使うと MCP server の設定を宣言的に管理することができます。例えば以下のように書くと GitHub MCP Server が使えるようになります[1]: programs.claude-code = { … Read more.

NixOS を使い始める

2024-12-28

NixOS を使い始めたときに設定をしたときのメモ。前半は VM に入れた NixOS で作業している。後半からは実機にインストールして作業する。自分用のメモを仕立て直したものなので読みにくいかも。 NixOS の使用感を知りたい人は一番下までスクロールすると書いてある。 参考にするもの 公式のドキ… Read more.