Difference between revisions of "SBR600 RPM-Writing Lab"

From CDOT Wiki
Jump to: navigation, search
(Resources)
(Resources)
Line 7: Line 7:
 
* [[:category:RPM|Wiki pages on RPM]]
 
* [[:category:RPM|Wiki pages on RPM]]
 
* [[:fedora:PackageMaintainers|Fedora Package Maintainers page]]
 
* [[:fedora:PackageMaintainers|Fedora Package Maintainers page]]
 +
* [[:fedora:Packaging:ScriptletSnippets|Scriptlet Snippets]] - recipies for common scriptlets in spec files
 
** [[:fedora:PackageMaintainers/CreatingPackageHowTo|Packaging How-To]]
 
** [[:fedora:PackageMaintainers/CreatingPackageHowTo|Packaging How-To]]
 
* ''Fedora Linux'' chapter 5 (see Seneca Library website > eBooks > View All > Safari > Fedora Linux).
 
* ''Fedora Linux'' chapter 5 (see Seneca Library website > eBooks > View All > Safari > Fedora Linux).

Revision as of 11:47, 18 January 2011

Purpose

To create an RPM package.

Resources

Preparation

  1. Install the required packages:
    • yum groupinstall "Fedora Packager"
    • yum install rpmlint yum-utils
  2. Create the ~/rpmbuild directories and the ~/.rpmmacros file: rpmdev-setuptree

Steps

For each of the two packages you previously built from source:

  1. Put the package source code (tarball) in ~/rpmbuild/SOURCES
  2. Change to the SPECS directory: cd ~/rpmbuild/SPECS
  3. Create an empty skeleton spec file: rpmdev-newspec nameOfPackage
  4. Edit the specfile. Fill in the metadata and all of the required sections.
  5. Attempt to build your package: rpmbuild -ba nameOfPackage.spec
  6. If there are errors, edit the specfile and try building again. Repeat until the build is successful.
  7. When the build is successful, the binary RPMs will be placed in ~/rpmbuild/RPMS and the source RPM will be placed in ~/rpmbuild/SRPMS/

You should also test your build:

  1. Run the rpmlint command once for each of these files, giving the filename as the positional argument:
    • the spec file
    • the SRPM
    • each binary RPM
  2. Note any errors or warnings
  3. Attempt to address each of the errors or warnings. The fedora:Common_Rpmlint_issues page may be a useful resource.
    • If you cannot address each of the errors and warnings, bring information about the ones that you could not solve to the next class.

Deliverables

Write a blog post about your experience building these packages. Include notes about what worked and didn't work, and include a link to the spec files, SRPMs, and RPMs.