Apropos: Difference between revisions

imported>Hhm
Created page with "As of NixOS 18.09, <code>apropos</code> (and likely also <code>whatis</code>) does not find anything when run. This is because the Apropos database is not generated automatica..."
 
QuBe (talk | contribs)
Add home-manager section
Tags: Mobile edit Mobile web edit
 
(7 intermediate revisions by 6 users not shown)
Line 1: Line 1:
As of NixOS 18.09, <code>apropos</code> (and likely also <code>whatis</code>) does not find anything when run. This is because the Apropos database is not generated automatically.
By default as of NixOS 21.05, <code>apropos</code>, <code>whatis</code> and <code>man -k</code> do not find anything when run, because the man page index cache is not generated.  


To generate it manually (and again to update it when new software is installed), run:
To build the cache automatically, you can set this in your system configuration:
<syntaxhighlight lang=bash>
<syntaxhighlight lang="nix">
su -l root -c mandb
{
  documentation.man.cache.enable = true;
}
</syntaxhighlight>
</syntaxhighlight>
Or in older versions:
<syntaxhighlight lang="nix">
{
  documentation.man.generateCaches = true;
}
</syntaxhighlight>
This will create an immutable cache in sync with <code>environment.systemPackages</code>. Since it is immutable, the <code>mandb</code> command (see below) will fail.


If you are using home-manager, the above will not populate the cache with the programs installed that way, instead add this to your <code>home.nix</code>:
<syntaxhighlight lang="nix">
{
  programs.man.generateCaches = true;
}
</syntaxhighlight>
Some programs might set one of these options to true by default, in that case you might still need to set the other to true manually. An example of such a program is [[fish]], which uses it to automatically create completions (see [fish_update_completions](https://fishshell.com/docs/current/cmds/fish_update_completions.html)).
To generate it manually, run:
<syntaxhighlight lang="console">
$ sudo mkdir -p /var/cache/man/nixos
$ sudo mandb
</syntaxhighlight>
This will need to be re-run to update the cache when new software is installed.


For more information, see:
[[Category:Configuration]]
* {{issue|14472}}
* {{pull|18521}}