Corporate · onsite · online training worldwide
contact@DevOpsSchool.com· +91 99057 40781·
> Software Packaging & Distribution · DevOpsSchool Trainer

RPM Trainer

Private corporate batches, live online cohorts and 1-on-1 mentoring in the RPM package format end to end — querying and verification, spec files, rpmbuild, signing, mock clean-room builds and yum/dnf repositories — taught by a practitioner who runs it in production.

20 years across DevOps, SRE and Security · 10,000+ engineers trained · Trained teams at JPMorgan Chase, Verizon, Nokia and the World Bank

DeliveryOnline · Onsite · Hybrid
FormatsCorporate · 1-on-1 · Cohort
AgendaCustomisable
Batch size8–30 engineers
Engineers we've trained work at
JPMorgan ChaseBank of AmericaWells FargoVerizonNokiaWorld BankGE HealthcareVMwareOracleQualcommMercedes-BenzAirbusDatadogSplunkDeloitteInfosysWiproCapgemini
# who teaches it

Your RPM trainer

Rajesh Kumar

Principal DevOps Engineer & Architect

20 years in productionPrincipal / architect roles10,000+ engineers trainedM.Tech BITS Pilani25+ certifications

Rajesh teaches RPM from both sides of the format: consuming it — querying, verifying, signature checking and diagnosing a broken transaction — and producing it, from build-environment setup and spec file structure through macros, scriptlets, automatic dependency generation and mock clean-room builds. Every step is demonstrated against real packages on a running system, including the failure cases: file conflicts, unowned directories, scriptlets that break on upgrade, and packages that build on one host and nowhere else.

Twenty years across DevOps, SRE and Security, in principal and architect roles at PayPay, SoftwareAG, ServiceNow, JDA Software, Intuit, Adobe and others. He has trained engineers at JPMorgan Chase, Verizon, Nokia, the World Bank, VMware, Oracle, Mercedes-Benz and Airbus — more than 10,000 people personally. He teaches what he runs, not what he reads.

One practitioner, not a bench

You are booked with a named engineer, and that is who turns up. Marketplaces and larger providers rotate whoever is free, so the person who sold you the agenda is rarely the person teaching it.

The same trainer is available for the next engagement, which matters when a team builds on what it learned last time.

18,000+certified learners
500+corporate batches delivered
50+countries served
100+certification programmes
# faculty

Who delivers RPM engagements

Your batch is assigned a named trainer before it starts, and that is who teaches it. See the full faculty.

How your RPM trainer is chosen

Engagements are matched on the tool, not the calendar. For RPM that means a trainer who has run it in production — the RPM package format end to end — querying and verification, spec files, rpmbuild, signing, mock clean-room builds and yum/dnf repositories — rather than whoever is free that week. You are told who is teaching before you commit, and that person is on the discovery call that shapes the agenda.

Where a batch is large enough to need a second trainer, the pairing is declared up front. The lead trainer stays accountable for the syllabus and the assessment either way.

Rajesh Kumar

Principal DevOps Engineer & Architect

India20 yrsLead trainer

Twenty years across DevOps, SRE and Security in principal and architect roles at PayPay, SoftwareAG, ServiceNow, JDA Software, Intuit, Adobe, IBM/Emptoris, Ness, MindTree and Accenture. He has trained more than 10,000 engineers personally, at organisations including JPMorgan Chase, Verizon, Nokia, the World Bank, VMware, Oracle, Mercedes-Benz and Airbus. He teaches what he runs, not what he reads.

Amit Agarwal

IndiaInstructorCoach

Anil Kumar

IndiaInstructorCoach

Balachandran Anbalagan

IndiaInstructorCoach

Durga Prasad

IndiaInstructorCoach

Gaurav Aggarwal

IndiaInstructorCoach

Harsh Mehta

IndiaInstructorCoach

Kapil Gupta

IndiaInstructorCoach

Kunal Jain

IndiaInstructorCoach

Nikhil Gupta

IndiaInstructorCoach

Pranab Kumar

IndiaInstructorCoach

Rohit Ghatol

IndiaInstructorCoach

# how to engage

Four ways to work with this trainer

