marp | footer |
---|---|
true |
Homepage: https://haruki7049.dev
URL for this slide:https://gist.github.com/haruki7049/a972aaa4c9d3120885ca0fd129cceb2d |
Author: haruki7049
-
名前: はるき
-
しがない専門学校生
-
新卒での就職先を探している
-
Nix/NixOSを高校二年生くらいから好きになった(弊害として、それ以外のOSを受け付けなくなってしまったが…)
-
最近はnixpkgsへのコントリビュートもしていたりする
-
このスライドへの技術的なまさかりを募集している
Nix Overlay
とは?
二つの引数を取って、一つのアトリビュートセットを返す、一つの関数。
self: super: { }
- https://github.com/oxalica/rust-overlay
- https://github.com/nix-community/emacs-overlay
- https://github.com/nix-community/neovim-nightly-overlay
英語が読めるなら、NixOS Wikiを読んだ方がわかりやすいかもしれない。
Overlay自身の定義によるDerivation
作成後のnixpkgs。
参照元のnixpkgs
。
ここの認識が怪しいので、皆さんぜひまさかりを投げてください。
# overlay.nix
self: super: {
myLlvm = super.llvm_12.override ({
version = "19.1.1";
});
myLlvm-result = self.myLlvm;
}
# default.nix
{
pkgs ? import <nixpkgs> {
inherit overlays;
},
overlays ? [
(import ./overlay.nix)
],
}:
pkgs.myLlvm-result
- 自分用のパッケージを一つのOverlayにまとめる。
- プロジェクト用に一つのOverlayを定義して、使用するツールのバージョンをまとめる。
- コンパイラの全てのバージョンを一つのOverlayにまとめて、バージョン固定などに使用する。個人的なおすすめ!!
https://github.com/haruki7049/deno-overlay Denoのバージョン固定用Overlay。
- Overlayは二つの引数を取り、一つのアトリビュートセットを返す一つの関数。
- Overlayは、意外と簡単に作れる…はず!!
- コンパイラのバージョン固定に使用するのが個人的なおすすめ!!
皆さん、このスライドに質問やまさかりを投げる時間です。 https://github.com/haruki7049/deno-overlay にもぜひまさかり代わりのイシューやプルリクエストを投げてみてください。