yelp cannot find GNOME help files
tl;dr
The summary of all the following is roughly this:
- Remove or move the directory
/usr/share/help/C/gnome-help. - Run the command
sudo apt reinstall gnome-user-docs gnome-getting-started-docs ubuntu-docs. - The missing directory and its contents must come back.
This works OK in one of my 20.04 system, but not on another 20.04 system. Both systems are up-to-date.
I want to find out what makes this difference.
After upgrading from 19.10 to 20.04 the GNOME Help application (yelp) cannot find GNOME help files. For example, when I am in the GNOME Files application (nautilus) and press F1 I get the following error message in the yelp window:
Document Not Found
The URI ‘help:gnome-help/files’ does not point to a valid page.The same thing occurs in other GNOME applications, like gedit, gnome-calculator etc.
yelp can display the man pages OK. The problem is only with the "help" pages. Is there any package that needs to be installed?
I tried to install package gnome-user-guide, but it didn't help. Packages:
gnome-getting-started-docs
gnome-user-docs
ubuntu-docs
xorg-docs-coreare already installed and up-to-date.
It seems* that the files needed are the ones under /usr/share/help/C/gnome-help/ and the package gnome-user-docs is the one that provides these (). However, even removing, purging and re-installing this package does not bring these files to my system.
*Note: dpkg -S /usr/share/help/C/gnome-help/files.page output is this:
gnome-user-docs: /usr/share/help/C/gnome-help/files.pageAlso ls -lisad /usr/share/help/ /usr/share/help/C output is:
8651957 4 drwxr-xr-x 59 root root 4096 May 14 19:55 /usr/share/help/
8651631 4 drwxr-xr-x 31 root root 4096 May 17 17:39 /usr/share/help/Cand permissions and ownership of the files within these directories is -rw-r--r-- root root.
Similarly, other GNOME packages (for example, gnome-calculator) when (re)installed, they do not populate the relevant directory under /usr/share/help/C/.
I tested by copying /usr/share/help/C/gnome-help/ directory and its contents from another system and then reinstalling the gnome-user-docs package. The re-installation deleted the necessary files which I just copied there! Before doing the re-installation, but after copying these files manually, yelp was able to display its home screen and the relevant help screens OK. After the re-installation, the above mentioned problem occurs.
I have tried with various locales with the installation of gnome-user-docs package. Every time the same thing occurs. The files that I copied manually under /usr/share/help/C/ are being deleted:
# LANG=en_US.UTF-8 apt --reinstall install gnome-user-docs
# LANG=en_GB.UTF-8 apt --reinstall install gnome-user-docs
# LANG=C.UTF-8 apt --reinstall install gnome-user-docsMy locale output is this:
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC=en_GB.UTF-8
LC_TIME=en_GB.UTF-8
LC_COLLATE="C.UTF-8"
LC_MONETARY=en_GB.UTF-8
LC_MESSAGES="C.UTF-8"
LC_PAPER=en_GB.UTF-8
LC_NAME=en_GB.UTF-8
LC_ADDRESS=en_GB.UTF-8
LC_TELEPHONE=en_GB.UTF-8
LC_MEASUREMENT=en_GB.UTF-8
LC_IDENTIFICATION=en_GB.UTF-8
LC_ALL=(Note that I tested with LANG=en_US.UTF-8 also; result was the same.)
The output of check-language-support --show-installed is:
firefox-locale-en gimp-help-en hunspell-en-au hunspell-en-ca hunspell-en-gb hunspell-en-us hunspell-en-za hyphen-en-ca hyphen-en-gb hyphen-en-us language-pack-en language-pack-gnome-en libreoffice-help-en-gb libreoffice-help-en-us libreoffice-l10n-en-gb libreoffice-l10n-en-za mythes-en-au mythes-en-us poppler-data thunderbird-locale-en thunderbird-locale-en-gb thunderbird-locale-en-us wamerican wbritishCurrently installed packages:
# apt --installed list | grep -i "docs"
gnome-getting-started-docs/focal,focal,now 3.36.1-0ubuntu1 all [installed]
gnome-user-docs/focal,focal,now 3.36.1-0ubuntu1 all [installed]
ubuntu-docs/focal,focal,now 20.04.2 all [installed]
xorg-docs-core/focal,focal,now 1:1.7.1-1.1 all [installed,automatic]More Information
(1)
The output of sudo apt-cache depends yelp is like this:
yelp Depends: libc6 Depends: libglib2.0-0 Depends: libgtk-3-0 Depends: libwebkit2gtk-4.0-37 Depends: libyelp0 |Depends: dconf-gsettings-backend Depends: <gsettings-backend> dconf-gsettings-backend Depends: python3-distro Depends: yelp-xsl Depends: man-db man-db:i386 Recommends: docbook-xmlNote: This is the same output as on another system which does not have this problem.
(2)
The checksums for the yelp package are OK:
$ debsums yelp | wc -l
230
$ debsums yelp | grep 'OK$' | wc -l
230
$ debsums -a yelp | grep 'OK$' | wc -l
230However, the checksums for the gnome-user-docs package show inconsistent results. On the system with this problem:
$ debsums gnome-user-docs | wc -l
4
$ debsums gnome-user-docs | grep 'OK$' | wc -l
4
$ debsums -a gnome-user-docs | grep 'OK$' | wc -l
4
$ debsums gnome-user-docs
/usr/share/doc/gnome-user-docs/NEWS.gz OK
/usr/share/doc/gnome-user-docs/README OK
/usr/share/doc/gnome-user-docs/changelog.Debian.gz OK
/usr/share/doc/gnome-user-docs/copyright OKWhereas on a system without this problem:
$ debsums gnome-user-docs | wc -l
465and the difference is in the /usr/share/help/C/gnome-help/ and /usr/share/help/C/system-admin-guide/ files: The files I am talking about throughout this post.
1 Answer
The culprit is the localepurge package
After doing some further investigation, I found out that on my problematic system a package called localepurge was installed, while on the non-problematic system that package was not installed.
For more information you can look at the man page of localepurge
There was a file /etc/locale.nopurge that did not include the C locale, to exclude it from purging files created under it.
Anyway, I did not remember installing localepurge package, so I removed it. And then I re-ran:
# apt reinstall gnome-user-docs gnome-getting-started-docs ubuntu-docs xorg-docs-coreThe missing files came back.
In the man page a script called /usr/share/doc/localepurge/reinstall_debs.sh is mentioned, which effectively is this:
apt-get -u --reinstall --fix-missing install $(dpkg -S LC_MESSAGES | cut -d: -f1 | tr ', ' '\n' | sort -u)I ran that command also.
2