Private corporate batch

Teams of 8–30

Custom agenda, your timezone, onsite or online, NDA-friendly.

Request a quote

1-on-1 mentoring

Individual engineers

A private instructor and a curriculum built around your goal.

₹99,999

Live & Interactive cohort

Individuals who want peers

Scheduled batch, max 8 to 10 hours of live instruction.

₹34,999

Self-paced video

Self-starters

Full LMS access — 20+ courses and 50+ tools included.

₹833/mo
# private batches

Private RPM training for your team

A private batch starts with a discovery call. We look at the stack you actually run — the CI system, the cloud, the constraints — and map the agenda onto it, so examples use your topology rather than a generic one.

Delivery is onsite at your premises, live online, or hybrid, scheduled around your release calendar rather than ours. Batches run 8 to 30 engineers.

Every attendee leaves with recordings, slides, lab repositories and a completion certificate. You receive an attendance and assessment report. Invoicing supports PO and GST.

Talk to us about a private RPM batch

What you provide vs what we bring

  • You: the room or the call, and the engineers
  • Us: trainer, agenda, labs, assessment, certificates
  • Labs: we guide your team through provisioning their own free-tier cloud environment — the skill goes with them
# the technology

What is RPM?

RPM is the package format and package manager that underpins Red Hat Enterprise Linux, CentOS Stream, Rocky, AlmaLinux, Fedora, SUSE and Amazon Linux. An RPM file is a header section plus a compressed payload: the header carries the package's name, version, release, epoch and architecture, its declared dependencies, the complete file manifest with ownership, permissions and digests, the changelog, and the scriptlets that run at install, upgrade and removal time. The payload carries the files themselves.

The rpm command operates on that format and on a local database of what is installed. It installs, upgrades, freshens, removes, queries and verifies — and verification is the part most engineers never learn. Because the header records a digest, size, mode, owner and mtime for every file, RPM can tell you exactly which files on a running system have drifted from what the package shipped, which package owns a given path, and whether a package's signature matches a trusted key. That makes RPM as much a forensic tool as an installer.

Producing RPMs is a separate skill. A spec file declares metadata, sources and patches, then four ordered sections — prep, build, install and files — that rpmbuild executes inside a controlled directory tree. Dependency metadata is largely generated automatically by scanning the built files, macros keep paths portable across distributions and architectures, and mock builds the package inside a fresh chroot so the result does not silently depend on whatever happened to be installed on the build host.

Why this skill matters now

Enterprise Linux is not going anywhere. RPM-based distributions carry most regulated and long-lived server workloads, and every organisation running them eventually needs software that no upstream vendor packages: an internal agent, a patched library, a Java service that has to be managed by systemd, a compliance tool that must be installable and removable on demand.

The usual workaround — a tarball, a shell installer and a wiki page — fails the moment a fleet grows. Nothing owns the files, upgrades leave debris, removal is guesswork, and there is no way to prove what was installed on a host six months ago. A signed RPM in an internal repository answers all of that, and it costs a spec file.

There is also a security dimension. Signed packages and signed repository metadata are the mechanism by which an enterprise Linux estate establishes that the binaries it runs came from somewhere trusted. Teams building an internal software supply chain, running air-gapped or regulated environments, or responding to component-inventory requirements all end up needing someone who can read and write RPM properly rather than copy a spec file and hope.

RPM training
# outcomes

What your team can do afterwards

Query and verify an installed estate — which package owns a file, what has drifted, and what a package will do before you install it
Use install, upgrade, freshen and erase correctly, and recognise when --nodeps or --force is about to cause a problem
Check package signatures, import and manage GPG keys, and sign your own packages
Set up a clean rpmbuild environment and build both source and binary RPMs from a project tarball
Write a spec file from scratch: preamble, sources and patches, prep, build, install, files, changelog
Control dependency metadata with requires, provides, obsoletes and conflicts, and understand what is generated automatically
Write install, upgrade and removal scriptlets that behave correctly during an upgrade transaction, not just a first install
Build in a clean chroot with mock so the package does not inherit the build host's state
Publish packages to a signed yum/dnf repository and consume them across a fleet
# curriculum

