[lsst-dm-stack-users] Information and good practices about rules which define if a package has to managed by eups or by the system.
Fabrice Jammes
fabrice.jammes at in2p3.fr
Thu Apr 3 08:28:43 PDT 2014
Hello,
For Qserv, i packaged several dependencies with eups, and i would like
to understand better the rules which define if a package has to managed
by eups or by the system.
eups pros :
- easy to set a specific version of a product
- easy to change the version of a product
- easy to patch a product
- no root account needed
- works on multiple linux-based OS
eups cons :
- require time to build/install package while installing Qserv
- need engineering and development to create and maintain packages
- some dependencies trees can't be modeled (for example mysqlpython
can't depend on mysqlserver or mysqlclient)
- integration between system packages and eups packages is often complex
A concrete example : zookeeper relies on java. So do we have to package
java in eups or can we use the system version ? If we use the system
version, do we perform both the eups declare product system, and the
version checking in newinstall.sh ? In this case Qserv and LSST-stack
may have a different newinstall.sh file, depending on their system
dependencies.
Is there some rules and good practices in order to choose a packaging
method (system or eups) for a given product ? I suppose that stable
products (like kernel, gcc, libc) could be system-based, so that
newinstall.sh would change only exceptionally, and that products moving
quickly could be eups-based, but is it possible to set more accurately
the cursor ?
Thanks in advance for your answers, and have a nice day.
Fabrice
More information about the dm-users
mailing list