Building Qserv with specific dependencies¶
You may want to build Qserv against a specific set of dependencies. Several solutions are available:
Note
Commands below require that you’ve already sourced an eups environment.
Setup dependencies after Qserv setup¶
cd ${SRC_DIR}/qserv
setup -r .
setup foo 1.2.3
setup bar 3.4.5
Use setup –keep option¶
--keep
option will keep any products already setup (regardless of their
versions).
setup foo 1.2.3
setup bar 3.4.5
cd ${SRC_DIR}/qserv
setup --keep -r .
Save the current EUPS environment, and restore it later¶
eups list -s > foo.tag # saves currently setup-ed products
...
cd ${SRC_DIR}/qserv
setup -t foo.tag -r . # sets up the product with dependencies in file foo.tag
See https://dev.lsstcorp.org/trac/wiki/EupsTips#Tags for details.
Keep the dependency version-to-be-used declared as ‘current’¶
To declare a version of an installed product as ‘current’, do:
eups declare -t current <product> <version>
...
cd ${SRC_DIR}/qserv
setup -r .
Declare your own, personal, EUPS tags¶
When there is a need to build a specific ticket against a very specific set of versions, you can use EUPS tags to manage that.
Specifically, you can declare your own, personal, EUPS tags, as described at: https://dev.lsstcorp.org/trac/wiki/EupsTips#Tags
Once you edit your ~/.eups/startup.py as described in there, you will be able to do things such as:
eups declare foo 1.2.3.4 -t dm1234
eups declare bar 5.6.7.8 -t dm1234
So when you’re working on resolving DM-1234 that needs those specific versions, you can set them up with:
...
cd ${SRC_DIR}/qserv
setup -t dm1234 -r .
EUPS expert argue that this is the preferred way to do this, when you need it.