mirror of
https://codeberg.org/mhwombat/nix-book.git
synced 2026-01-09 23:32:37 +08:00
temp
This commit is contained in:
parent
fd43fd4f00
commit
da54eaeb3f
2 changed files with 17 additions and 20 deletions
33
index.html
33
index.html
|
|
@ -5424,10 +5424,10 @@ hello-nix
|
|||
flake-utils<span class="tok-o">.</span>lib<span class="tok-o">.</span>eachDefaultSystem <span class="tok-p">(</span>system<span class="tok-p">:</span>
|
||||
<span class="tok-k">let</span>
|
||||
<span class="tok-ss">pkgs</span> <span class="tok-o">=</span> <span class="tok-nb">import</span> nixpkgs <span class="tok-p">{</span> <span class="tok-k">inherit</span> system<span class="tok-p">;</span> <span class="tok-p">};</span>
|
||||
<span class="tok-ss">helloNix</span> <span class="tok-o">=</span> <span class="tok-nb">import</span> hello-nix <span class="tok-p">{</span> <span class="tok-k">inherit</span> pkgs<span class="tok-p">;</span> <span class="tok-p">};</span>
|
||||
<span class="tok-k">in</span>
|
||||
<span class="hll"> <span class="tok-p">{</span>
|
||||
</span> <span class="tok-ss">packages</span> <span class="tok-o">=</span> <span class="tok-k">rec</span> <span class="tok-p">{</span>
|
||||
<span class="hll"> <span class="tok-ss">helloNix</span> <span class="tok-o">=</span> <span class="tok-nb">import</span> hello-nix <span class="tok-p">{</span> <span class="tok-k">inherit</span> pkgs<span class="tok-p">;</span> <span class="tok-p">};</span>
|
||||
</span> <span class="tok-k">in</span>
|
||||
<span class="tok-p">{</span>
|
||||
<span class="tok-ss">packages</span> <span class="tok-o">=</span> <span class="tok-k">rec</span> <span class="tok-p">{</span>
|
||||
<span class="tok-ss">hello</span> <span class="tok-o">=</span> pkgs<span class="tok-o">.</span>stdenv<span class="tok-o">.</span>mkDerivation <span class="tok-k">rec</span> <span class="tok-p">{</span>
|
||||
<span class="tok-ss">name</span> <span class="tok-o">=</span> <span class="tok-s2">"hello-again"</span><span class="tok-p">;</span>
|
||||
|
||||
|
|
@ -5443,16 +5443,16 @@ hello-nix
|
|||
<span class="tok-s tok-s-Multiline"> cp $src/hello-again $out/bin</span>
|
||||
<span class="tok-s tok-s-Multiline"> chmod +x $out/bin/hello-again</span>
|
||||
|
||||
<span class="tok-s tok-s-Multiline"> # modify the hello-again script so it can find hello-nix</span>
|
||||
<span class="tok-s tok-s-Multiline"> HELLO=$(type -p hello-nix)</span>
|
||||
<span class="hll"><span class="tok-s tok-s-Multiline"> sed "s_hello-nix_"$HELLO"_" --in-place $out/bin/hello-again</span>
|
||||
</span><span class="hll"><span class="tok-s tok-s-Multiline"> ''</span><span class="tok-p">;</span>
|
||||
</span><span class="hll">
|
||||
</span>
|
||||
<span class="tok-ss">buildInputs</span> <span class="tok-o">=</span> <span class="tok-p">[</span> helloNix <span class="tok-p">];</span>
|
||||
<span class="tok-p">};</span>
|
||||
<span class="hll"> <span class="tok-ss">default</span> <span class="tok-o">=</span> hello<span class="tok-p">;</span>
|
||||
</span> <span class="tok-p">};</span>
|
||||
<span class="hll"><span class="tok-s tok-s-Multiline"> # modify the hello-again script so it can find hello-nix</span>
|
||||
</span><span class="hll"><span class="tok-s tok-s-Multiline"> HELLO=$(type -p hello-nix)</span>
|
||||
</span><span class="hll"><span class="tok-s tok-s-Multiline"> sed "s_hello-nix_"$HELLO"_" --in-place $out/bin/hello-again</span>
|
||||
</span><span class="tok-s tok-s-Multiline"> ''</span><span class="tok-p">;</span>
|
||||
|
||||
|
||||
<span class="hll"> <span class="tok-ss">buildInputs</span> <span class="tok-o">=</span> <span class="tok-p">[</span> helloNix <span class="tok-p">];</span>
|
||||
</span> <span class="tok-p">};</span>
|
||||
<span class="tok-ss">default</span> <span class="tok-o">=</span> hello<span class="tok-p">;</span>
|
||||
<span class="tok-p">};</span>
|
||||
|
||||
<span class="tok-ss">apps</span> <span class="tok-o">=</span> <span class="tok-k">rec</span> <span class="tok-p">{</span>
|
||||
<span class="tok-ss">hello</span> <span class="tok-o">=</span> flake-utils<span class="tok-o">.</span>lib<span class="tok-o">.</span>mkApp <span class="tok-p">{</span> <span class="tok-ss">drv</span> <span class="tok-o">=</span> self<span class="tok-o">.</span>packages<span class="tok-o">.</span><span class="tok-si">${</span>system<span class="tok-si">}</span><span class="tok-o">.</span>hello<span class="tok-p">;</span> <span class="tok-p">};</span>
|
||||
|
|
@ -5499,9 +5499,6 @@ In that case, adding the dependency to <code>buildInputs</code> is sufficient.</
|
|||
<div class="literalblock">
|
||||
<div class="content">
|
||||
<pre class="nowrap">$ nix run
|
||||
this derivation will be built:
|
||||
/nix/store/jdh3r0w60rddfk1k0wfp6dcxj9ld0xhi-hello-again.drv
|
||||
building '/nix/store/jdh3r0w60rddfk1k0wfp6dcxj9ld0xhi-hello-again.drv'...
|
||||
I'm a flake, but I'm running a command defined in a non-flake package.
|
||||
Hello from your nix package!</pre>
|
||||
</div>
|
||||
|
|
@ -5567,7 +5564,7 @@ Hello from your flake!</pre>
|
|||
</div>
|
||||
<div id="footer">
|
||||
<div id="footer-text">
|
||||
Last updated 2025-09-15 15:39:36 IST
|
||||
Last updated 2025-09-15 15:40:07 IST
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -30,8 +30,8 @@ $# cat hello-again
|
|||
$# cat flake.nix
|
||||
....
|
||||
|
||||
Lines 5-8 and 17 were explained in <<#devshell-nix-non-flake>>.
|
||||
As expected, we need to add `helloNix` as a build input, which we do in line 36.
|
||||
Lines 5-8 and 15 were explained in <<#devshell-nix-non-flake>>.
|
||||
As expected, we need to add `helloNix` as a build input, which we do in line 40.
|
||||
That does make it available at build and runtime, but it doesn't put it on the path,
|
||||
so our `hello-again` script won't be able to find it.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue