1 / 13

RPM Packaging 101

RPM Packaging 101. Tanner Lovelace Triangle Linux Users Group 11/Jan/2003. Outline. Package Management Basics RPM Package Management Basics Creating Your Own RPM Packages Creating RPM Packages of Downloaded Programs Advanced RPM Packaging. Package Management Basics .

paulos
Download Presentation

RPM Packaging 101

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RPM Packaging 101 Tanner Lovelace Triangle Linux Users Group 11/Jan/2003

  2. Outline • Package Management Basics • RPM Package Management Basics • Creating Your Own RPM Packages • Creating RPM Packages of Downloaded Programs • Advanced RPM Packaging

  3. Package Management Basics • Why use package management? • OpenBSD base doesn’t • Most Linux systems do • Keeps track of system packages • Files • Descriptions • Checksums • Other… • Allows easy upgrades and uninstalls

  4. RPM Package Management Basics • Developed by Redhat • Dominant distribution at the time was Slackware • Slackware has packages, but not really a package management system • RPM was a big advance over Slackware • Current stable version is 4.1 • Most commonly used version today is 4.0.x • We will be covering 4.0.x

  5. RPM Package Concepts • Pristine Sources • Most Linux software downloaded from the Internet • Any distribution specific customizations should be kept separately in patches • Makes it easier to handle new versions • Reproducible Builds • Building and packaging should be easy and reproducible • Shell script automation

  6. Common RPM Installation Commands • Installation • rpm –ihv <package name> • Upgrade • rpm –Uhv <package name> • Freshen • rpm –Fhv <package names…> • Erase • rpm –e <package name>

  7. Other Common RPM Commands • Query • rpm –q[option] <package name> • -qi = Query Package Information • -ql = List Package Files • -qf = Query which package a file belongs to. • --queryformat – Construct Special Query • --querytags – List available tags • -p – Specify non-installed rpm package • -a – Query all installed files

  8. Other Common RPM Commands • Verify • rpm –V[option] <package name> • Compare information about installed package files with information stored in rpm database and note any discrepencies. • Compares size, MD5 sum, permissions, type, owner, and group of each package file • Signature checking • rpm {-K|--checksig} <package name> • Checks package gpg/pgp signature • Conversion to cpio • rpm2cpio cpio converts rpm files to cpio streams

  9. Setting up the RPM Build Environment • NEVER BUILD RPMs AS ROOT!!! • ~/.rpmmacros • %_topdir /path/to/rpm/build/env • I typically use ~/RPM • Optional temp directory • %_tmppath /path/to/tmp • Create directories • ~/RPM/BUILD • ~/RPM/RPMS/<arch> • ~/RPM/RPMS/noarch • ~/RPM/SOURCES • ~/RPM/SPECS • ~/RPM/SRPMS

  10. Creating Your Own RPMs • rpmbuild command • rpmbuild –ba – build binary and source rpms • rpmbuild –bb – build binary rpm • rpmbuild –bs – build source rpm • Before version 4, the rpm command was used instead of rpmbuild. • Compatibility aliases in 4.0 • Aliases removed in 4.1 (Redhat 8.0) • Need source files, patches (if any) and a spec file. • Source and patch files go in SOURCES/ • Spec file goes in SPECS/

  11. RPM Spec Files • Instructions for building and packaging an rpm. • Building – set of shell scripts • Packaging – General info, lists of files, etc. • Divided into sections • Headers (unlabeled section) • %description • %prep • %build • %install • %files • Others

  12. Creating RPMs Examples • See Pinky and the Brain Examples at http://home.fnal.gov/~dawson/rpms/howto/index.html • Sub package example • Example of how to “rpm-ify” a package. • Patching • Conditional building

  13. References • References will go here when presentation goes online..

More Related