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|
Getting StartedBelow 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:
- Install HTTPS transport for APT:
# apt-get install apt-transport-https
- Download the repository signing key: https://epics.nsls2.bnl.gov/debian/repo-key.pub
- Add the key to the APT keyring with the following command.
# apt-key add repo-key.pub
- 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 https://epics.nsls2.bnl.gov/debian/ wheezy main contrib
deb-src https://epics.nsls2.bnl.gov/debian/ 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
- Fetch the list of packages.
# apt-get update
- 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
- Basic EPICS Development Environment
- epics-dev build-essential
- Linux IOC Dev. Environment (additional)
- epics-synapps-dev epics-iocstats-dev visualdct openjdk-6-jdk sysv-rc-softioc
- Operator console
- edm edm-synapps edm-iocstats striptool alh
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.
|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, ...)|
|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.
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)||22.214.171.124||20130320||squeeze/2013A||August 2013||Squeeze (6.0)||126.96.36.199||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.
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
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 http://pubweb.bnl.gov/~mdavidsaver/git/dpack/epics-base.git $ 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.
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:
Acquire::http::Proxy::mirror.bnl.gov "DIRECT"; Acquire::http::Proxy "http://192.168.1.130:3128";
Sets the default proxy, but bypasses it for the local Debian mirror. Remember that this will be overridden by the http_proxy environment variable.