Obsolete see: Software Installation From Source

Installation From Source with beanie

LBNE beanie is a simple set of scripts that performs the steps needed to build LBNE software following "official" instructions where they exist and smoothing over rough spots. The intention is for this build to work on more than just FNAL hosts. Currently the high-level target is larsoft. g4lbne and other high-level projects will be added in the future.

When successful the result will be a area populated under the given sub-directory holding a set of UPS-controlled external packages (including ART) and an SRT-built larsoft.


Make a location

mkdir -p /path/to/some/space
cd /path/to/some/space

Get the beanie build scripts:

svn checkout

Go for it

./build/scripts/beanie-larsoft development lbnesoft

Monitor progress

In another terminal you can watch the detailed log:

tail -f lbnesoft/logs/log.latest

What might go wrong?

SVN+SSH access craps out

You might get:

sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `svnserve --tunnel-user (null)  -t'

You need to tweak your .ssh/config stanza to use GSSAPI for access. See:

New platform

So far beanie has been tested on

  • RACF Scientific Linux 5.3, 64bit

Platforms not listed above may or may not work. Fixes are welcome.

New code

The development "release" of LBNE software may break at any given time as new commits are made to the upstream repositories. Periodically, true releases are made which are not subject to this problem.

Flaky server/network

SVN checkouts may fail with errors like the following found in the detailed log:

svn: PROPFIND of '/subversion/larsoftsvn/!svn/vcc/default': 503 Service Unavailable (

Simply rerunning the beanie command may allow for success.

Modifications for experts

By default these instructions and the beanie script will check things out anonymously and which will not allow commits. For developers needing to commit some special action is needed.

Commitable checkout

To check out the build directory with commit privileges:

git svn clone svn+ssh://

If you anticipate needing to make patches then explicitly checkout the patches/ directory before getting started (or remove it post-start and check it out) like so:

cd lbnesoft/
rm -r patches # if needed, or move aside
git svn clone  svn+ssh://

Replace lbnesoft/ with desired top-level directory and replace the SVN URL with the one corresponding to the targetted release.

Use normal git add/commit commands and to upload them do

git svn rebase # to assure you bring down any other commits
git svn dcommit