I am using a 32-bit machine, but I am having to use a relatively obscure semantic database which only comes in 64-bit versions.

What are my options for running it in my local dev environment?

Currently when I try to run it, I get an error message that looks like this:

cannot execute binary file

and when I check my machine info, I get this:

$ uname -a
Linux slabrams-desktop 2.6.32-29-generic #58-Ubuntu SMP Fri Feb 11 19:00:09 UTC 2011 i686 GNU/Linux
  • If you tell what software you're trying to run, may be you get more help ;-) – desgua Apr 27 '11 at 1:13

If its a compiled binary, in only a 64 bit version, I think you're stuck. The binary instructions within the 64 bit program won't be understood by your 32 bit processor. It might be possible somehow to run it through some kind of emulator but I've never seen one designed to do that, and it would most likely run very slow if there was one.

| improve this answer | |
  • Should I then set up some VM and install the database there? Would that be a viable solution? – Genadinik Apr 26 '11 at 20:03
  • If you install a VM it will still be 32 bit so no it won't work. – wojox Apr 26 '11 at 20:38
  • I thought Qemu supported emulating 64-bit on 32-bit. I always assumed it would be in super-slow-motion though. – Ryan C. Thompson Apr 26 '11 at 23:06
  • I've just had a quick google around and it seems that all 64bit system emulators require 64bit hardware. I still think it would be possible, but I have no idea how and I've never seen it done. – Slipstream Apr 27 '11 at 8:31

In case your CPU supports hardware virtualization (most modern processors do) you are able to run a 64-bit guest virtual machine on a 32-bit host by using Virtual Box (see here for reference).

However this may not be as stable as running on a native 64-bit OS. If you need to run 64-bit applications I would strongly recommend an upgrade of your system to an amd64 Ubuntu version.

| improve this answer | |

You can run 64bit application if you install a 64 bit kernel (which is possible while staying with 32 bit libs) and after that building a 64 bit chroot environment for the application. Well, a completely virtual solution may be easier, but if you need a direct hardware access this is an only way. You may install 645 bit kernel as additional, and load it with kexec.

| improve this answer | |
  • 1
    No, a 64bit kernel won't boot on a 32bit system. – Egil Apr 27 '11 at 12:03
  • Why? Debian Lenny used to ship that config, for example. May be you'll need a lib or two in 64 as well, but that doesn't matter. – Barafu Albino Apr 27 '11 at 12:09
  • Because of hardware limits. You can't run 64bit instructions on a 32bit cpu. – Egil Apr 27 '11 at 12:13
  • 1
    In case of old CPU it is too obvious to mention, isn't it? There is although no way to print without printer. – Barafu Albino Apr 27 '11 at 12:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.