ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I was interested in this myself and could not find a straightforward way to allow 64 bit and 32 bit debs to coexist. The most common solutions you'll hear are:

1) Create a chroot enviroment, install all the 32 bit debs, and build/run from that chroot environment.

or

2) Utilize a virtual machine such as VirtualBox. There is a tool called "vagrant" that allows you to run headless VirtualBox instances from the command line.

Hope that helps!

I was interested in this myself and could not find a straightforward way to allow 64 bit and 32 bit debs to coexist. The most common solutions you'll hear are:

1) Create a chroot enviroment, install all the 32 bit debs, and build/run from that chroot environment.

or

2) Utilize a virtual machine such as VirtualBox. There is a tool called "vagrant" that allows you to run headless VirtualBox instances from the command line.

Hope that helps!

Edit: Regarding your second comment

Yes, you cannot simply move binaries built against 32 bit libraries onto a machine with the 64 bit libraries installed. Yes, if the 32 bit versions of the libraries were installed, it would not be a problem. However, as I had stated earlier...it's not very easy to have both versions libraries installed side by side when using prepackaged debians.

The most common trick is to use a "chroot" environment. "chroot" stands for change root and allows you to turn some folder in your file system into a fake root that is jailed/sandboxed from the rest of the system. Using the "chroot" command, you can enter the jailed root environment. In there you can install 32 bit versions of all the debians you need. Checkout your code within the chroot environment, build it there, and most importantly...RUN IT FROM THERE.

The other option is using virtualization. You'll incur a little bit of overhead for your application, but it's negligible on modern processors.

I was interested in this myself and could not find a straightforward way to allow 64 bit and 32 bit debs to coexist. The most common solutions you'll hear are:

1) Create a chroot enviroment, install all the 32 bit debs, and build/run from that chroot environment.

or

2) Utilize a virtual machine such as VirtualBox. There is a tool called "vagrant" that allows you to run headless VirtualBox instances from the command line.

Hope that helps!

Edit: Regarding your second comment

Yes, you cannot simply move binaries built against 32 bit libraries onto a machine with the 64 bit libraries installed. Yes, if the 32 bit versions of the libraries were installed, it would not be a problem. However, as I had stated earlier...it's not very easy to have both versions libraries installed side by side when using prepackaged debians.

The most common trick is to use a "chroot" environment. "chroot" stands for change root and allows you to turn some folder in your file system into a fake root that is jailed/sandboxed from the rest of the system. Using the "chroot" command, you can enter the jailed root environment. In there you can install 32 bit versions of all the debians you need. Checkout your code within the chroot environment, build it there, and most importantly...RUN IT FROM THERE.

The other option is using virtualization. You'll incur a little bit of overhead for your application, but it's negligible on modern processors.

Here's a great Ubuntu answer explaining chroot a little further: http://askubuntu.com/questions/29665/how-do-i-apt-get-a-32-bit-package-on-a-64-bit-installation