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

Re: Hybrid armhf/arm64 system



+++ Phil Endecott [2016-05-14 00:42 +0100]:
> Dear Experts,
> 
> In my ODROID-C2 thread, I mentioned that I was going to try to
> set the system up to use arm64 by default but to support armhf
> for those packages that are missing or buggy on arm64.  I've not
> been very successful with this so far.
> 
> Based on some suggestions on the ODROID forum, I have installed
> an arm64 base system - which works well.  I have then:
> 
> # dpkg --add-architecture armhf
> # apt-get update
> # apt-get install libc6:armhf
> 
> Now I try to install abiword, which doesn't exist for arm64 (at least
> it doesn't in jessie):

Yes. Abiword was not built for arm64 in jessie due to some missing
dependency - I forget which.
 
> # apt-get install abiword:armhf

> Some packages could not be installed. > 

So, what I expect you have is a 'something is not multiarched'
issue. But it can be tricky to work out what.

> Hmmm.  I experiment by trying to install the first dependency, libabiword-3.0:armhf;

It is generally best to start at the bottom of the list of 'X won't be
installed' and keep following whatever is listed last. This will
usually get you to the actual package at issue, but sometimes it's
just complicated and not obvious.

Using aptitude (in curses mode) i.e just 'aptitude' is often
informative when trying to work out what on earth is up.

> I get a similar message with a further list of dependencies.  I try
> installing its
> first dependency, and so on:
> 
> libchamplain-0.12-0:armhf
> libclutter-1.0-0:armhf
> libgtk-3-0:armhf
> librest-0.7-0:armhf
> libsoup-gnome2.4-1:armhf
> libsoup2.4-1:armhf
> glib-networking:armhf
> libproxy1:armhf
> 
> Finally libproxy1:armhf doesn't give an error, but luckily I used -s because
> it wanted to remove half of the system:

Right. It's quicker starting at the bottom of the list. 
 
> 
> I get similar results with other packages.
> 
> Hopefully, I've missed some simple step needed to make this work.

No, what are doing is the right thing and 'should' work, but does not
necessarily work for any random package as all the package's
dependencies have to be 'multiarch-installable' for things to work. 

> Or possibly, this is all stuff that has been fixed post jessie.

It is certainly likely to be better. A load more stuff has been fixed
(and of course you can just install abiword:arm64 so the issue may not
arise)

> Any suggestions would be much appreciated.

There are a couple above (Use testing, try aptitude).

What I don't understand is what the actual problem is. 

libproxy1 is multiarch:same and exists in matching versions between
arches, and so is libstdc++6, so they should install without wanting to
remove most of your system. There is clearly a conflict there somewhere.

Try them individually to see which one is doing this.

One possibility is version-skew due to binNMUs. If something is
rebuilt on one arch but not another, dpkg considers them not
multiarch-equivalent. This is annoying and there was quite a lot of it
in jessie (depsite my efforts to sync rebuilds across arches so at
least the core didn't have this problem). I think this is fixed in
Stretch.

Aha. yes this is it:
$ apt-cache show libproxy1:arm64
Package: libproxy1
Source: libproxy (0.4.11-4)
Version: 0.4.11-4+b3

$ apt-cache show libproxy1:armhf
Package: libproxy1
Source: libproxy (0.4.11-4)
Version: 0.4.11-4+b2

The versions don't match. So they are not co-installable (even though
they almost certainly are really). This sucks (I did a load of
rebuilds to minimise this issue before jessie was released but got
told off by release managers after a while so had to stop). If you
rebuild your libproxy for arm64 locally to have +b2 instead of +b3 and
install that, maybe everything will work. Using a backported newer
dpkg may also meanthe problem goes away (I forget if this fix has gone
in or not).

Wookey
-- 
Principal hats:  Linaro, Debian, Wookware, ARM
http://wookware.org/

Attachment: signature.asc
Description: Digital signature


Reply to: