I have a box currently running i386 which I want to change over to run amd64. I have installed a second drive into the machine on which I have put a basic install of amd64, and have compiled up the world and kertnel from source. Can I simply switch the original partition over by mounting it up and doin a 'make installworld' with an approrpiate DESTDIR set ? I guess what I am asking is if anything else is different between the two versions aside from the actual binaries themselves (i.e. directory layout and the like). -pete.
> I did roughly the same but slightly different method:ah, and did it work o.k. ? -pete.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Pete French wrote: |> I did roughly the same but slightly different method: | | ah, and did it work o.k. ? | | -pete. | Yes and I have been using the system for almost 8 months now as my primary desktop -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (FreeBSD) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkgps78ACgkQk8GFzCrQm4DjkwCgg6MUz2w73LZwKV2RorIyxeT7 sjAAn1Wh9NBQsBuR1Ftm2ashZEtc5SEk =W4Z2 -----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Pete French wrote: | I have a box currently running i386 which I want to change over to | run amd64. I have installed a second drive into the machine on which | I have put a basic install of amd64, and have compiled up the world | and kertnel from source. | | Can I simply switch the original partition over by mounting it up | and doin a 'make installworld' with an approrpiate DESTDIR set ? | I guess what I am asking is if anything else is different between | the two versions aside from the actual binaries themselves (i.e. | directory layout and the like). I did roughly the same but slightly different method: 0. Deinstall all ports but record what they are 1. FTP the enitre kernel and base system from what ever version you want 2. Install the kernel with (this assumes 7/8-current): ~ ./install.sh generic 3. Install the base system ~ ./install.sh 4. Reboot (optional) 4a. Get the most recent sources and remake the system with those (optional) 4b. Get and install any other sysinstall distfiles you wish (optional) 4c. Run make delete-old and make delete-old-libs 5. Reinstall all your ports Note: ./install.sh done from what ever dir you put the distfiles in (*DO NOT* intermix kernel and base) 4c is almost not optional -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (FreeBSD) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkgprqUACgkQk8GFzCrQm4CtVACeJg9f0SnPG1I1nix/948kHJit GCkAoO8U2D/WCvPJ1Mz3icCCQaQD6180 =o5mP -----END PGP SIGNATURE-----
On Tue, 13 May 2008 15:18:36 BST Pete French <petefrench@ticketswitch.com> wrote:> I have a box currently running i386 which I want to change over to > run amd64. I have installed a second drive into the machine on which > I have put a basic install of amd64, and have compiled up the world > and kertnel from source. > > Can I simply switch the original partition over by mounting it up > and doin a 'make installworld' with an approrpiate DESTDIR set ? > I guess what I am asking is if anything else is different between > the two versions aside from the actual binaries themselves (i.e. > directory layout and the like).In the 64 bit FreeBSD world, /usr/lib32 contains libraries for the x86 binaries and /lib, /usr/lib contain 64 bit libraries so a straight install may mess things up. At the very least you should backup your 32 bit root partition -- but I have a feeling my advice is already too late :-) Ideally a simple perl script can automate most of this job. May be all you have to do is something like this: for a in lib usr/lib usr/local/lib do mv $DESTDIR/$a $DESTDIR/${a}32 done echo 'ldconfig32_paths="/usr/lib32 /usr/local/lib32"' >> $DESTIDIR/etc/rc.conf Most all old 32 bit ports should work but upgrading them can mess things up. All the new compiles will generate 64 bit binaries but any port dependencies on a shared library will be wrong. Also, not all 32 bit ports work on 64 bit. May be the trick is to save port directory names for all installed ports (e.g. shell/zsh), then blow them all away (after saving a copy somewhere) and then install them again. This really needs to be part of sysinstall. PS: the following may come in handy. Save it in ~/bin/ldd32. #!/bin/sh # ldd for i386 binaries for i in ${1+"$@"} do echo "$i": env LD_32_TRACE_LOADED_OBJECTS=1 "$i" done