Difference between revisions of "SBR600 RPM-Writing Lab"

From CDOT Wiki
Jump to: navigation, search
(Resources)
(Preparation)
Line 16: Line 16:
 
#* <code>yum groupinstall "Fedora Packager"</code>
 
#* <code>yum groupinstall "Fedora Packager"</code>
 
#* <code>yum install rpmlint yum-utils</code>
 
#* <code>yum install rpmlint yum-utils</code>
# Create the ~/rpmbuild directories and the ~/.rpmmacros file: <code>rpmdev-setuptree</code>
+
# Create the ~/rpmbuild directories and the ~/.rpmmacros file by running this command: <code>rpmdev-setuptree</code>
  
 
= Steps =
 
= Steps =

Revision as of 23:59, 16 January 2012

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 by running this command: 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.