---
title: "Quick-start Guide"
---


## Prerequisites

The programmer is assumed to be familiar with
- working in the terminal over ssh
- `git` and gitlab (https://eicweb.phy.anl.gov)
- using `cmake`
- C++, python, and shell scripting



Create an account on https://eicweb.phy.anl.gov and configure your account. 

This tutorial requires that [singularity](singularity) is installed 
on the system. We also assumes [modulefiles](modulefiles) can be 
used but are not required.

## The EIC Software Container

Installing the [eic_container](quickstart/eic_container) is done with the 
following:

```shell
git clone https://eicweb.phy.anl.gov/containers/eic_container.git
mkdir eic_container/build 
cd eic_container/build 
cmake ../. -DCMAKE_INSTALL_PREFIX=$HOME/stow/eic_container_1.0.2
make -j4 install
```

Inspect the list of files installed, noting the locations of modulefiles and 
wrapper scripts.


## Using the container

```bash
module load eic_container
```

## Development within singularity container

The following helper runs bash inside `eic_container`
```bash
module load eic_container
container_dev
```

For projects that you want to build but which are also inside of the container, 
you must make sure to set `$PATH` and `$LD_LIBRARY_PATH` to point to the 
development build's installation prefix first. Here we assume your development 
builds are being installed into `$HOME/stow/development`

A simple setup script will make sure
```bash
export $PATH=$HOME/stow/development/bin:$PATH
export $LD_LIBRARY_PATH=$HOME/stow/development/lib:$HOME/stow/development/lib64:$LD_LIBRARY_PATH
export $ROOT_INCLUDE_PATH=$HOME/stow/development/include:$ROOT_INCLUDE_PATH
```