10 modules. Live demos in a real lab, not slides.

01The RPM model and finding packagesLive & Interactive5 hrs · 2 assignments · 1 capstone

What an RPM file actually contains and what the local database tracks. Package naming and the NEVRA identity that dependency resolution is built on, the division of labour between the low-level rpm command and the dnf/yum resolver, and how to find the package you need in the first place.

Topics: Using RPM — the command, the format and the local database · Finding RPM Packages — distribution repositories, EPEL, vendor channels and rebuild sources · Package identity: name, epoch, version, release, architecture · Header and payload structure · rpm versus dnf/yum — what each layer is responsible for · Reading package metadata before installing anything

  • Assignments: (1) Locate three packages from different sources and compare their metadata; (2) Map the NEVRA of every package supplying a chosen shared library on a running host
  • Capstone: Produce an inventory note for one host: where every non-default package came from and who signs it
02Installing, upgrading, freshening and removingLive & Interactive5 hrs · 2 assignments · 1 capstone

The transactional operations and the differences that matter in production. Upgrade versus freshen, what happens to configuration files marked as config, how obsoletes drive replacement, and the two flags that turn a package manager into a file copier.

Topics: Installing — transaction planning, test mode, relocation · Uninstalling — removal ordering, leftover files and unowned directories · Upgrading — old package removal ordering and config file handling · Freshening — upgrading only what is already present, and when that is the right tool · Config file handling: rpmnew, rpmsave and noreplace · --nodeps and --force: what they suppress and the damage that follows

  • Assignments: (1) Run an upgrade in test mode and read the full transaction plan before committing it; (2) Deliberately create a file conflict between two packages and resolve it properly
  • Capstone: Document a safe patching procedure for a host class, including config-file drift handling
03Querying and verificationLive & Interactive5 hrs · 2 assignments · 1 capstone

The forensic half of RPM, and the part most engineers never use. Query the installed database or an uninstalled file, list files and their attributes, read scriptlets and changelogs before installing, and use verification to find every file on a system that no longer matches what shipped.

Topics: Querying — installed packages, package files, and query by file path · Query formats and custom output with --queryformat · Listing files, documentation, config files and dependencies · Reading scriptlets, triggers and changelogs from a package · Verifying — the verify output flags and what each character means · Whole-system verification and interpreting the noise

  • Assignments: (1) Find every file on a lab host that has drifted from its package, and explain each one; (2) Write a custom query format that produces a machine-readable package inventory
  • Capstone: Build a drift and inventory report for a host that an auditor could read
04Signatures, keys and trustLive & Interactive5 hrs · 2 assignments · 1 capstone

How an RPM-based system establishes that a binary came from somewhere trusted. Package signatures versus repository metadata signatures, importing and managing keys on a fleet, and signing your own packages so internal software gets the same guarantee as vendor software.

Topics: Checking a Package's Signature — header and payload signatures · Importing Keys — the RPM keyring and pubkey pseudo-packages · Verifying Signature of Packages across a repository · Generating a signing key and configuring %_gpg_name · Signing packages with rpmsign, including bulk resigning · Key distribution and rotation across a fleet

  • Assignments: (1) Generate a signing key, sign a package and verify it from a second host; (2) Detect an unsigned or wrongly signed package in a mixed set
  • Capstone: Define a signing and key-rotation policy for internally produced packages
05Practical operations and recoveryLive & Interactive5 hrs · 2 assignments · 1 capstone

The situations that actually generate support tickets. Extracting files from a package without installing it, rebuilding a corrupted database, resolving conflicts, downgrading safely, and the everyday query patterns worth committing to muscle memory.

Topics: Practical and Common Examples of RPM Usage · Extracting a package with rpm2cpio and rpm2archive · Rebuilding a corrupted RPM database · Downgrading and pinning a version · Duplicate and multilib package situations · Diagnosing dependency resolution failures at the dnf layer

  • Assignments: (1) Recover a host with a corrupted RPM database; (2) Extract a single file from a package without installing it and place it correctly
  • Capstone: Write an operational runbook covering the six most common RPM failures on your estate
06Setting up a build environmentLive & Interactive5 hrs · 2 assignments · 1 capstone

