the problem
- running multiple versions
- of interprets
- of libraries
- of software
example
- app foo needs ancient version of libcool
- app bar needs development version of libcool
-
your system needs stable version of libcool
- you need to run it on one system
enterprise os
- such as RHEL or CentOS
- versions are to old for cool stuff
- for the sake of stability
non-enterprise os
- such as Fedora
- brings (almost) current versions
- sometimes it's to new for your critical apps
the solution
- virtualization
- containers
- ./configure && make && make install
virtualization
- eats a lot of resources
- apps cannot communicate with each other (easily)
- it's overkill
containers
- eat less resources than virtualization
- but the rest is the same
- it's a cooler overkill
make install
- compile your desire version
- install it in /usr/local or /opt
- have fun maintaining it
- especially on many machines
- it's pain in the ass
the question
- how to benefit from RPM packaging system
- and use different versions of software
the answer
- it's obvious
- use RPM to install multiple versions
- do it properly
software collections
- stacks of software prepared in /opt
- loaded when needed
- RPM macros and scl-utils
- easy to create
- easy to use
- it's just easy
what it is
-
upstream project
- Red Hat product
- /opt/vendor/
what can it have
- interprets
- frameworks
- databases
- anything else
where to get it
- CentOS
- demo collections
- softwarecollections.org
- your own collections
- RHEL
- buy your collections, maybe?
- softwarecollections.org
- your own corporate collections
- Fedora
- currently not
- copr
- Fedora.NEXT
demo
- finally :)
- scl --list
- scl enable python27 ipython
under the hood
- do we have time?
- do you know hove RPM works?
- demo some spec file
Made with Slides.com