On Sat, Oct 15, 2022 at 10:15:02AM -0400, Stefan Seefeld wrote:Is there a way to debug this, i.e. have `apt-get` produce more verbose output that indicates *why* the prerequisite package is not going to be installed ?Sure! Run apt with these options: -oDebug::pkgProblemResolver=true -oDebug::pkgDepCache::Marker=1 -oDebug::pkgDepCache::AutoInstall=1Those are btw mentioned and explained by our README.sudo apt-get update && sudo apt-get install -oDebug::pkgProblemResolver=true -oDebug::pkgDepCache::Marker=1 -oDebug::pkgDepCache::AutoInstall=1 ./workspace/tnav-service-tools_0.0.0_amd64.debIncludes the line: | tnav-service-tools:amd64 Depends on think-navigation:amd64 < none | 1.0.6 @un uH > (= 1.0.5) can't be satisfied! which is your main problem. The resolver stops after concluding this leaving all other dependencies unsatisfied, too (it does so that the code can fallback to other alternative and such. Of course, here are none, so the only thing it does is provide a red herring). The "< none | 1.0.6 >" says that it is not installed and has no candidate for installation – the newest version apt knows about is given as 1.0.6, but that is not considered a candidate. If it were a candidate this would look like for think-ctk later: "none -> 1.0.3". So, "apt policy think-navigation" instead of Y (aka think-ctk ?) should give you an idea from where 1.0.6 comes, why its not an install candidate (= too low pin or somesuch) and even more importantly if 1.0.5 is known to apt and why that isn't the installation candidate.
This is the output of `apt policy think-navigation`:
```
think-navigation:
Installed: (none)
Candidate: 1.0.6
Version table:
1.0.6 500
500
https://artifacts.thinksurgical.com/artifactory/debian-stable
focal/main amd64 Packages
1.0.5 500
500
https://artifacts.thinksurgical.com/artifactory/debian-stable
focal/main amd64 Packages
1.0.4 500
500
https://artifacts.thinksurgical.com/artifactory/debian-stable
focal/main amd64 Packages
1.0.3 500
500
https://artifacts.thinksurgical.com/artifactory/debian-stable
focal/main amd64 Packages
1.0.2 500
500
https://artifacts.thinksurgical.com/artifactory/debian-stable
focal/main amd64 Packages
```
which tells me that there are five different versions available,
but only the latest is considered a "candidate". What is the exact
meaning of "candidate" ?
Note that like in the case you showed with Y, apt might know about other versions provided by the same Packages file, but chooses one as the candidate and sticks to it. Without manually intervention that is the highest numbered one.
Thanks for the explications !
I think I'm still missing or misunderstanding something very fundamental here. To go back to the more schematic names and versions:
My repo provides versions 1, 2, and 3 of a package "Y". I want to
install a package "X", which depends on version 2 of package "Y".
Yet, when I try to install it, apt-get refuses as version 2 is not
considered a "candidate". Is this description accurate ? Why is
that ? If "X" lists "y=2" as explicit dependency, why is that
version 2 not considered a "candidate" ?
Thanks,
-- ...ich hab' noch einen Koffer in Berlin...
null