Everything that has to exist before rpmbuild is useful. The build directory tree and why building as root is a mistake, getting your project into a tarball the way rpmbuild expects, and the layout that keeps sources, spec files and outputs separate.

Topics: Creating a RPM Packages — the workflow end to end · create your rpm build env for RPM — rpmdev-setuptree and the ~/rpmbuild layout · create the tarball of your project — naming, top-level directory and versioning · Copy to the sources dir — SOURCES, SPECS, BUILD, BUILDROOT, RPMS, SRPMS · Why building as an unprivileged user matters · Required build tooling: rpm-build, rpmdevtools, rpmlint

  • Assignments: (1) Set up a complete build tree as a non-root user and confirm each directory's role; (2) Produce a correctly named and structured source tarball from a Git checkout
  • Capstone: Stand up a reusable build environment you keep for the rest of the course
07Inside the spec fileLive & Interactive5 hrs · 2 assignments · 1 capstone

The spec file section by section. The preamble and its metadata, sources and patches, the four build phases and what each is allowed to touch, the files list with attributes and directory ownership, and the changelog that becomes the package's history.

Topics: Inside a .spec file — overall structure and evaluation order · The preamble: Name, Version, Release, Summary, License, URL, Source, BuildArch · BuildRequires versus Requires — build-time and run-time dependencies · %prep, %build, %install and %check — what belongs in each · %files, %attr, %config, %doc, %dir and directory ownership · %changelog conventions and why the format is enforced · Running rpmlint and fixing what it reports

  • Assignments: (1) Annotate a real distribution spec file line by line; (2) Fix a spec file that installs files nothing owns
  • Capstone: Write a complete, rpmlint-clean spec file for an internal application
08Building your first packageLive & Interactive5 hrs · 2 assignments · 1 capstone

From spec file to installable artifact. Running rpmbuild through its stages, building the source RPM and the binary RPM, reading the build log when a stage fails, and inspecting the result before it goes anywhere near a real host.

Topics: Building a "Hello World" RPM — the smallest complete example · A complete hello.spec file, read in full · Building the package — rpmbuild stages and short-circuit options · build the source and the binary rpm — -bs, -bb, -ba and what each produces · Source RPMs: what they contain and why they are the reproducible unit · Inspecting the built package before shipping it · Reading and diagnosing a failed build log

  • Assignments: (1) Build both a source RPM and a binary RPM from your own spec file; (2) Break a build deliberately at each stage and diagnose it from the log alone
  • Capstone: Ship a working binary RPM plus its source RPM for a real internal tool
09Macros, scriptlets and dependency metadataLive & Interactive5 hrs · 2 assignments · 1 capstone

The features that separate a package that installs from a package that survives upgrades. Macros for portability across distributions and architectures, scriptlets and their argument semantics during upgrade, systemd integration, and controlling the dependency metadata that RPM generates automatically.

Topics: Macros: built-ins, %{_libdir}, %{_unitdir}, dist tags and defining your own · Conditional builds and distribution-specific sections · %pre, %post, %preun, %postun and the $1 argument during upgrade · systemd scriptlet macros for units, timers and presets · Triggers and file triggers · Automatic dependency generation, and filtering or overriding it · Requires, Provides, Obsoletes and Conflicts used deliberately · Subpackages and split -devel, -libs and -doc packages

  • Assignments: (1) Write scriptlets that behave correctly on first install, upgrade and removal; (2) Split a package into subpackages with correct inter-dependencies
  • Capstone: Package a systemd-managed service that upgrades in place without losing state
10Clean-room builds and repository distributionLive & Interactive5 hrs · 2 assignments · 1 capstone

Making builds reproducible and getting packages to hosts. Building inside a fresh chroot with mock so nothing leaks in from the build machine, then generating repository metadata, signing it and wiring it into a delivery pipeline.

