[Nix-dev] Missing command suggestions

Nicolas Pierron nicolas.b.pierron at gmail.com
Wed Mar 27 06:01:52 CET 2013


Hi,

On Mon, Mar 25, 2013 at 6:36 AM, Eelco Dolstra
<eelco.dolstra at logicblox.com> wrote:
> NixOS now provides Ubuntu-style missing command suggestions.  I implemented this
> a while ago, but now it's enabled by default as part of the NixOS channel.
>
> So if you try to run a command that isn't installed but is available in the
> NixOS channel, you get a message like:
>
>   $ pdflatex
>   The program ‘pdflatex’ is currently not installed. It is provided by
>   several packages. You can install it by typing one of the following:
>     nix-env -i tetex
>     nix-env -i texlive-core

Awesome !!!  This is realy great to have such suggestion to avoid
searching for packages.

> And if the environment variable $NIX_AUTO_INSTALL is set, the missing command is
> installed and executed automatically:
>
>   $ hello
>   The program ‘hello’ is currently not installed. It is provided by
>   the package ‘hello’, which I will now install for you.
>   installing `hello-2.8'
>   ...
>   Hello, world!

Whoa, this is even better and making Nix a powerful zero-install like
tool, modulo the fact that we cannot provide a path-independent
channel to make useful shareable user-land nix-store.


On Mon, Mar 25, 2013 at 8:25 AM, Marc Weber <marco-oweber at gmx.de> wrote:
>> And if the environment variable $NIX_AUTO_INSTALL is set, the missing command is
>> installed and executed automatically:
>>
>>   $ hello
>>   The program ‘hello’ is currently not installed. It is provided by
>>   the package ‘hello’, which I will now install for you.
>>   installing `hello-2.8'
>
> I'd prefer such message:
>
>   Application hello is provided by package hello.
>   May I install it to your user profile by running nix-env -i hello ?
>
>   As alternative you can install packages system wide by adding them to
>   /etc/nixos/configuration.nix option environment.systemPackages
>
>   [y] to install, ctrl-c to cancel

I agree with this change, and using " I " in a system message is kind
of weird from my point of view.
I think this is good to have a $NIX_AUTO_INSTALL being able to install
any without asking.  But it would be nice to suggest a system
modification.

$ export NIX_AUTO_INSTALL=never

Does not print anything

$ export NIX_AUTO_INSTALL=ask (trusted users)

Application Y is provided by the following packages:

X1
X2

Do you want to install X1 in your user profile? [y/n] n
Do you want to install X2 in your user profile? [y/n] y

$ export NIX_AUTO_INSTALL=always (trusted users, only one package)

Application Y is only provided by package X.
Package X will be installed into your user profile.
Use Control-C to interrupt this installation.


$ export NIX_AUTO_INSTALL=* (untrusted users)

Application Y is provided by the following packages:
Contact you system administrator to install any of the following packages:

X1
X2


-- 
Nicolas Pierron
http://www.linkedin.com/in/nicolasbpierron - http://nbp.name/


More information about the nix-dev mailing list