This is an overview of how I got (almost) all the CDS tools running on pianosa, the new Ubuntu 10.04 control room work station.
This is machine is experiment in minimizing the amount of custom configuration and source code compiling. I am attempting to install as many tools as possible from existing packages in
available packages
I was able to install a number of packages directly from the ubuntu archives, including fftw, grace, and ROOT:
apt-get install \ libfftw3-dev \ grace \ root-system
LSCSOFT
I installed all needed LSCSOFT packages (framecpp, libframe, metaio) from the well-maintained UWM LSCSOFT repository.
$ cat /etc/apt/sources.list.d/lscsoft.list deb http://www.lsc-group.phys.uwm.edu/daswg/download/software/debian/ squeeze deb-src http://www.lsc-group.phys.uwm.edu/daswg/download/software/debian/ squeeze contrib
sudo apt-get install lscsoft-archive-keyring sudo apt-get update sudo apt-get install ldas-tools-framecpp-dev libframe-dev libmetaio-dev lscsoft-user-en
You then need to source /opt/lscsoft/lscsoft-user-env.sh to use these packages.
EPICS
There actually appear to be a couple of projects that are trying to provide debs of EPICS. I was able to actually get epics working from one of them, but it didn't include some of the other needed packages (such as MEDM and BURT) so I fell back to using Keith's pre-build binary tarball.
Prereqs:
apt-get install \ libmotif-dev \ libxt-dev \ libxmu-dev \ libxprintutil-dev \ libxpm-dev \ libz-dev \ libxaw7-dev \ libpng-dev \ libgd2-xpm-dev \ libbz2-dev \ libssl-dev \ liblapack-dev \ gfortran
Pulled Keith's prebuild binary:
cd /ligo/apps wget https://llocds.ligo-la.caltech.edu/daq/software/binary/apps/ubuntu/epics-3.14.10-ubuntu.tar.gz tar zxf epics-3.14.10-ubuntu.tar.gz
GDS
I built GDS from svn, after I fixed some broken stuff [0]:
cd ~controls/src/gds svn co https://redoubt.ligo-wa.caltech.edu/svn/gds/trunk cd trunk #fixed broken stuff [0] source /opt/lscsoft/lscsoft-user-env.sh ./bootstrap export GDSBUILD=online export ROOTSYS=/usr ./configure --prefix=/ligo/apps/gds --enable-only-dtt --with-epics=/ligo/apps/epics-3.14.10 make make install
dataviewer
I installed dataviewer from source:
cd ~controls/src/advLigoRTS svn co https://redoubt.ligo-wa.caltech.edu/svn/advLigoRTS/trunk cd trunk/src/dv #fix stupid makefile /opt/rtapps --> /ligo/apps make make install
I found that the actual dataviewer wrapper script was also broken, so I made a new one:
$ cat /ligo/apps/dv/dataviewer
#!/bin/bash export DVPATH=/ligo/apps/dv ID=$$ DCDIR=/tmp/${ID}DC mkdir $DCDIR trap "rm -rf $DCDIR" EXIT $DVPATH/dc3 -s ${NDSSERVER} -a $ID -b $DVPATH "$@"
environment
Finally, I made a environment definer file:
$ cat /ligo/apps/cds-user-env.sh # source the lscsoft environment . /opt/lscsoft/lscsoft-user-env.sh
# source the gds environment . /ligo/apps/gds/etc/gds-user-env.sh
# special local epics setup EPICS=/ligo/apps/epics export LD_LIBRARY_PATH=${EPICS}/base/lib/linux-x86_64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=${EPICS}/extensions/lib/linux-x86_64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=${EPICS}/modules/seq/lib/linux-x86_64:$LD_LIBRARY_PATH export PATH=${EPICS}/base/bin/linux-x86_64:$PATH export PATH=${EPICS}/extensions/bin/linux-x86_64:$PATH export PATH=${EPICS}/modules/seq/bin/linux-x86_64:$PATH
# dataviewer path export PATH=/ligo/apps/dv:${PATH}
# specify the NDS server export NDSSERVER=fb
[0] GDS was not compiling, because of what looked like bugs. I'm not sure why I'm the first person to catch these things. Stricter compiler?
To fix the following compile error:
TLGExport.cc:1337: error: ‘atoi’ was not declared in this scope
I made the following patch:
Index: /home/controls/src/gds/trunk/GUI/dttview/TLGExport.cc =================================================================== --- /home/controls/src/gds/trunk/GUI/dttview/TLGExport.cc (revision 6423) +++ /home/controls/src/gds/trunk/GUI/dttview/TLGExport.cc (working copy) @@ -31,6 +31,7 @@ #include <iomanip> #include <string.h> #include <strings.h> +#include <stdlib.h> namespace ligogui { using namespace std;
To fix the following compile error:
TLGPrint.cc:264: error: call of overloaded ‘abs(Int_t&)’ is ambiguous
I made the following patch:
Index: /home/controls/src/gds/trunk/GUI/dttview/TLGPrint.cc =================================================================== --- /home/controls/src/gds/trunk/GUI/dttview/TLGPrint.cc (revision 6423) +++ /home/controls/src/gds/trunk/GUI/dttview/TLGPrint.cc (working copy) @@ -22,6 +22,7 @@ #include <fstream> #include <map> |