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

RPM Packaging 101 (Old)

on

  • 3,983 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
3,983
Views on SlideShare
3,971
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) RPM Packaging 101 (Old) Presentation Transcript

  • 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
    • 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
  • 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
  • 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
  • Common RPM Installation Commands
    • Installation
      • rpm –ihv <package name>
    • Upgrade
      • rpm –Uhv <package name>
    • Freshen
      • rpm –Fhv <package names…>
    • Erase
      • rpm –e <package name>
  • 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
  • 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
  • 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
  • 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/
  • 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
  • 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
  • References
    • References will go here when presentation goes online..