I have been using fish
on Manjaro KDE for a while and only recently did I notice that man fish
does not show the manpage for fish
. Instead it just returns
/t/stuff> man fish
No manual entry for fish
Additionally, trying to get help for fish
functions does not work either:
/t/stuff> functions --help
fish: Missing man page for 'functions'. Did you install the documentation?
This is not something specific to my system though: it happens even on a freshly downloaded ISO from manjaro.org
(KDE Plasma 21.0.5).
Looking at the paths under /usr/share/fish/man/
, I can see that the manpages do exist so this has to be an issue with how manpages are discovered. Does anybody know if this is intended behaviour and if so, what’s the right way to go about fixing this?
Some applications inherited from Arch does not install man pages or documentation. Sometimes it is provided in an additional package - but it not a rule.
Also there is an indexer for man-pages - maybe it still need rebuilding?
sudo mandb
The fish package installs man pages in /usr/share/man/man1/fish/
These should be indexed as they are in the PATHs mentioned in /etc/man_db.conf
It also has got the man pages @hasref speaks about
in /usr/share/fish/man/man1
I don’t know what these are for or why they are kept in a separate location
but these are probably not indexed with the default configuration in/etc/man_db.conf
Thank you for taking the time to reply!
I tried rebuilding the man database using mandb
but that does seem to help.
I guess you’d need to edit /etc/man_db.conf
to include this somewhat unusual location
/usr/share/fish/man/
Interestingly enough, on both my current installation of Manjaro KDE and on a virtual machine booted with a fresh ISO from manjaro.org
(KDE plasma 21.0.5), after installing fish
, there are no fish manpages under /usr/share/man/man1/fish/
. The directory does not exist:
manjaro@manjaro ~> ls /usr/share/man/man1/ | grep fish
manjaro@manjaro ~ [0|1]> cd /usr/share/man/man1/fish/
cd: The directory "/usr/share/man/man1/fish/" does not exist
In fact, the only directories under /usr/share/
which are named “fish” are the following:
manjaro@manjaro /u/share> find ./ -type d -name 'fish'
./doc/fish
./doc/HTML/ca/kioslave5/fish
./doc/HTML/de/kioslave5/fish
./doc/HTML/en/kioslave5/fish
./doc/HTML/es/kioslave5/fish
./doc/HTML/et/kioslave5/fish
./doc/HTML/fr/kioslave5/fish
./doc/HTML/gl/kioslave5/fish
./doc/HTML/it/kioslave5/fish
./doc/HTML/nl/kioslave5/fish
./doc/HTML/pt/kioslave5/fish
./doc/HTML/pt_BR/kioslave5/fish
./doc/HTML/ru/kioslave5/fish
./doc/HTML/sr/kioslave5/fish
./doc/HTML/sv/kioslave5/fish
./doc/HTML/uk/kioslave5/fish
./fish
find: './polkit-1/rules.d': Permission denied
I don’t have fish installed - I just looked inside the package and this is what I saw.
I don’t know why the contents of the package would not be all installed - or selectively.
To test this I just installed it:
ls /usr/share/man/man1/ | grep fish
fish.1.gz
fish_indent.1.gz
fish_key_reader.1.gz
that’s the result
Oh, ok.
Never mind.
… the little differences - once again
I run Arch.
When I tested in in my Manjaro VM
the man pages are indeed not there.
Sorry!
I’d have thought that this package was the same as in Arch.
Apparently not.
Note to self:
do not assume anything if knowing is easily possible
No worries.
Funnily enough that’s exactly why I posted this: man fish
works perfectly on my other system running Arch too and I see the same files as you do under /usr/share/man/man1
but for some reason this seems to be broken on Manjaro.
I have tried setting MANDATORY_MANPATH /usr/share/fish/man
in /etc/man_db.conf
(and ~/.manpath
) and updating the database using sudo mandb
but this does not help either. manpath -d
does confirm that the Mandatory mandir is being set but man fish
still returns nothing. Of course, reading the pages directly man /usr/share/fish/man/man1/1/fish.1
does work but that’s a little inconvenient.