FAQ - NuSLAC/ICARUSCookbook GitHub Wiki

What is ups?

In short, it is a Fermilab-specific software package management system, so kind of like yum, apt, or pip. The difference is that it's only useful within Fermilab experiments. That's a huge difference. If you want to read details, here is a 39 chapters long manual (no I've never read, in fact, I just discovered). Some ups commands are useful for your daily development lives and worth noting below.

  • ups list -aK+ will list ALL packages and versions that are available for you to set up.
  • ups list -aK+ X runs MUCH faster to list available versions of X package (for example, icaruscode). So when you just want to list versions, always specify the package name rather than listing all thousands available.
  • ups setup X VERSION [-q FLAVOR] will setup a software X with the specified VERSION and optionally a FLAVOR. For example, ups setup icaruscode v08_30_01 -q e17:prof will set-up icaruscode with a version v08_30_01 built with a flavor e17:prof.
  • ups active will list ALL packages that you have ups setup so far.
  • ups depend X VERSION [-q FLAVOR] will list ALL softwares that depend on X with the specified version and (optionally) a flavor.
    • e.g.) try ups depend icaruscode v08_30_01 -q e17:prof

What is mrb?

What is build vs. install?

How does mrb figure out software version dependencies?