Using Pre Built Binaries - GaloisInc/HaLVM GitHub Wiki

THIS PAGE IS NOT TRUE YET. IT WILL BE SOON. WAIT FOR THIS WARNING TO BE REMOVED!*

If your goal is to build unikernels, we strongly recommend the use of pre-built binary packages for your Linux platform of choice. In fact, why not just use one of our pre-configured Vagrant configurations, and then you can skip this section entirely?

CentOS 7 Users

Note: Because CentOS seems to have dropped mainline support for 32-bit platforms in 7, we do not distributed 32-bit RPMs for CentOS. If this is a problem for you, please file an issue request and we can revisit how to get 32-bit packages built for you.

For CentOS 7 users, first run:

% yum install http://repos.halvm.org/centos-7/halvm-yum-repo.rpm

The make sure you have the latest from your brand new source:

% yum update

And then download either the GMP-enabled (HaLVM-gmp) or GMP-disabled (HaLVM) version of the HaLVM, depending on your licensing needs:

% yum install HaLVM

or

% yum install HaLVM-gmp

You should now be ready to go. You might want to do a halvm-cabal update just to make sure the tools are in your path, and your cache of Hackage packages is up-to-date.

Fedora Latest and (Latest - 1)

We'll not use version numbers because Fedora moves pretty fast, and these wiki pages keep getting out of date. To do so, though, I'm going to ask you do a little bit of substitution: please replace the string "VERSION" with your particular version of Fedora.

Given that, the methodology is very similar to CentOS, just using dnf instead of yum (note the substitution in the first command!):

% dnf install http://repos.halvm.org/fedora-VERSION/halvm-yum-repo.rpm

The make sure you have the latest from your brand new source:

% dnf update

And then download either the GMP-enabled (HaLVM-gmp) or GMP-disabled (HaLVM) version of the HaLVM, depending on your licensing needs:

% dnf install HaLVM

or

% dnf install HaLVM-gmp

You should now be ready to go. You might want to do a halvm-cabal update just to make sure the tools are in your path, and your cache of Hackage packages is up-to-date.

Ubuntu LTS-CUR and LTS-PREV

We also support the last to LTS versions of Ubuntu. For clarity, as of May 10th, 2016, we will officially support 14.04.03 and 16.04.

Ubuntu installation should be slightly easier than Fedora, due to the whole PPA system:

% add-apt-repository ppa:halvm/halvm

Again, you can then add either a gmp-enabled or normal HaLVM based on your licensing concerns:

% apt-get install halvm

or

% apt-get install halvm-gmp

Other Systems

Currently, we support only the Linux distributions listed above. Because of the way the HaLVM builds, we are unlikely to ever support building or running the HaLVM directly on your platform. In those cases, please take a look at our Vagrant or Docker solutions.

If you use a different distribution and would like us to automatically support your system as a mainline target, let me suggest two ways forward: the very, very slow method and the not fast method.

  • The very, very slow method would be to simply file an issue describing your platform and your wish to use the HaLVM on it. Bonus points if you include links to web sites that describe how to build packages for that platform and either how to include binary packages into their archives or how to run an archive we can distribute the packages from. Even with this information available, though, let me be honest: it's going to be awhile. You're going to have to wait until someone associated with the HaLVM gets inspired to do another packaging run, rather than any of the other things they could do. Which are typically more fun, because packaging systems are a nightmare.
  • The not fast method would be to do the hard work yourself, and send us a pull request with the patches. The hard work, in this case, will be figuring out how to modify the HaLVM build system such that configure detects your platform and triggers the Makefile to Do The Right Thing when we invoke make packages. At that point, all we have to do is set up a build machine to run your platform, integrate it into our build and distribution system, and figure out how to put them online in a way that you and yours can automatically pull it. All of which takes time, which is why this is the "not fast" option. Still, it'll be much faster than the first option.

Before you do either, though, take a moment to think. Do you really need this custom version? Are you really going to keep using this distribution for the next few years? (Hint: If you've used it for less than 6-9 months, you probably can't answer the previous question.) Can you just develop in a virtual machine? If you choose "not fast", are you going to be willing to support it?

In other words, before you add a bunch of boring and very tedious work to our plates, not to mention cost in release time and CPU cycles, can you please make sure it's worth it?