Comma runs software without installing it. [maintainers=@Artturin,@burke,@DavHau]
Comma runs software without installing it. [maintainers=@Artturin,@burke,@DavHau]
Comma runs software without installing it.
Basically it just wraps together nix shell -c and nix-index. You stick a , in front of a command to
run it from whatever location it happens to occupy in nixpkgs without really thinking about it.
comma is in nixpkgs so you can install it just like any other package.
Either add comma to systemPackages in your NixOS configuration (PREFERRED)
environment.systemPackages = with pkgs; [ comma ];
Or install it in your nix environment. (DISCOURAGED)
nix-env -f '<nixpkgs>' -iA comma
Get the required nix-index database from
nix-index-database ad-hoc-download section Remember to keep it up to date
Alternatively you may use programs.nix-index-database.comma.enable in the module from nix-index-database, in that case do not add comma to systemPackages yourself.
, cowsay neato
Comma supports caching both the choices (i.e., once you select a derivation for
a command, it will always return the same derivation) and paths (i.e., once the
path is evaluated by Nix, we will always return the same path until it is GC'd).
You can control those options by using --cache-level flag or COMMA_CACHING
environment variable:
0: completely disables caching1: only cache choices2 (default): also caches pathsCache for path is the default since it makes subsequent usage of a command much faster:
…
However, it also means you may not run the most up-to-date version of a
command, specially if you don't run Nix's garbage collector often. If this is
an issue for you, set COMMA_CACHING=1.
https://github.com/nix-community/nix-index-database
If your nix-index isn't at the default location then you will need to pass the NIX_INDEX_DATABASE variable.
sudo --preserve-env=NIX_INDEX_DATABASE , hello
No open issues yet, or sync has not completed.