Multi-arch installation: x86 and amd64

Posted by neofpo on Wed 16 May 2007 at 10:09

Since I bought my first amd64 system, I have been developing a solution to make the best of the new amd64 and the old x86 architectures work together. There are many documentation out there, but most are incomplete or obscure.

The whole solution I found for my Debian systems is described in an article at my site:

http://ornellas.apanela.com/dokuwiki/pub:multiarch

It can be applied on both workstation (to run Firefox with Flash, Skype or whatever you need) and server.

The solution is not simple, but will give you two simultaneous working systems, one for each architecture. This means you will have no pain trying to find that missing x86 library in order to run a x86 software on your amd64 installation. Just aptitude it inside the x86 system.

Have fun!

Share/Save/Bookmark


Posted by grimoire (82.69.xx.xx) on Wed 16 May 2007 at 12:27
[ Send Message ]
This isn't really multiarch in the way that I understand it - a chroot requires multiple filesystem trees, while a multiarch system has binaries and libraries of different architectures residing in the same filesystem. "Proper" multiarch is very interesting, though I don't know when / if it'll ever see production.

[ Parent | Reply to this comment ]

Posted by ajt (204.193.xx.xx) on Wed 16 May 2007 at 13:55
[ Send Message | View Weblogs ]
If you install an AMD64 system and the ia32-libs most 32-bit binaries just work. Some time you may need to install extra 32-bit libraries and sometimes you need to tweak the start sequence, but I've been able to run Opera, RealPlayer and a few other odd 32-bit apps perfectly easily on my AMD64 system.

--
"It's Not Magic, It's Work"
Adam

[ Parent | Reply to this comment ]

Posted by neofpo (200.185.xx.xx) on Wed 16 May 2007 at 16:36
[ Send Message | View Weblogs ]
The chroot solution do not require multiple filesystems as reported by grimoire. In fact, there can be only one filesystesm to everything.

It is true that in the true sense of the word the solution I made is not multiarch. But it ties both systems as if it were. My X is amd64, my Acrobat is ia32, my Firefox is ia32 and all them work together and access the same file at my $HOME and /tmp.

It is true what ajt said. Many things will work with the ia32 packages. I made this dual system because I found some trouble with some "32bit only" software. Some are unstable if built under amd64. Some examples are Sun's Java (I got many segfaults with it) and Grip (the CD ripper). Blender is a major example, that only in its latest release became 64bit safe.

There is another application for this solution. There are times you need to keep different Linux installations working together to fit different demands. And you do not need to have two machines to do the job of one. At my work for example, I had to make an old Oracle running, while upgrading the Debian system. That Oracle simply does not run under Etch, just under Sarge. I found my solution applying the "multiarch" way I made. Now Oracle has it's own private Sarge and all the rest of the system can enjoy a fresh Etch release, that can be upgraded with no loss to Oracle and Sarge. People use it on day by day with no problems.

Thank you guys for the comments ;-)

[ Parent | Reply to this comment ]

Posted by undefined (192.91.xx.xx) on Wed 16 May 2007 at 22:38
[ Send Message ]
maybe grimoire didn't choose the right word with "filesystem", maybe "namespace" would have been better, but his intended meaning was conveyed (at least to me), and he is correct: your approach requires multiple filesystem namespaces.

you have to essentially maintain two distinct systems with dchroot as the gatekeeper between the two. a true multiarch solution will not require that. as you have admitted, that's problematic as most applications, menu entries, etc do not expect to call dchroot to exec an application.

and to access amd64 applications from the ia32 chroot, can you not install dchroot in the ia32 chroot and specify the amd64 chroot as /amd64?

for userland virtualization (which is what you are doing in your oracle example) i use vserver.

[ Parent | Reply to this comment ]

Posted by neofpo (200.185.xx.xx) on Thu 17 May 2007 at 00:13
[ Send Message | View Weblogs ]
Those limitations are known and are at the end of my article. Not everything is perfect ;-)

I personally dislike virtualization on this cases, there is no demand for two kernels, only for two userlands. I never had a chance to play with vserver, I will give it a try when I find time. Thank you for the tip.

[ Parent | Reply to this comment ]

Posted by Anonymous (83.113.xx.xx) on Thu 17 May 2007 at 15:57
Well as mentioned above, vserver is userland virtualization which basically works thanks to an enhanced version of chroot. You therefore only need one kernel capable of process virtualization via different contexts.

I personally use vserver for many different kind of situations and can be a really good answer to the problem you brought up with your "multiarch" system.

[ Parent | Reply to this comment ]

User Login

Username:

Password:

[ Advanced Login ]

Register Account

Quick Site Search