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

Bug#704230: apt considers packages with Architecture: all as being of the native architecture



On 30.03.2013 03:51, Daniel Hartwig wrote:
On 30 March 2013 06:33, Mikko Rasa<tdb@tdb.fi>  wrote:
Package: apt
Version: 0.9.7.8
Severity: normal

Some background: I'm migrating my home server to new hardware and considering
changing the OS to 64-bit as well.  Since apt now supports multiarch, I thought
I'd do this by installing a 64-bit kernel first and then updating userspace bit
by bit as necessary and as time permits.  Unfortunately, reality turned out to
be much more complicated.


Hello

Cross-grading an entire system is not a documented or supported
procedure.  You could possibly still proceed as you intended, if you
are adventurous.  It will take some encouraging of dpkg (lots of
‘--force-FOO’) and you will not receive support for the procedure
here.

I am aware of the unsupported nature of this operation. It used to be even harder, but multiarch makes it reasonably easy since programs are much less likely to break due to mismatched libraries. Half the reason I'm doing this is to explore the limits of what's possible, and because it's an interesting technical challenge.

Probably simpler to install a fresh amd64 system.

The other half of the reason is that I'm too lazy to dig up all the customizations I've done over the seven years since this system was installed and migrate them to the new system. However, I might be grossly overestimating the amount of effort required, and a fresh install would probably also result in a somewhat cleaner /etc.

If a package with Architecture: all depends on a package with a specific
architecture, then that dependency can't be fulfilled by a foreign package.

<https://wiki.ubuntu.com/MultiarchSpec#Dependencies_involving_Architecture:_all_packages>

As above, this is by design.  The developers are aware of the
highlighted dependency handling and the desire to perhaps move away
from it eventually.  I am therefore prone to closing this as
not-a-bug, the difficultly in cross-grading a system is neither apts
or dpkgs fault, they handle the situation correctly.

Perhaps it could be implemented as a configuration option to begin with, and change the default later?

...

Several hours of furious coding and testing later:

I managed to put together a Python script which changes the architecture of an installed Debian system from i386 to amd64. I didn't even need to use any --force; processing packages in correct order by dependencies is enough, since dpkg does less dependency checks than apt. It's not perfect, but it left me with only about two dozen broken packages to be fixed by hand, as opposed to the several hundreds I encountered when trying to do this manually.

--
Mikko


Reply to: