smau milano 2016 - fabio alessandro locati
TRANSCRIPT
![Page 1: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/1.jpg)
RPM PackagingHow software delivery works and why RPM packaging is more current than ever
Fabio Alessandro Locati26 October 2016
![Page 2: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/2.jpg)
Outline
Intro
Deployments
RPM Processes
RPM and Docker
1
![Page 3: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/3.jpg)
Intro
![Page 4: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/4.jpg)
About me
• RPM user since 2001• IT Consultant since 2004• RPMs creator since 2013
2
![Page 5: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/5.jpg)
About me
• RPM user since 2001
• IT Consultant since 2004• RPMs creator since 2013
2
![Page 6: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/6.jpg)
About me
• RPM user since 2001• IT Consultant since 2004
• RPMs creator since 2013
2
![Page 7: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/7.jpg)
About me
• RPM user since 2001• IT Consultant since 2004• RPMs creator since 2013
2
![Page 8: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/8.jpg)
Deployment in the past
• Mayority of application needed to be deployed on a single system• Annual/Bi-annual• All hands on deck
• Devs ready to patch• Ops ready to deploy work-around
• Usually performed during night-time• Hours of downtime• Very expensive deployments
3
![Page 9: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/9.jpg)
Deployment in the past
• Mayority of application needed to be deployed on a single system
• Annual/Bi-annual• All hands on deck
• Devs ready to patch• Ops ready to deploy work-around
• Usually performed during night-time• Hours of downtime• Very expensive deployments
3
![Page 10: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/10.jpg)
Deployment in the past
• Mayority of application needed to be deployed on a single system• Annual/Bi-annual
• All hands on deck
• Devs ready to patch• Ops ready to deploy work-around
• Usually performed during night-time• Hours of downtime• Very expensive deployments
3
![Page 11: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/11.jpg)
Deployment in the past
• Mayority of application needed to be deployed on a single system• Annual/Bi-annual• All hands on deck
• Devs ready to patch• Ops ready to deploy work-around
• Usually performed during night-time• Hours of downtime• Very expensive deployments
3
![Page 12: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/12.jpg)
Deployment in the past
• Mayority of application needed to be deployed on a single system• Annual/Bi-annual• All hands on deck
• Devs ready to patch
• Ops ready to deploy work-around
• Usually performed during night-time• Hours of downtime• Very expensive deployments
3
![Page 13: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/13.jpg)
Deployment in the past
• Mayority of application needed to be deployed on a single system• Annual/Bi-annual• All hands on deck
• Devs ready to patch• Ops ready to deploy work-around
• Usually performed during night-time• Hours of downtime• Very expensive deployments
3
![Page 14: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/14.jpg)
Deployment in the past
• Mayority of application needed to be deployed on a single system• Annual/Bi-annual• All hands on deck
• Devs ready to patch• Ops ready to deploy work-around
• Usually performed during night-time
• Hours of downtime• Very expensive deployments
3
![Page 15: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/15.jpg)
Deployment in the past
• Mayority of application needed to be deployed on a single system• Annual/Bi-annual• All hands on deck
• Devs ready to patch• Ops ready to deploy work-around
• Usually performed during night-time• Hours of downtime
• Very expensive deployments
3
![Page 16: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/16.jpg)
Deployment in the past
• Mayority of application needed to be deployed on a single system• Annual/Bi-annual• All hands on deck
• Devs ready to patch• Ops ready to deploy work-around
• Usually performed during night-time• Hours of downtime• Very expensive deployments
3
![Page 17: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/17.jpg)
Today expectations
• Deploy multiple times every day• Cheap deployments• No down time• Need of mass deployment (tens/hundreds/thousands of systems)• Horizontal (dynamic) scalability
4
![Page 18: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/18.jpg)
Today expectations
• Deploy multiple times every day
• Cheap deployments• No down time• Need of mass deployment (tens/hundreds/thousands of systems)• Horizontal (dynamic) scalability
4
![Page 19: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/19.jpg)
Today expectations
• Deploy multiple times every day• Cheap deployments
• No down time• Need of mass deployment (tens/hundreds/thousands of systems)• Horizontal (dynamic) scalability
4
![Page 20: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/20.jpg)
Today expectations
• Deploy multiple times every day• Cheap deployments• No down time
• Need of mass deployment (tens/hundreds/thousands of systems)• Horizontal (dynamic) scalability
4
![Page 21: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/21.jpg)
Today expectations
• Deploy multiple times every day• Cheap deployments• No down time• Need of mass deployment (tens/hundreds/thousands of systems)
• Horizontal (dynamic) scalability
4
![Page 22: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/22.jpg)
Today expectations
• Deploy multiple times every day• Cheap deployments• No down time• Need of mass deployment (tens/hundreds/thousands of systems)• Horizontal (dynamic) scalability
4
![Page 23: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/23.jpg)
Deployments
![Page 24: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/24.jpg)
Items that could be involved in deployments
• Code• Source Control System (SCM): git, hg, svn, cvs• Build system: Koji, Jenkins, Shell• Software packaging system: RPM, DEB, Docker, WAR, generic archive• Test system: Bodhi, Jenkins• Environment packaging system: Docker, PyEnv• Orchestration tool: Ansible, Puppet, Salt, Chef, Kubernetes• Execution environment: Native OS, OpenStack, OpenShift, Docker, runc
5
![Page 25: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/25.jpg)
Items that could be involved in deployments
• Code
• Source Control System (SCM): git, hg, svn, cvs• Build system: Koji, Jenkins, Shell• Software packaging system: RPM, DEB, Docker, WAR, generic archive• Test system: Bodhi, Jenkins• Environment packaging system: Docker, PyEnv• Orchestration tool: Ansible, Puppet, Salt, Chef, Kubernetes• Execution environment: Native OS, OpenStack, OpenShift, Docker, runc
5
![Page 26: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/26.jpg)
Items that could be involved in deployments
• Code• Source Control System (SCM): git, hg, svn, cvs
• Build system: Koji, Jenkins, Shell• Software packaging system: RPM, DEB, Docker, WAR, generic archive• Test system: Bodhi, Jenkins• Environment packaging system: Docker, PyEnv• Orchestration tool: Ansible, Puppet, Salt, Chef, Kubernetes• Execution environment: Native OS, OpenStack, OpenShift, Docker, runc
5
![Page 27: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/27.jpg)
Items that could be involved in deployments
• Code• Source Control System (SCM): git, hg, svn, cvs• Build system: Koji, Jenkins, Shell
• Software packaging system: RPM, DEB, Docker, WAR, generic archive• Test system: Bodhi, Jenkins• Environment packaging system: Docker, PyEnv• Orchestration tool: Ansible, Puppet, Salt, Chef, Kubernetes• Execution environment: Native OS, OpenStack, OpenShift, Docker, runc
5
![Page 28: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/28.jpg)
Items that could be involved in deployments
• Code• Source Control System (SCM): git, hg, svn, cvs• Build system: Koji, Jenkins, Shell• Software packaging system: RPM, DEB, Docker, WAR, generic archive
• Test system: Bodhi, Jenkins• Environment packaging system: Docker, PyEnv• Orchestration tool: Ansible, Puppet, Salt, Chef, Kubernetes• Execution environment: Native OS, OpenStack, OpenShift, Docker, runc
5
![Page 29: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/29.jpg)
Items that could be involved in deployments
• Code• Source Control System (SCM): git, hg, svn, cvs• Build system: Koji, Jenkins, Shell• Software packaging system: RPM, DEB, Docker, WAR, generic archive• Test system: Bodhi, Jenkins
• Environment packaging system: Docker, PyEnv• Orchestration tool: Ansible, Puppet, Salt, Chef, Kubernetes• Execution environment: Native OS, OpenStack, OpenShift, Docker, runc
5
![Page 30: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/30.jpg)
Items that could be involved in deployments
• Code• Source Control System (SCM): git, hg, svn, cvs• Build system: Koji, Jenkins, Shell• Software packaging system: RPM, DEB, Docker, WAR, generic archive• Test system: Bodhi, Jenkins• Environment packaging system: Docker, PyEnv
• Orchestration tool: Ansible, Puppet, Salt, Chef, Kubernetes• Execution environment: Native OS, OpenStack, OpenShift, Docker, runc
5
![Page 31: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/31.jpg)
Items that could be involved in deployments
• Code• Source Control System (SCM): git, hg, svn, cvs• Build system: Koji, Jenkins, Shell• Software packaging system: RPM, DEB, Docker, WAR, generic archive• Test system: Bodhi, Jenkins• Environment packaging system: Docker, PyEnv• Orchestration tool: Ansible, Puppet, Salt, Chef, Kubernetes
• Execution environment: Native OS, OpenStack, OpenShift, Docker, runc
5
![Page 32: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/32.jpg)
Items that could be involved in deployments
• Code• Source Control System (SCM): git, hg, svn, cvs• Build system: Koji, Jenkins, Shell• Software packaging system: RPM, DEB, Docker, WAR, generic archive• Test system: Bodhi, Jenkins• Environment packaging system: Docker, PyEnv• Orchestration tool: Ansible, Puppet, Salt, Chef, Kubernetes• Execution environment: Native OS, OpenStack, OpenShift, Docker, runc
5
![Page 33: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/33.jpg)
RPM as software packaging system
• Advantages
• Very well known format• Open Standard• Clear distinction between compile environment and run environment• Easy to integrate with any kind of environment• Very good at resolving dependencies• Checksum of all files• Very rigid policies
• Disadvantages
• Heavily connected with RPM-based distro (Fedora, RHEL, OEL, SLES, OpenSUSE,CentOS, SL)
• Very rigid policies
6
![Page 34: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/34.jpg)
RPM as software packaging system
• Advantages
• Very well known format• Open Standard• Clear distinction between compile environment and run environment• Easy to integrate with any kind of environment• Very good at resolving dependencies• Checksum of all files• Very rigid policies
• Disadvantages
• Heavily connected with RPM-based distro (Fedora, RHEL, OEL, SLES, OpenSUSE,CentOS, SL)
• Very rigid policies
6
![Page 35: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/35.jpg)
RPM as software packaging system
• Advantages• Very well known format
• Open Standard• Clear distinction between compile environment and run environment• Easy to integrate with any kind of environment• Very good at resolving dependencies• Checksum of all files• Very rigid policies
• Disadvantages
• Heavily connected with RPM-based distro (Fedora, RHEL, OEL, SLES, OpenSUSE,CentOS, SL)
• Very rigid policies
6
![Page 36: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/36.jpg)
RPM as software packaging system
• Advantages• Very well known format• Open Standard
• Clear distinction between compile environment and run environment• Easy to integrate with any kind of environment• Very good at resolving dependencies• Checksum of all files• Very rigid policies
• Disadvantages
• Heavily connected with RPM-based distro (Fedora, RHEL, OEL, SLES, OpenSUSE,CentOS, SL)
• Very rigid policies
6
![Page 37: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/37.jpg)
RPM as software packaging system
• Advantages• Very well known format• Open Standard• Clear distinction between compile environment and run environment
• Easy to integrate with any kind of environment• Very good at resolving dependencies• Checksum of all files• Very rigid policies
• Disadvantages
• Heavily connected with RPM-based distro (Fedora, RHEL, OEL, SLES, OpenSUSE,CentOS, SL)
• Very rigid policies
6
![Page 38: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/38.jpg)
RPM as software packaging system
• Advantages• Very well known format• Open Standard• Clear distinction between compile environment and run environment• Easy to integrate with any kind of environment
• Very good at resolving dependencies• Checksum of all files• Very rigid policies
• Disadvantages
• Heavily connected with RPM-based distro (Fedora, RHEL, OEL, SLES, OpenSUSE,CentOS, SL)
• Very rigid policies
6
![Page 39: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/39.jpg)
RPM as software packaging system
• Advantages• Very well known format• Open Standard• Clear distinction between compile environment and run environment• Easy to integrate with any kind of environment• Very good at resolving dependencies
• Checksum of all files• Very rigid policies
• Disadvantages
• Heavily connected with RPM-based distro (Fedora, RHEL, OEL, SLES, OpenSUSE,CentOS, SL)
• Very rigid policies
6
![Page 40: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/40.jpg)
RPM as software packaging system
• Advantages• Very well known format• Open Standard• Clear distinction between compile environment and run environment• Easy to integrate with any kind of environment• Very good at resolving dependencies• Checksum of all files
• Very rigid policies
• Disadvantages
• Heavily connected with RPM-based distro (Fedora, RHEL, OEL, SLES, OpenSUSE,CentOS, SL)
• Very rigid policies
6
![Page 41: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/41.jpg)
RPM as software packaging system
• Advantages• Very well known format• Open Standard• Clear distinction between compile environment and run environment• Easy to integrate with any kind of environment• Very good at resolving dependencies• Checksum of all files• Very rigid policies
• Disadvantages
• Heavily connected with RPM-based distro (Fedora, RHEL, OEL, SLES, OpenSUSE,CentOS, SL)
• Very rigid policies
6
![Page 42: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/42.jpg)
RPM as software packaging system
• Advantages• Very well known format• Open Standard• Clear distinction between compile environment and run environment• Easy to integrate with any kind of environment• Very good at resolving dependencies• Checksum of all files• Very rigid policies
• Disadvantages
• Heavily connected with RPM-based distro (Fedora, RHEL, OEL, SLES, OpenSUSE,CentOS, SL)
• Very rigid policies
6
![Page 43: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/43.jpg)
RPM as software packaging system
• Advantages• Very well known format• Open Standard• Clear distinction between compile environment and run environment• Easy to integrate with any kind of environment• Very good at resolving dependencies• Checksum of all files• Very rigid policies
• Disadvantages• Heavily connected with RPM-based distro (Fedora, RHEL, OEL, SLES, OpenSUSE,
CentOS, SL)
• Very rigid policies
6
![Page 44: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/44.jpg)
RPM as software packaging system
• Advantages• Very well known format• Open Standard• Clear distinction between compile environment and run environment• Easy to integrate with any kind of environment• Very good at resolving dependencies• Checksum of all files• Very rigid policies
• Disadvantages• Heavily connected with RPM-based distro (Fedora, RHEL, OEL, SLES, OpenSUSE,
CentOS, SL)• Very rigid policies
6
![Page 45: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/45.jpg)
RPM components
• SPEC file• Sources files (at least 1)• Patches (eventually)
7
![Page 46: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/46.jpg)
RPM components
• SPEC file
• Sources files (at least 1)• Patches (eventually)
7
![Page 47: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/47.jpg)
RPM components
• SPEC file• Sources files (at least 1)
• Patches (eventually)
7
![Page 48: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/48.jpg)
RPM components
• SPEC file• Sources files (at least 1)• Patches (eventually)
7
![Page 49: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/49.jpg)
RPM Processes
![Page 50: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/50.jpg)
RPM build process
• Fetch of the SPEC file• Fetch of sources/patches• Creation of the .src.rpm file• Creation of binaries .rpm files
8
![Page 51: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/51.jpg)
RPM build process
• Fetch of the SPEC file
• Fetch of sources/patches• Creation of the .src.rpm file• Creation of binaries .rpm files
8
![Page 52: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/52.jpg)
RPM build process
• Fetch of the SPEC file• Fetch of sources/patches
• Creation of the .src.rpm file• Creation of binaries .rpm files
8
![Page 53: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/53.jpg)
RPM build process
• Fetch of the SPEC file• Fetch of sources/patches• Creation of the .src.rpm file
• Creation of binaries .rpm files
8
![Page 54: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/54.jpg)
RPM build process
• Fetch of the SPEC file• Fetch of sources/patches• Creation of the .src.rpm file• Creation of binaries .rpm files
8
![Page 55: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/55.jpg)
Fedora pipeline
• SPEC file, additional sources, and patches in git repo• Upstream source in cache system• Build in Koji• Promotion to Bodhi testing branch• Automated tests by Bodhi and AutoQA• Manual testing• Promotion to Bodhi stable branch
9
![Page 56: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/56.jpg)
Fedora pipeline
• SPEC file, additional sources, and patches in git repo
• Upstream source in cache system• Build in Koji• Promotion to Bodhi testing branch• Automated tests by Bodhi and AutoQA• Manual testing• Promotion to Bodhi stable branch
9
![Page 57: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/57.jpg)
Fedora pipeline
• SPEC file, additional sources, and patches in git repo• Upstream source in cache system
• Build in Koji• Promotion to Bodhi testing branch• Automated tests by Bodhi and AutoQA• Manual testing• Promotion to Bodhi stable branch
9
![Page 58: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/58.jpg)
Fedora pipeline
• SPEC file, additional sources, and patches in git repo• Upstream source in cache system• Build in Koji
• Promotion to Bodhi testing branch• Automated tests by Bodhi and AutoQA• Manual testing• Promotion to Bodhi stable branch
9
![Page 59: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/59.jpg)
Fedora pipeline
• SPEC file, additional sources, and patches in git repo• Upstream source in cache system• Build in Koji• Promotion to Bodhi testing branch
• Automated tests by Bodhi and AutoQA• Manual testing• Promotion to Bodhi stable branch
9
![Page 60: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/60.jpg)
Fedora pipeline
• SPEC file, additional sources, and patches in git repo• Upstream source in cache system• Build in Koji• Promotion to Bodhi testing branch• Automated tests by Bodhi and AutoQA
• Manual testing• Promotion to Bodhi stable branch
9
![Page 61: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/61.jpg)
Fedora pipeline
• SPEC file, additional sources, and patches in git repo• Upstream source in cache system• Build in Koji• Promotion to Bodhi testing branch• Automated tests by Bodhi and AutoQA• Manual testing
• Promotion to Bodhi stable branch
9
![Page 62: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/62.jpg)
Fedora pipeline
• SPEC file, additional sources, and patches in git repo• Upstream source in cache system• Build in Koji• Promotion to Bodhi testing branch• Automated tests by Bodhi and AutoQA• Manual testing• Promotion to Bodhi stable branch
9
![Page 63: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/63.jpg)
Example RPM pipeline 1
• SPEC file, additional sources, and patches in git repo• Build in Koji• Promotion to Bodhi testing branch• Automated tests by Bodhi and AutoQA• Manual testing• Promotion to Bodhi stable branch• Simple upgrade of live system (yum update -y PACKAGE)
10
![Page 64: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/64.jpg)
Example RPM pipeline 1
• SPEC file, additional sources, and patches in git repo
• Build in Koji• Promotion to Bodhi testing branch• Automated tests by Bodhi and AutoQA• Manual testing• Promotion to Bodhi stable branch• Simple upgrade of live system (yum update -y PACKAGE)
10
![Page 65: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/65.jpg)
Example RPM pipeline 1
• SPEC file, additional sources, and patches in git repo• Build in Koji
• Promotion to Bodhi testing branch• Automated tests by Bodhi and AutoQA• Manual testing• Promotion to Bodhi stable branch• Simple upgrade of live system (yum update -y PACKAGE)
10
![Page 66: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/66.jpg)
Example RPM pipeline 1
• SPEC file, additional sources, and patches in git repo• Build in Koji• Promotion to Bodhi testing branch
• Automated tests by Bodhi and AutoQA• Manual testing• Promotion to Bodhi stable branch• Simple upgrade of live system (yum update -y PACKAGE)
10
![Page 67: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/67.jpg)
Example RPM pipeline 1
• SPEC file, additional sources, and patches in git repo• Build in Koji• Promotion to Bodhi testing branch• Automated tests by Bodhi and AutoQA
• Manual testing• Promotion to Bodhi stable branch• Simple upgrade of live system (yum update -y PACKAGE)
10
![Page 68: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/68.jpg)
Example RPM pipeline 1
• SPEC file, additional sources, and patches in git repo• Build in Koji• Promotion to Bodhi testing branch• Automated tests by Bodhi and AutoQA• Manual testing
• Promotion to Bodhi stable branch• Simple upgrade of live system (yum update -y PACKAGE)
10
![Page 69: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/69.jpg)
Example RPM pipeline 1
• SPEC file, additional sources, and patches in git repo• Build in Koji• Promotion to Bodhi testing branch• Automated tests by Bodhi and AutoQA• Manual testing• Promotion to Bodhi stable branch
• Simple upgrade of live system (yum update -y PACKAGE)
10
![Page 70: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/70.jpg)
Example RPM pipeline 1
• SPEC file, additional sources, and patches in git repo• Build in Koji• Promotion to Bodhi testing branch• Automated tests by Bodhi and AutoQA• Manual testing• Promotion to Bodhi stable branch• Simple upgrade of live system (yum update -y PACKAGE)
10
![Page 71: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/71.jpg)
Example RPM pipeline 2
• SPEC file, additional sources, and patches in git repo• Build in Koji• Creation of a Docker image• Automated tests• Manual testing• Propagate the new Docker image
11
![Page 72: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/72.jpg)
Example RPM pipeline 2
• SPEC file, additional sources, and patches in git repo
• Build in Koji• Creation of a Docker image• Automated tests• Manual testing• Propagate the new Docker image
11
![Page 73: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/73.jpg)
Example RPM pipeline 2
• SPEC file, additional sources, and patches in git repo• Build in Koji
• Creation of a Docker image• Automated tests• Manual testing• Propagate the new Docker image
11
![Page 74: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/74.jpg)
Example RPM pipeline 2
• SPEC file, additional sources, and patches in git repo• Build in Koji• Creation of a Docker image
• Automated tests• Manual testing• Propagate the new Docker image
11
![Page 75: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/75.jpg)
Example RPM pipeline 2
• SPEC file, additional sources, and patches in git repo• Build in Koji• Creation of a Docker image• Automated tests
• Manual testing• Propagate the new Docker image
11
![Page 76: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/76.jpg)
Example RPM pipeline 2
• SPEC file, additional sources, and patches in git repo• Build in Koji• Creation of a Docker image• Automated tests• Manual testing
• Propagate the new Docker image
11
![Page 77: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/77.jpg)
Example RPM pipeline 2
• SPEC file, additional sources, and patches in git repo• Build in Koji• Creation of a Docker image• Automated tests• Manual testing• Propagate the new Docker image
11
![Page 78: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/78.jpg)
RPM and Docker
![Page 79: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/79.jpg)
RPM and Docker
• RPM work very well in Docker environments• Installing RPMs allow a cleaner Docker file and image• RPMs can be deployed within or without Docker
12
![Page 80: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/80.jpg)
RPM and Docker
• RPM work very well in Docker environments
• Installing RPMs allow a cleaner Docker file and image• RPMs can be deployed within or without Docker
12
![Page 81: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/81.jpg)
RPM and Docker
• RPM work very well in Docker environments• Installing RPMs allow a cleaner Docker file and image
• RPMs can be deployed within or without Docker
12
![Page 82: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/82.jpg)
RPM and Docker
• RPM work very well in Docker environments• Installing RPMs allow a cleaner Docker file and image• RPMs can be deployed within or without Docker
12
![Page 83: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/83.jpg)
Docker example
RUN dnf install -y tar make gcc ruby ruby-devel rubygems graphviz \rubygem-nokogiri unzip findutils which wget python-devel \zlib-devel libjpeg-devel redhat-rpm-config patch \&& dnf clean packages \&& gem install --no-ri --no-rdoc asciidoctor --version \
$ASCIIDOCTOR_VERSION \&& gem install --no-ri --no-rdoc asciidoctor-pdf --version \
1.5.0.alpha.11 \&& gem install --no-ri --no-rdoc slim \&& (curl -LkSs https://api.github.com/repos/asciidoctor \
| tar xfz - -C $BACKENDS --strip-components=1) \&& wget https://bitbucket.org/pypa/setuptools/raw/bootstrap \
-O - | python \&& easy_install actdiag
13
![Page 84: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/84.jpg)
Docker example with RPM
RUN dnf install -y rubygem-asciidoctor-pdf \&& dnf clean packages
14
![Page 85: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/85.jpg)
Size of the images
• Fedora base image: 204MB
• First image: 776MB• Second image: 238MB
15
![Page 86: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/86.jpg)
Size of the images
• Fedora base image: 204MB• First image: 776MB
• Second image: 238MB
15
![Page 87: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/87.jpg)
Size of the images
• Fedora base image: 204MB• First image: 776MB• Second image: 238MB
15
![Page 88: Smau Milano 2016 - Fabio Alessandro Locati](https://reader031.vdocuments.us/reader031/viewer/2022022109/5876e39e1a28ab046d8b5633/html5/thumbnails/88.jpg)
Additional resources
• Laboratorio ICT, 14:00 - Come pacchettizzare applicazioni in formato RPM• Slides: https://slides.fale.io/20161026-en-rpm.pdf• Official website: http://rpm.org• Fedora guide: https://fedoraproject.org/wiki/How_to_create_an_RPM_package• RPM Guide: http://rpm-guide.readthedocs.io
16