/usr/bin/locale-check is missing from bionic LTS versions

Bug #1837300 reported by Tony Lykke
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
base-files (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

After downgrading from 19.04 to 18.04 (which involved a bunch of `apt remove --purge` and manual dependency conflict resolution) I had the following error on logging into my machine:

```
bash: /usr/bin/locale-check: No such file or directory
```

On investigation, it seems that this file is supposed to be provided by `base-files`, but it is not present in the two current LTS versions (10.1ubuntu2 and 10.2ubuntu2.2).

```
tl@hotbox:~$ apt download base-files=10.1ubuntu2
Get:1 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 base-files amd64 10.1ubuntu2 [58.2 kB]
Fetched 58.2 kB in 0s (1,000 kB/s)
tl@hotbox:~$ apt download base-files=10.1ubuntu2.2
Get:1 http://security.ubuntu.com/ubuntu bionic-security/main amd64 base-files amd64 10.1ubuntu2.2 [58.2 kB]
Fetched 58.2 kB in 0s (189 kB/s)
tl@hotbox:~$ dpkg -c base-files_10.1ubuntu2_amd64.deb | rg "/usr/bin"
drwxr-xr-x root/root 0 2018-04-24 04:34 ./usr/bin/
tl@hotbox:~$ dpkg -c base-files_10.1ubuntu2.2_amd64.deb | rg "/usr/bin"
drwxr-xr-x root/root 0 2018-08-20 09:44 ./usr/bin/
```

It is present in `bionic-updates` which is currently `10.1ubuntu2.5`, however.

The reason I think this happened to this system in particular is that as part of the dist-downgrade process I added the following to `/etc/apt/preferences`:

```
Package: *
Pin: release a=bionic
Pin-Priority: 1001
```

This appears to have prevented me from getting `bionic-updates`. Removing this file allows apt to install `base-files` from `bionic-updates` and resolved the issue for me.

Revision history for this message
Steve Langasek (vorlon) wrote :

Downgrading is not supported.

Downgrading with the result that files / bugfixes present in the -updates pocket are not installed because you only installed from the release pocket is not a bug in Ubuntu. Any changes we make to a stable release after GA land only in the -updates pocket, never in the release pocket. So there is nothing we would change here to make this problem go away.

The reason you saw the error is that /etc/profile.d/01-locale-fix.sh and /usr/bin/locale-check were both introduced to bionic after release, so are only in bionic-updates. However, /usr/bin/locale-check is a regular packaged file, and /etc/profile.d/01-locale-fix.sh is a conffile; which means that on downgrade, /usr/bin/locale-check is removed because it's not part of the older package, but /etc/profile.d/01-locale-fix.sh is not removed because conffiles are only removed with additional handling via the maintainer scripts, and there is no handling that would remove this conffile as part of a downgrade.

Almost no conffiles are correctly removed on downgrade to a version of the package earlier than the version which introduced the conffile.

This is why downgrades are not supported.

Changed in base-files (Ubuntu):
status: New → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.