5

I obtained a strange error message inside a chroot:

unknown user 'geoclue' in statoverride file

when running apt-get install or apt-get upgrade. I use schroot to enter this chroot. I found that I had a package called geoclue-2.0 installed in the chroot, and I purged it.

apt-get purge geoclue-2.0

This made the problem go away. What caused this problem? I'm running Debian wheezy on the host machine. The chroot is running Debian jessie (testing).

I asked about this on chat, and this prompted Braiam to post the closely related How to prevent schroot from overridding passwd file and others files already present on the chrooted system?

Faheem Mitha
  • 34,649
  • 32
  • 119
  • 183
  • I am currently running a base wheezy system. I just installed jessie into a chroot in hopes of getting steam installed and working (following https://wiki.debian.org/Steam). That seemed to work OK, but I forgot to install the video drivers. I had already run Steam, but exited back out of the chroot and then went back in as root to try to install the ATI drivers. Now I'm getting the same error as the op when I try to use dpkg (or any of its front-ends). :-/ – bambams Oct 27 '14 at 03:43
  • `dpkg-statoverride --list` shows this `geoclue` user. It appears that such a user doesn't exist in the main system either. The `geoclue-2.0` package is installed though. – bambams Oct 27 '14 at 03:48
  • (re: This was in a chroot) What I did is purge the `geoclue-2.0` package. That seemed to let me run `dpkg` again and I managed to get the video driver package installed... Not sure yet what the consequences are. I reinstalled `geoclue-2.0` after, but I'm not sure it's really needed. Sounds like geolocate AKA location tracking BS for Web sites and the like. Probably is more trouble than it's worth anyway. – bambams Oct 27 '14 at 03:51

1 Answers1

6

In your specific case is because schroot overrides several files, including the /etc/passwd one, which dpkg queries to compare with the statoverride file, it checks that all entries of the statoverride file are in the passwd, and if they are not, issue a warning, which is what is happening. Essentially, it happens whenever you remove a user that a package created.

That is easily fixable if you reconfigure/reinstall the relevant package (in your case it was geoclue, it can be anything else, luckily Debian uses the same username as the name of the project, normally) and it will (re)create the user in the passwd file.

Braiam
  • 35,380
  • 25
  • 108
  • 167