Necessary External Packages

[16-Mar-2010, KAB: Please note that this page has become slightly out-of-date. For an up-to-date list of the UPS products that are needed for x86 and PPC builds, please see ups_products-* and ups_products-*-LinuxPPC here.]

On this page, we list the external packages that are needed for DAQ software development and testing. The NOVADAQ SRT setup automatically does ups setups for external package versions known to each release.

Two packaging and deployment methods are used: UPS/UPD and YUM/RPM. The method that is used for a given external package depends on its availability in RPM format and how much flexibility is needed, among other criteria.

Note that UPS and UPD should be upgraded on new Linux hosts when they are first set up. Instructions for doing that are here.

UPS/UPD packages

Flavors displayed in red are not yet available in either UPS or UPD. Ones displayed in orange are available in UPS but not yet in UPD.

Package Name Package Version Needed Flavor(s) Used By
nova_crosscompiler v4_1_0-2_3_6 Linux64bit+2.6-2.5 builds of PPC code
java v1.6.0_14 Linux64bit+2.6-2.5 ant, smc, jca, rms, novaMsg, etc
ant apache-ant-1.7.1 NULL builds of external products like jca
smc v5_0_0 Linux+2 demorc, novarc
cppunit v1_12_1 Linux64bit+2.6-2.5 lots of packages soon
jca v2_3_2 Linux64bit+2.6-2.5 rms
xerces_java v2_9_0 Linux+2 rms, novaMsg
castor v1_0_5 Linux+2 rms, novaMsg
xerces_c v2_7_0, v2_8_0 Linux64bit+2.6-2.5, LinuxPPC cstXSD, rms, novaMsg
cstXSD v2_3_1 Linux64bit+2.6-2.5 rms, novaMsg
aspectj v1_5_3 Linux+2 rms?
boost v1_40_0 Linux64bit+2.6-2.5, LinuxPPC rms
epics v3_14_10_nova1 Linux64bit+2.6-2.5, LinuxPPC rms, epm
graphviz v2_24_0 Linux64bit+2.6-2.5 doxygen
doxygen v1_6_1 Linux64bit+2.6-2.5 rms, etc.
root (compiled with gcc4.1.2?) V5_24_00 Linux64bit+2.6-2.5 data logger, DQM, event display
xmlrpc++ v0_7 Linux64bit+2.6-2.5, LinuxPPC NovaSpillServer
To install any of these packages, use the following steps from your account on the target Linux/x86 node:
  • source /fnal/ups/etc/setups.[c]sh (if needed)
  • setup -j upd (if needed)
  • ksu to root
  • su to the products account
  • upd install -j <productName> <productVersion>

YUM/RPM packages

Package Name Package Version Used By
tbd tbd tbd
To install any of these packages, use the following steps from your account on the target Linux/x86 node:
  • ksu to root
  • yum install <productName>

System Wide Custom Installs

Some packages are required to be present on the system for correct operation of different aspects of the DAQ, but are also very tightly coupled to OS or compilers in such a way that neither UPD nor YUM are currently viable installation mechanisms. For these packages we manually have installed the required package, appropriately configured and built against the hardware it is intended to run on.

Currently installed custom packages:
Package Version Notes
Qt 4 Development suite v4.5.2 Move to UPD
ROOT Analysis Framework (NOvA variant) 5.24.00 Move to UPD after compiler is finalized
CLHEP Libraries Move to UPD
Geant4 4.9.0 patch 01 Move to UPD
Cernlib - Not installed

Criteria for choosing YUM vs. UPD

Some of the things to keep in mind when choosing whether to use YUM or UPD to distribute a particular external product are the following:
  • ease of setup (YUM probably has an advantage over UPD in some cases in that RPMs are often already available and ready to use, whereas we always need to create the UPS/UPD package when we use UPD)
  • ease of installing one of our external products on a new host (YUM and UPD are probably equal)
  • ability to use up-to-date versions (YUM and UPD are probably equal, although to get the latest versions of packages via YUM, we will probably need to maintain our own YUM repository)
  • ability to support multiple versions on the same host (UPS has the advantage over YUM)
  • reproducibility of a particular installation (we believe the two options are equal)
  • control versus effort (UPS/UPD packages require a little more work but give us more control)

Steps for creating a UPS/UPD package from an external product

Coming soon...

In the meantime, some notes:
  • upd addproduct -f Linux64bit+2.6-2.5 cppunit v1_12_1

Notes on removing UPS products

All of the commands in this section should be executed from the products account.

To simply undeclare a product version:
  • ups undeclare -f <flavorName> <productName> <productVersion>
To undeclare a product version and remove the product root directory (which includes the code/libraries/etc.) from the local host:
  • ups undeclare -y -f <flavorName> <productName> <productVersion>