Deploying a release on CVMFS


  • Log on to the cvmfs server.
  • Start a transaction.
  • Add the new versions of sbndcode and sbndutil.
  • Finish the transaction.


  • Log on to the cvmfs server
  • Source content for the sbnd cvmfs repository will be visible in /cvmfs/
  • Check the last tags of the cvmfs repository
    cvmfs_server tag -l
  • I usually do this from the temp/ directory as the scripts copy over some manifest files into your current directory for some reason, these can just be deleted.
  • Start a transaction
    cvmfs_server transaction
  • Update repository content with shell scripts
    ~/scripts/ sbnd-< dot version (no preceeding v) >
    • e.g.
      ~/scripts/ sbnd-08.43.00
  • Make sure the installation didn't fail.
  • End transaction and publish updated content
    cvmfs_server publish -m "Published sbndcode < version > and sbndutil < version >" -a < new tag >
  • If something goes wrong and you want to get rid of the changed you just made and end the transaction you can
    cvmfs_server abort
  • log out
  • When you initially log in, you only have read access. Starting and ending the update transaction involves dismounting and remounting the repository read/write or read only. You should not cd to any location in the repository when you're inside a transaction.


  • If you want to update sbnd_data without changing the version number you can add new files to the relevant /grid/fermiapp directory and use rsync
    rsync -r < user >< version >* /cvmfs/< version>/


  • A modified version of the script used to deploy on /grid/fermiapp/ taken from microboone (not sure where to find the original.
  • You will have to modify this if qualifiers and/or build types change.
  • The large commented out section at the end was used to remove the need for qualifiers when setting up pre-built binaries.
    • It wasn't very robustly written and had to be changed every time new build types were added.
    • Given the limited number of users of pre-built binaries I decided to drop this feature.
  • Most of the heavy lifting is done by the pullProducts script, you shouldn't ever have to modify this script but may have to pick up changes if instructed.