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

Like this? Share it with your network

Share

RPM Packaging 101 (Old)

on

  • 4,023 views

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.

Statistics

Views

Total Views
4,023
Views on SlideShare
4,011
Embed Views
12

Actions

Likes
0
Downloads
37
Comments
0

2 Embeds 12

http://www.slideshare.net 11
http://www.slideee.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

RPM Packaging 101 (Old) 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..