Topics: The mock builds — chroot configuration, distribution and architecture targets · Building an SRPM in mock and diagnosing host-dependency leakage · Reproducibility concerns: timestamps, build paths and SOURCE_DATE_EPOCH · createrepo and repository metadata generation · Signing repository metadata and configuring clients to require it · Hosting an internal yum/dnf repository, including air-gapped mirrors · RPM builds in CI, with signing keys held outside the build agent · Retention, promotion channels and deprecating old builds

  • Assignments: (1) Build the same SRPM under mock for two distribution targets; (2) Publish a signed internal repository and install from it on a clean host
  • Capstone: Deliver a CI pipeline that builds in mock, signs, publishes and promotes RPMs across channels

Need this mapped to your stack?

We rebuild the agenda around the tools you actually run.

Request a custom agenda
# hands-on

Labs and capstones your engineers actually build

LAB · FORENSICS

Find every drifted file on a host

Use whole-system verification and targeted queries to identify every file that no longer matches its package, then explain each difference and decide what to do about it.

verifyquerydrift
LAB · TRUST

Sign, distribute and verify

Generate a GPG signing key, sign a set of packages, distribute the public key to a fleet and prove that an unsigned package is now rejected.

gpgrpmsignkeys
LAB · SPEC FILE

From tarball to installable package

Take a real application tarball and write a complete spec file with dependencies, a systemd unit, config-file handling and a clean rpmlint result.

specrpmbuildrpmlint
LAB · UPGRADES

Scriptlets that survive an upgrade

Write pre and post scriptlets that behave correctly across install, upgrade and removal, then prove it by upgrading a live service without losing its data.

scriptletssystemdupgrade
LAB · MOCK

Build in a clean chroot

Build the same source RPM under mock for two distribution targets, and track down the host dependency that only showed up once the build environment was clean.

mockchrootsrpm
CAPSTONE · PIPELINE

Signed internal repository from CI

Build in mock from CI, sign outside the build agent, publish to a signed repository, promote between channels and install on a fleet host.

createrepocipromotion
# ecosystem

The tools RPM sits next to

Red Hat Enterprise Linux
Fedora
Rocky Linux
AlmaLinux
dnf
yum
mock
createrepo
Koji
Ansible
Jenkins
Nexus

Who this is for

  • Linux system administrators maintaining an enterprise Linux estate
  • Build and release engineers who need to ship internal software as native packages
  • DevOps and platform engineers standardising software distribution across a fleet
  • SREs who need to verify and trace what is installed on production hosts
  • Security and compliance engineers implementing signed distribution
  • Developers whose software is deployed onto RPM-based systems

Pre-requisites

  • Comfortable on a Linux command line — files, permissions, users, services
  • Basic familiarity with an RPM-based distribution as a user
  • Have compiled or built software from source at least once
  • Some shell scripting: variables, conditionals, exit codes
  • Access to one or two RPM-based hosts, VMs or free-tier cloud instances for labs
# pricing

Straightforward pricing

Every plan includes 1 year of full LMS access — not just this course, the entire DevOpsSchool LMS: 20+ courses, 50+ tools, videos, quizzes, assignments and projects.

Self-paced video

₹833/mo

Billed yearly at ₹9,996

Enroll now

1-on-1 mentorship

₹99,999

Full program, private instructor

Enroll 1-on-1

Corporate / private batch

8–30 engineers · custom agenda · onsite or online · PO and GST invoicing

Get a custom quote

Refunds. If we cancel or postpone a cohort, you get a full refund within 15 days. There is no money-back guarantee otherwise.

Terms. Course material remains licensed to the attendee. Read the terms.

Your data. We don't share it with third parties. Privacy policy.

Every attendee gets a verifiable certificate

  • Issued per attendee on completion
  • Verifiable at devopsschool.com/certificates
  • Hard copy available on request
  • Corporate batches receive an attendance and assessment report
DevOpsSchool

RPM Training

Certificate of completion

# feedback

What engineers say

4.4 / 5 from 26 reviews on Trustpilot.

★★★★★
Very detailed explanation and has lots of patience in attending the questionnaire. Thanks again for your wonderful sessions.
Uttam Samudrala · Trustpilot
★★★★★
Good discussion, helped us to understand different tools in SRE.
Prashant Saxena · Trustpilot
★★★★★
Got good lab sessions which kept the new DevOps tool learnings to the point and it helped a lot in my career.
robin son · Trustpilot
★★★★★
I took Terraform training with the tutor named Mithilesh. I requested to tailor the course curriculum for my needs. He did an excellent job of showing me how to write the Terraform script per the instructions provided.
jason smith · Trustpilot
★★★★★
My experience with the AIOps training was positive. The course covered important topics in a structured way, and Rajesh Kumar explained the concepts patiently. I found the practical aspects particularly helpful because they made the technical content easier to understand.
AARTI KUMARI · Trustpilot
★★★★★
I was looking to improve my understanding of AIOps, and this training helped me achieve that goal. Rajesh Kumar explained the subject in a structured and practical manner. The sessions on different AIOps concepts were informative.
Sonali Tiwari · Trustpilot
# comparison

Why a named practitioner beats a marketplace listing

What mattersYouTube + blogsGeneric online courseFreelance marketplaceDevOpsSchool
Named practitionerNoRarelyVaries per bookingYes — same trainer each time
Production experienceUnknownUnknownUnverified20 years, named employers
Custom agendaNoNoSometimesBuilt from your stack
Onsite deliveryNoNoSometimesYes
Lab environmentNoneSandbox that expiresVariesYour own cloud — skill goes with you
AssessmentNoneQuizRarelyAssignments + capstone per module
Per-attendee certificatesNoSometimesRarelyYes
Corporate invoicingNoLimitedVariesPO and GST
Post-training supportNoneForum, time-limitedNoneLifetime forum access
# questions

Frequently asked

Can the agenda be customised for our stack?
Yes — that is the normal case for a private batch. We start with a discovery call, look at your distributions, build system and repository setup, and rebuild the module list around them. Examples then use your applications rather than a generic hello-world.
Do you deliver onsite?
Yes. Private batches run onsite at your premises, live online, or hybrid. You provide the room and the engineers; we bring the trainer, agenda, labs, assessment and certificates.
What lab environment do we need?
Attendees provision their own environment — free-tier AWS, Azure or GCP, or local VMs — running an RPM-based distribution such as Rocky, AlmaLinux or Fedora. Two hosts is ideal: one to build on, one to install onto.
How long does a private RPM batch take?
Typically two to three days. Consumption, querying, verification and signatures fit in a day; spec files, scriptlets, subpackages, mock and repository publication take the remaining time.
Do we need to know C or a compiled language to package software?
No. A large share of real packaging work is Java services, Python tools, shell utilities and configuration bundles. We cover compiled software because dependency generation is clearest there, but the spec file skills transfer directly.
Can you cover Debian packaging as well?
Yes, as an add-on day for mixed estates. The concepts map closely — control files instead of a spec preamble, maintainer scripts instead of scriptlets — and we teach the differences rather than repeating the theory.
Is mock really necessary if the build works on our agent?
It is, and the module makes the case empirically. A build that works on an agent frequently depends on something installed there by accident. Building in a fresh chroot exposes that immediately, and it is also what makes the build reproducible on a different machine.
What size are batches?
Private corporate batches run 8 to 30 engineers. Public Live & Interactive cohorts are capped at 10 so everyone gets time with the trainer.
Do attendees get a certificate?
Yes — every attendee receives a completion certificate, verifiable at devopsschool.com/certificates. Corporate batches also receive an attendance and assessment report.
What happens if someone misses a session?
Sessions are recorded and available in the LMS, and attendees keep LMS access for a year. For public cohorts, a missed session can be picked up in a later batch.
How do you handle invoicing and tax?
We support purchase orders and issue GST invoices where applicable. Corporate quotes are issued in your currency; INR remains the source price.
What is your refund position?
If we cancel or postpone a cohort, you receive a full refund within 15 days. There is no general money-back guarantee, and GST and gateway fees are not refunded.

Still deciding?

Tell us the team, the stack and the timeline. You'll get a straight answer, not a sales sequence.

Talk to an advisor
# same field

Other artifacts & packaging training

# ready when you are

Book a RPM trainer — or ask a question first.

  • No spam, no drip sequence
  • Syllabus in 60 seconds
  • A human reply within one business day

Prefer to call or email?

More ways to reach us on the contact page.

Talk to an advisorRequest a quote