Skip to content
Snippets Groups Projects
  • Eelco Dolstra's avatar
    cf0287c0
    * Upgrade operation in `nix-env'. For instance, you can say · cf0287c0
    Eelco Dolstra authored
        nix-env -u foo.nix strategoxt
    
      to replace the installed `strategoxt' derivation with the one from `foo.nix', if 
      the latter has a higher version number.  This is a no-op if `strategoxt' is not 
      installed.  Wildcards are also accepted, so
    
        nix-env -u foo.nix '*'
    
      will replace any installed derivation with newer versions from `foo.nix', if 
      available.
    
      The notion of "version number" is somewhat ad hoc, but should be useful in most 
      cases, as evidenced by the following unit tests for the version comparator:
    
        TEST("1.0", "2.3", -1);
        TEST("2.1", "2.3", -1);
        TEST("2.3", "2.3", 0);
        TEST("2.5", "2.3", 1);
        TEST("3.1", "2.3", 1);
        TEST("2.3.1", "2.3", 1);
        TEST("2.3.1", "2.3a", 1);
        TEST("2.3pre1", "2.3", -1);
        TEST("2.3pre3", "2.3pre12", -1);
        TEST("2.3a", "2.3c", -1);
        TEST("2.3pre1", "2.3c", -1);
        TEST("2.3pre1", "2.3q", -1);
    
      (-1 = less, 0 = equal, 1 = greater)
    
    * A new verbosity level `lvlInfo', between `lvlError' and `lvlTalkative'.  This is 
      the default for `nix-env', so without any `-v' flags users should get useful 
      output, e.g.,
    
    $ nix-env -u foo.nix strategoxt
    upgrading `strategoxt-0.9.2' to `strategoxt-0.9.3'
    
    cf0287c0
    History
    * Upgrade operation in `nix-env'. For instance, you can say
    Eelco Dolstra authored
        nix-env -u foo.nix strategoxt
    
      to replace the installed `strategoxt' derivation with the one from `foo.nix', if 
      the latter has a higher version number.  This is a no-op if `strategoxt' is not 
      installed.  Wildcards are also accepted, so
    
        nix-env -u foo.nix '*'
    
      will replace any installed derivation with newer versions from `foo.nix', if 
      available.
    
      The notion of "version number" is somewhat ad hoc, but should be useful in most 
      cases, as evidenced by the following unit tests for the version comparator:
    
        TEST("1.0", "2.3", -1);
        TEST("2.1", "2.3", -1);
        TEST("2.3", "2.3", 0);
        TEST("2.5", "2.3", 1);
        TEST("3.1", "2.3", 1);
        TEST("2.3.1", "2.3", 1);
        TEST("2.3.1", "2.3a", 1);
        TEST("2.3pre1", "2.3", -1);
        TEST("2.3pre3", "2.3pre12", -1);
        TEST("2.3a", "2.3c", -1);
        TEST("2.3pre1", "2.3c", -1);
        TEST("2.3pre1", "2.3q", -1);
    
      (-1 = less, 0 = equal, 1 = greater)
    
    * A new verbosity level `lvlInfo', between `lvlError' and `lvlTalkative'.  This is 
      the default for `nix-env', so without any `-v' flags users should get useful 
      output, e.g.,
    
    $ nix-env -u foo.nix strategoxt
    upgrading `strategoxt-0.9.2' to `strategoxt-0.9.3'