[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Package versions in multi-arch



Hi list

I have a package installation problem which leads to a question about
how (and if) package versions interact in different architectures.

My system is an amd64 bookworm system, with multi-arch support and
some packages from i386 installed, to support a vendor-supplied
printer driver and, more relevantly to this problem I think, steam.

For the last week or so package libllvm15:i386 doesn't want to upgrade
and is "kept back" by apt.

$ apt show -a liblllvm15:i386

Shows two possible package versions, 1:15.0.6-3 which is installed and
1:15.0.6-3+b1 which is a candidate to install. This situation pertains
only to the i386 version, the amd64 version is at 1:15.0.6-3 and
doesn't seem to have a newer version. This agrees with what I see on
packages.debian.org.

Looking at the dependencies of the two versions of the i386 package,
the only difference I can see is that the new version depends on
libstdc++6 version 2.12.0.10 or newer, while the older, installed
version depends on 2.12.0.09 or newer. However I have 2.12.0.13
installed so that should satisfy either version's dependency.

I also checked dependencies _on_ libllvm15:i386:

$ apt rdepends libllvm15:i386 | awk '/^ Depends/ {print $2}' | awk -F:
'{print $1}' > depends.txt
$ apt list --installed | grep i386 | grep -f depends.txt

This shows me 4 i386 packages are both installed and depend on
libllvm15:i386, looking at "apt show" of all 4 shows that they all
depend simply on the presence of the package and make no demands about
what version of the package is present.

The last thing I could think of was a Conflicts dependency:

$ apt list --installed | grep i386 | awk -F/ '{print $1}' | xargs apt
show -a | grep ^Conflicts: | grep libllvm15

returns nothing, indicating that none of the installed i386 packages
conflict with any version of libllvm15.

In desperation I dragged aptitude out of retirement and did aptitude
full-upgrade, and got a little bit more information. Aptitude wanted
to uninstall the amd64 version of libllvm15 and then upgrade
liblvm15:i386. I didn't let it because that would have broken the
packages that depend on the amd64 version of the package.

Am I reading this right that if two architectures of the same package
are installed on the same system with multi-arch support, they have to
be the same version? If that is true, the solution is just to wait for
the new version of the package to be added in amd64. But... really?

Thanks

Mark


Reply to: