This repository is Legacy. Current repository can be found here.

NSLS-II Controls Package Repository

This repository contains installable software packages in the Debian Linux format (.deb) built from sources which can be found in epicsdeb project on GitHub. The software packaged includes the EPICS distributed control framework, the RTEMS real-time operating system, and related packages. Our goal is to provide a fully functional EPICS environment for users and developers.

Packages in this repository were developed by EPICS community members and are used by the NSLS-II Controls Group. However, no NSLS-II specific modification have been made except if directly present in software source. They are also being used by several experimental beamlines at the NSLS.

Currently most built packages are available only for Debian lenny (5), squeeze (6), wheezy (7), and jessie (8) on i386 and amd64 for EPICS Base 3.14. However, they can be used with most Debian derived distributions (ie. Ubuntu). At present the limiting factors are time, and lack of a good system to automatically build a series of dependent packages.


Complete listing of repository contents by release point.

Debian Release NSLS-II Release
Jessie (8.x) N/A N/A N/A jessie Latest
Wheezy (7.x) N/A N/A 2013B wheezy
Squeeze (6.x) N/A 2012A 2013B squeeze
Lenny (5.x) epicsdeb10 2012A N/A lenny

Getting Started

Below are instructions for setting up a Debian system to use the NSLS-II repository. In early 2018, all NSLS-II public websites were moved to use HTTPS protocol, so additional set-up steps are required:
  1. Install HTTPS transport for APT:
    # apt-get install apt-transport-https
  2. Download the repository signing key:
  3. Add the key to the APT keyring with the following command.
    # apt-key add
  4. Add the following lines to: /etc/apt/sources.list Also ensure that you include the 'contrib' on 'non-free' sections of the main repository (for Open Motif needed by EDM)
    deb wheezy main contrib
    deb-src wheezy main contrib
    - Remember the space between debian/ and wheezy
    - Include staging repositories if you want newer versions of packages (see listings):
    deb https://epics.cs.nsls2.local/debian/ wheezy/staging main contrib
    deb-src http://epics.cs.nsls2.local/debian/ wheezy/staging main contrib
  5. Fetch the list of packages.
    # apt-get update
  6. Install packages.
    # apt-get install [see list below...]

Note: BNL on-site users remember to configure APT to use the web proxy.

Useful groups of packages to install

As an example

# apt-get install edm edm-synapps
$ export EDMDATAFILES=.:/usr/lib/epics/op/edl
$ edm -m 'P=somename:,M=axis1' motorx_all

This has installed the EDM display manager and all the panels which are part of the synApps distribution. For a full list of installable packages above.

Partial List of Packaged Software

Some package which will probably be of interest.

Name Description
edm The Extensible Display Manager
alh The EPICS Alarm Handler
striptool Strip-chart plotting tool
python-cothread Simple and powerful Python language bindings for EPICS Channel Access clients
epics-catools Command Line tools (caget, caput, camonitor, ...)
Linux softIOCs
epics-dev EPICS Base headers and utilities.
epics-synapps-dev synApps headers and utilities
procserv Process Server. For running softIoc as daemons.
sysv-rc-softioc SysV style script to start softIocs automatically at boot.
rtems-gesys-mvme3100 RTEMS Generic System Application (for Emerson MVME3100)
epics-synapps-mvme3100 synApps headers and utilities (for RTEMS on MVME3100)


Currently only the following architectures and Board Support Packages are included. If you use EPICS with a BSP which is included in the RTEMS distribution, but not listed here then let us know.

Architecture BSP name
i386 pc386
powerpc mvme2100
powerpc mvme2307
powerpc mvme3100
powerpc mvme5500


Releases are made by making a copy of the current (stable) repository and giving it a name. Ideally, once a release is made it should receive only bug-fixes.

Name Date Debian Release EPICS Base synApps
wheezy/2013A August 2013 Wheezy (7.0) 20130320
squeeze/2013A August 2013 Squeeze (6.0) 20130320
squeeze/2012A Febuary 2012 Squeeze (6.0) 3.14.11 20111025
lenny/2012A Febuary 2012 Lenny (5.0) 3.14.11 20111025
epicsdeb10 May 2010 Lenny (5.0) 3.14.10 5.4.1

Building Packages from Source

All source code used to produce the precompiled binary packages in this repository is also present as source packages. These can be obtained and built in two ways.

All binary packages in this repository are built in a clean snapshot of a virtual machine (QEmu or VirualBox). This is done to verify build dependecies and to guard against unintended dependecies.

Release Source

Simply request the source package from the repository.

$ mkdir dpack
$ cd dpack
$ sudo apt-get build-dep epics-base
$ apt-get source epics-base
$ cd epics-base-3.14.10
$ debuild -us -uc
$ cd ..
$ sudo dpkg -i *.deb

Versioned Source

The source and patches of all packages are tracked with the Git version control system. These Git repositories use Pristine-tar to store the tarball. Allowing them to be entirely self contained. The git-buildpackage tool can be used to control the build process.

$ mkdir dpack
$ cd dpack
$ mkdir tmp
$ git clone
$ cd epics-base
$ git-buildpackage --git-pristine-tar --git-export-dir=$PWD/../tmp

All Git repositories are available on GitHub in epicsdeb project for anonymous read-only access.

BNL Proxy

For computers on-site, APT needs to be configured to use the http proxy. This can be set in the file /etc/apt/apt.conf: "DIRECT";
Acquire::http::Proxy  "";

Sets the default proxy, but bypasses it for the local Debian mirror. Remember that this will be overridden by the http_proxy environment variable.

© 2012 Brookhaven National Lab
Originally created by: Michael Davidsaver
Currently maintained by: Anton Derbenev