sh1marin on Nostr: 莫名其妙发现了一个 nix 的 feature:在 mkShell 时,如果 buildInputs ...
莫名其妙发现了一个 nix 的 feature:在 mkShell 时,如果 buildInputs 的某个 derivation 的 [passthru.dev](
http://passthru.dev ) 也是个 derivation,那么父 derivation 不会被加进 mkShell 的 env 里,反而是这个 [passthru.dev](
http://passthru.dev ) 会被加进去。
图1:一个普通的 mkShell 表达式
图2:当 passthru 里的 key 是任意值时,nix develop 的环境里的包,和直接 evaluate 的包是同个包。而当 passthru 的 key 设置为 dev 时,mkShell 环境里的包就和直接 evaluate 的不是同一个了。
Published at
2024-05-23 12:57:22Event JSON
{
"id": "abe48e9c43792383d6942286c4f3e49d89a914b44db307dcc6c3fb389bfdd313",
"pubkey": "b1ac882d82ef58188c287118ebbfc950cf0d22e0e25c1d1f8cbab743886b6a3b",
"created_at": 1716469042,
"kind": 1,
"tags": [
[
"imeta",
"url https://files.dabr.ca/0f290dae48fe8f67cb17770969fb1ba2986f0d64590697564df8fa2a3d7efe6d.png",
"m image/png"
],
[
"imeta",
"url https://files.dabr.ca/8b60e058a1da738c68c64253652b88c6625435432b2c2b98ac98a307094d5e15.png",
"m image/png"
],
[
"proxy",
"https://dabr.ca/objects/38b4400d-44b1-439e-bbf9-00f1473eb799",
"activitypub"
],
[
"L",
"pink.momostr"
],
[
"l",
"pink.momostr.activitypub:https://dabr.ca/objects/38b4400d-44b1-439e-bbf9-00f1473eb799",
"pink.momostr"
]
],
"content": "莫名其妙发现了一个 nix 的 feature:在 mkShell 时,如果 buildInputs 的某个 derivation 的 [passthru.dev](http://passthru.dev ) 也是个 derivation,那么父 derivation 不会被加进 mkShell 的 env 里,反而是这个 [passthru.dev](http://passthru.dev ) 会被加进去。\n\n图1:一个普通的 mkShell 表达式\n图2:当 passthru 里的 key 是任意值时,nix develop 的环境里的包,和直接 evaluate 的包是同个包。而当 passthru 的 key 设置为 dev 时,mkShell 环境里的包就和直接 evaluate 的不是同一个了。\nhttps://files.dabr.ca/0f290dae48fe8f67cb17770969fb1ba2986f0d64590697564df8fa2a3d7efe6d.png\nhttps://files.dabr.ca/8b60e058a1da738c68c64253652b88c6625435432b2c2b98ac98a307094d5e15.png\n",
"sig": "b0808a0dbb45a15dff58c0ec65ec15bf98045539978eaaac41a5afe2ab61a1da6071fd4d27a09a5f0f26cb464def2f393c800e06a171d35c2dc45b77c4ae6462"
}