cross-posted from: https://lemmy.today/post/34279957

guix shell sees to it that all of the dependencies (listed in the inputs and native-inputs sections) are available within the shell session it creates by downloading (or building, if necessary) the entire dependency tree.

Should you want/need more isolation from the host system, guix shell has you covered. The --pure flag will clear out most existing environments variables, such as $PATH, so that the resulting environment does not contain pointers to places like /usr. For more Docker-like isolation, the --container flag can be used, which will run the new shell session within a set of Linux namespaces so that the host system is inaccessible.

  • cecilkorik@lemmy.ca
    link
    fedilink
    English
    arrow-up
    0
    ·
    8 days ago

    Guh, someday I am going to have to learn that bracket-based syntax (lisp?) that keeps popping up on particularly interesting projects but I can never be bothered to learn.

    • Ephera@lemmy.ml
      link
      fedilink
      English
      arrow-up
      0
      ·
      8 days ago

      Yeah, the style of syntax originated in LISP. The technical name is S-expressions.

      But yes, the basic syntax rules are extremely simple. It’s rather when you actually want to do something with that syntax that it takes some thinking…

    • frankenswine@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      7 days ago

      it’s as simple as

      (command argument0 argument1 argument2)
      

      meaning arguments 0, 1 and 2 are applied to command. when an expression is evaluated it dissolves into a value according to its context.

      (+ 1 2 3)
      ; evaluates to 6 in a context where + actually means an addition or sum operation
      
      (* 2 (+ 4 3))
      ; evaluates to 14 (i think)
      

      the absolute killer feature is the elimination of idiotic, man-made madness excused with the term “operator precedence”