diff --git a/pills/01-why-you-should-give-it-try.xml b/pills/01-why-you-should-give-it-try.xml index 0e9e91c..c0da93b 100644 --- a/pills/01-why-you-should-give-it-try.xml +++ b/pills/01-why-you-should-give-it-try.xml @@ -33,7 +33,6 @@ The Nix, Nixpkgs, and NixOS manuals; - articles; and wiki are excellent resources for explaining how Nix/NixOS works, how you can use it, and the number of cool things being done with it. However, at the beginning you may feel that some of the magic @@ -60,7 +59,7 @@ xlink:href="http://www.rpm.org/">rpm, ...) mutate the global state of the system. If a package foo-1.0 installs a program to - /usr/bin/foo, you cannot install + /usr/bin/foo, you cannot install foo-1.1 as well, unless you change the installation paths or the binary name. But changing the binary names means breaking users of @@ -126,25 +125,25 @@ Nix makes no assumptions about the global state of the system. This has many advantages, but also some drawbacks of course. The core of a Nix system is the Nix store, usually - installed under /nix/store, and some tools to manipulate the + installed under /nix/store, and some tools to manipulate the store. In Nix there is the notion of a derivation rather than a package. The difference can be subtle at the beginning, so I will often use the words interchangeably. Derivations/packages are stored in the Nix store as follows: - /nix/store/hash-name, + /nix/store/hash-name, where the hash uniquely identifies the derivation (this isn't quite true, it's a little more complex), and the name is the name of the derivation. Let's take a bash derivation as an example: - /nix/store/s4zia7hhqkin1di0f187b79sa2srhv6k-bash-4.2-p45/. - This picks out a directory that contains bin/bash. + /nix/store/s4zia7hhqkin1di0f187b79sa2srhv6k-bash-4.2-p45/. + This is a directory in the Nix store which contains bin/bash. - What that means is that there's no /bin/bash, there's only that + What that means is that there's no /bin/bash, there's only that self-contained build output in the store. The same goes for coreutils and everything else. To make them convenient to use from the shell, Nix will arrange for binaries to appear in @@ -197,7 +196,7 @@ When upgrading a library, most package managers replace it in-place. All new applications run afterwards with the new library without being recompiled. After all, they all refer dynamically - to libc6.so. + to libc6.so. Since Nix derivations are immutable, upgrading a library like glibc