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

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: