On 30.03.2013 03:51, Daniel Hartwig wrote:
On 30 March 2013 06:33, Mikko Rasa<t...@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
--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org