software
collections
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
- at the same time
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
- don't ask me about it
- /opt/vendor/
- root fs
- enable scripts
what can it have
- interprets
- Perl, Python, Ruby...
- frameworks
- Rails, Django...
- databases
- MariaDB, PostgreSQL...
- anything else
- single app
- or scope
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
links
Softwarecollections
By Miro Hrončok
Softwarecollections
- 2,474