linux-mintdpkgcpack

dpkg: why does instdir need admindir parameter on Mint 21


We create a Debian package of our application using CPack which can be installed on Linux Mint 19 like this:

$ sudo dpkg -i --instdir=/opt myapp.deb

With Linux Mint 21 the (installed) dependencies are not resolved:

dpkg: dependency problems prevent configuration of myapp:
myapp depends on libsqlite3-0 however:
Package libsqlite3-0 is not installed.
...

After reading the dpkg man page I set the admindir parameter and the installation succeeds:

$ sudo dpkg -i --instdir=/opt --admindir=/var/lib/dpkg/ myapp.deb

If I do not set admindir to /var/lib/dpkg/ then the right environment is not found. Why is that? And why did it work without admindir on Mint 19? Using parameter root does not help because it expects the administrative directory to be a subdirectory of the instdir.


Solution

  • This is a bug, which seems I introduced in dpkg 1.21.0. I'll be preparing a fix and regression tests for dpkg 1.21.10 which should hit Debian unstable in few days I guess. For Mint, which seems to be based on Ubuntu, you'd need to request the Ubuntu people to consider including that fix once it's in Debian unstable, and then the Mint people to do the same. Otherwise you can specify both options as a workaround for now. :/

    Please feel free to report this kind of problems upstream in the bug tracking system next time, I just happened to see this by accident today. :)