Open4

今日から始める NIx 入門(Zero to Nix編)

とんとんぼとんとんぼ

Nix の導入方法

以下のインストーラーを実行

curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install

ターミナルを再起動して、nix --version すると以下のようにバージョンが表示される:

% nix --version
nix (Nix) 2.23.3
とんとんぼとんとんぼ

Nix でプログラムを実行する(Run a program with Nix)

ここでは、

  1. nix runコマンドを使って、Nixpkgsからプログラムを実行する
  2. Nix フレームとパッケージについて学ぶ
  3. Nixpkgsからプログラムをダウンロードして実行する

以下のコマンドを実行

% echo "Hello Nix" | nix run "https://flakehub.com/f/NixOS/nixpkgs/*#ponysay"

説明

先ほどのコマンドは、以下の操作を行う:

  • Nixpkgsへのflakeリファレンスを使ってNixのコードを取り込み、ponysayのflake出力をターゲットにした(これについては後述する)
  • ponysayパッケージをビルドし、その結果をNixストアに保存
  • ponysayパッケージからbin/ponysayで実行ファイルを実行
とんとんぼとんとんぼ

Nix 開発環境を探る(Explore Nix development environments)

ここでは、

  1. nix develop コマンドw使って、Nix開発環境を起動する
  2. 実際にその環境に入ることなく、開発環境内でコマンドを実行する
  3. 特定のプログラミング言語に合わせたNix開発環境を探る
  4. より複雑な開発環境を探る
  5. ローカルフレークで定義された環境を起動するために、nix developを使う

nix develop コマンドでNix環境を起動する:

nix developコマンドはNix環境を起動する:

すると、curl と Git を含んだ Bash 環境となるはず。
これは、https://flakehub.com/f/DeterminateSystems/zero-to-nix/*#example flake reference を使って、Nix のコードを取り込み、特定のflake 出力をビルドした。
環境設定で制定されたパッケージをビルドした。
Nixストアで git, curl のパッケージを検出できるように、PATHで環境を設定した

Nix 開発環境で提供できる他の2つのこと
TBD

以下のコマンドで、Nix 開発環境を離れることができる:

exit