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

Made with Slides.com