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

Re: converting from i386 to amd64 without rebuilding

On Fri, 2007-12-14 at 13:14 -0800, Steve Lane wrote:
> On Fri, Dec 14, 2007 at 03:41:31PM -0500, Lennart Sorensen wrote:
> > On Fri, Dec 14, 2007 at 11:49:20AM -0800, Steve Lane wrote:
> > > Greetings.  We've got a 4-core (2 x Core 2 Duo) server that was originally
> > > built as an i386 machine, then converted to the i386 bigmem kernel,
> > > and *then* converted to the amd64 kernel. None of the packages on the
> > > machine, however, are from the amd64 port - they're all i386.
> > > 
> > > Is there some simple and straightforward (or even not-so-simple or
> > > straightforward) way of converting the machine from the i386 port
> > > to the amd64 port without rebuilding it from scratch using the amd64
> > > installer, i.e. to reinstall all the i386-specific packages from the
> > > amd64 repository?
> > 
> > I can't think of any way.  You can create a chroot with debootstrap, but
> > that's essentially just a harder way to run a fresh install.
> > 
> > After all you can't have both the 32 and 64 bit version of libc6
> > installed at once in the same place, so you can't replace it while other
> > packages which depend on it are using the other bitness.
> Yeah - I discovered that the hard way ;)
> That's more or less what I figured.  Guess I'll be rebuilding at some
> point :)

Actually, if you do the chroot approach you could probably do the entire
upgrade more or less in place. Do dpkg --get-selections on the i386
side, do a chroot build (no user intervention required), in the chroot
do dpkg --set-selections, and then wait while it installs all the
packages. Once it's done just copy over /etc and /home
(and /var/spool/mail if you use spool mail files on the system),
update /etc/fstab and /boot/grub/menu.lst (assuming you use grub), and

If you REALLY want to do it the hard way, it would be POSSIBLE to do a
fully in place upgrade but it really wouldn't be an effective use of
your time. Look at how amd64 handles all the library locations with ia32
libs installed. (/lib32, /lib64, /usr/lib32, and /usr/lib64) This would
be a LOT of work, though, especially with figuring out which services
are using which libraries, when to stop them, when to restart them, etc.

Alex Malinovich
Support Free Software, delete your Windows partition TODAY!
Encrypted mail preferred. You can get my public key from any of the
pgp.net keyservers. Key ID: A6D24837

Attachment: signature.asc
Description: This is a digitally signed message part

Reply to: