Your SlideShare is downloading. ×
RPM Packaging 101 (Old)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

RPM Packaging 101 (Old)

2,424
views

Published on

A talk I gave to the Triangle Linux Users Group ( http://www.trilug.org/ ) on 11-Jan-2003 on how to build RPM packages. Probably fairly outdated at this point.

A talk I gave to the Triangle Linux Users Group ( http://www.trilug.org/ ) on 11-Jan-2003 on how to build RPM packages. Probably fairly outdated at this point.

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,424
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
39
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • 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..