[clug] Virtualisation solution for development
bob at cs.anu.edu.au
Wed Jun 22 01:39:01 MDT 2011
On 22/06/11 17:16, Ben Nizette wrote:
> Hi All,
> For the last several months I've been trying to keep 32-bit and 64-bit development files playing nicely together on my Ubuntu 64-bit dev box. Each time I find a new, dumb, 32-bit, proprietary package I spend ages creating a set of $PATH, $LD_LIBRARY_PATH and symlinks that will actually get the stupid thing to run. And those then break my finely tuned environment for the other stupid packages. I've started creating scripts that set up a good environment, run the program, then tear it down again but that's getting tedious, I've had enough.
> My first instinct was just to grab VirtualBox and install a 32-bit machine but surely there's a better, lighter-weight way! Especially as many of the stupid packages have to talk to host hardware, eg programmers, which aren't completely trivial to punch through a VM.
> I've had a brief look at OpenVZ but it looks like when they say 'same OS workloads' they really mean it; I thought they could support parallel distributions so long as they were all Linux-based but it looks like I was wrong.
> Anyone got ideas? Done the same thing?
My Internet-facing Linux system at home (am I allowed to say that on
this list?) is running OpenVZ and has Debian, CentOS, SuSE and Ubuntu
"containers" happily running on it concurrently. This is with a 32-bit
kernel. (Actually, I have two pretty much identical boxes, both retired
desktops, and I can easily migrate virtual machines from one to the
other etc. One is in the garage and the other under the stairs and I
regularly backup one to the other).
We use a lot of OpenVZ at work (ANU Comp. Sci.) and they are mainly
64-bit, but I haven't, yet, tried running a 32-bit distro on a 64-bit
OpenVZ kernel. I guess it will break. But I could make a 64-bit distro
work nicely with 32-bit apps in a container.
Problem with OpenVZ, for your scenario, is giving the containers the
right accesses to the hardware ports for your external devices.
If it were me (ie. this is what I do in my office at work), would be to
run separate machines: one running 32-bit to talk to the hardware etc.
and the other is my normal (64-bit) development desktop. Sharing things
over a fastish network makes most hassles go away.
More information about the linux