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-core
are 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 (https://packages.ubuntu.com/focal/all/gnome-user-docs/filelist). 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.page
Also 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/C
and 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-docs
My 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 wbritish
Currently 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-xml
Note: 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
230
However, 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 OK
Whereas on a system without this problem:
$ debsums gnome-user-docs | wc -l
465
and 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.
The culprit is the
localepurge
packageAfter 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 theC
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:The missing files came back.
In the man page a script called
/usr/share/doc/localepurge/reinstall_debs.sh
is mentioned, which effectively is this:I ran that command also.