Installing VBFNLO

My friend Aaron has an internship with CERN or something like it, and he’s using a tool called VBFNLO for… something with particles.

Anyway, he was concerned about being able to install VBFNLO, so he called and asked me for help. After a bit of searching, we found by using cat /etc/issue that he was running Scientific Linux. I’ll be demonstrating on an Instant Server running Ubuntu 13.04. Both should work.

Downloads and installation instructions for VBFNLO are available on the VBFNLO website.

First, we need to make sure that we have the proper compilers. Make sure that you have a C compiler such as GCC, and a FORTRAN77 compiler such as g77 or gfortran. You can do this by running which gcc, which g77, and which gfortran. As long as the gcc and one of (g77|gfortran) return a value (e.g. /usr/bin/gcc), you’re fine. If running those commands returns no text, you’ll need to install the proper compilers, or ensure that you have another compiler that will work with VBFNLO (Ubuntu: sudo apt get install gcc, sudo apt-get install gfortran)

EDIT: You will also need g++ and make – I think this was a major hang-up in my installation process. You can test for g++ and make by running which g++ and which make – if the commands don’t print anything, you’ll have to install them (Ubuntu: sudo apt-get install g++, sudo apt-get install make)

The next thing to do is to move to a directory where you want to install VBFNLO. I’ll be working in my home directory, indicated by a tilde (~), but on my machine is /home/ubuntu/.

The VBFNLO source is available for download at http://www.itp.kit.edu/~vbfnloweb/wiki/lib/exe/fetch.php?media=download:vbfnlo-2.6.3.tgz, so we’ll run wget http://www.itp.kit.edu/~vbfnloweb/wiki/lib/exe/fetch.php?media=download:vbfnlo-2.6.3.tgz to download the file to our current directory.

If you run ls, you should see a file called fetch.php?media=download:vbfnlo-2.6.3.tgz. Let’s rename this to something more useful. Run mv fetch.php?media=download:vbfnlo-2.6.3.tgz vbfnlo-2.6.3.tgz to have a more workable name. Remember that you can hit tab to autocomplete the fetch.php... part.

The .tgz extension means that this is a tarballed, gzipped file. So let’s untar and unzip! Run tar -xzvf vbfnlo-2.6.2.tgz to extract all that delicious science from it’s compressed form.

If you run ls now, you should see a directory called VBFNLO-2.6.3. You’ll want to cd VBFNLO-2.6.3 to get into it. (If it says something about not being a directory, you’ve probably messed up or had insufficient privileges in this directory. Try running the tar command with higher privileges, i.e. sudo, or in a folder where you have directory creation permissions).

The next thing you’ll want to do is run sh ./configure --prefix=[path], where you replace [path] with the path to where you’ll be installing VBFNLO. In my case, I will run sh ./configure --prefix=/home/ubuntu. (You can see a full list of configuration flags on the VBFNLO installation instructions page, but odds are you want a default install for now.)

Now that configure has run, run make inside the VBFNLO-2.6.3 directory. This may take some time to complete. Go get some coffee or something. On my Micro-ec2 instance it took well over an hour; hopefully you’re running this on something a bit more powerful. You will need to have write permissions in the working directory. If you’re on a sketchy connection, you may want to run make &, which will decouple the make command from your terminal and keep running even if you disconnect. You can check if it’s still running by executing top, and looking for the process f951.

The next command you’ll need to run is  sudo make install, which will actually create the executables for you to run. You’ll need to be a sudoer or root to run make install.

If there are no errors, you should have your executables sitting in the path you provided earlier, in the bin folder.

From Manhattan,

–Erty

Leave a Reply

Your email address will not be published. Required fields are marked *

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.