I think apt-cross has broken something
Dear Embedded Debian experts,
I have an ARM cross-compilation environment on this x86 Debian PC,
using the dpkg-cross and/or apt-cross system.
I just tried to install a2ps - not for cross compilation, just the
regular native package - and I get this:
# apt-get -s install a2ps/stable
Reading package lists... Done
Building dependency tree... Done
Selected version 1:4.13b.dfsg.1-1 (Debian:4.0r0/stable, Debian:testing)
for a2ps
You might want to run â??apt-get -f installâ?? to correct these:
The following packages have unmet dependencies.
libc6-dev-arm-cross: Depends: libc6-arm-cross (= 2.3.6.ds1-7) but
2.3.6.ds1-13 is to be installed
E: Unmet dependencies. Try â??apt-get -f installâ?? with no packages (or
specify a solution).
So apt-get is complaining about a problem with my -arm-cross packages,
and is refusing to install the native a2ps because of it.
There are two issues here:
Firstly, how have my -arm-cross packages become broken, what can be
done to fix it, and what can be done to stop it from happening again?
Secondly, why is the brokenness in the -arm-cross world preventing me
from making unrelated changes to my native x86 system?
Considering the second point: I expect my native apt and dpkg tools to
be solid and reliable; that's an essential feature of a good
distribution and most of the time the Debian system does well in this
respect. On the other hand, I can accept that the dpkg-cross /
apt-cross system has fewer users and is newer, and I can accept that it
might have "rough edges" and the odd bug. But if it does have "rough
edges", then it's important that those problems don't impact on the
main native dpkg / apt system. What do you think? Do you believe that
the -cross tools should be sufficiently solid that they can be
integrated with the native tools? Or would it be better for them to
occupy an independent "parallel universe" in /usr/$ARCH/ where they can
damage themselves but not make the native system unusable?
Returning to the first point, it does look as if I have somehow got
broken dependencies:
# dpkg -l 'libc*arm-cross*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-===================-===================-======================================================
ii libc6-arm-cross 2.3.6.ds1-13 GNU C Library: Shared
libraries (for cross-compiling)
ii libc6-dev-arm-cross 2.3.6.ds1-7 GNU C Library: Development
Libraries and Header Files
Apparently libc6-dev-arm-cross 2.3.6.ds1-7 depends on libc6-arm-cross
(= 2.3.6.ds1-7), yet I have somehow managed to install a newer
version. Exactly how I managed to do that I'm not sure because it must
have been a while ago, but 'history|grep cross' suggests that I did this:
# apt-cross -a arm -S stable --install librecode-dev
Could that have installed a newer version of libc6-arm-cross without
complaining about the conflict with libc6-dev-arm-cross? It doesn't
look as if it depends on a particularly new version of libc.
Anyway, how to fix it? One problem is that apt-cross doesn't have a
"-s" option ('simulate'), so I can't try out commands in the hope that
they will fix the problem; I need to be reasonably sure that I have the
right command before continuing. Hence this email. Any suggestions?
Many thanks in advance for any help.
Regards,
Phil.
p.s. You are welcome to Cc: me in any reply.
Reply to: