Building The Package
drks — Thu, 2007-01-18 07:54
Now that we have an understanding of our Spec file, lets try and build the package. The following commands assume that we are in the '/usr/src/redhat' directory:
[root@linuxbox redhat/]# rpmbuild -ba SPECS/pLsearch.bjd.spec Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.69853 + umask 022 + cd /usr/src/redhat/BUILD + cd /usr/src/redhat/BUILD + rm -rf pLsearch-0.1.7 + tar -xf - + /bin/gzip -dc /usr/src/redhat/SOURCES/pLsearch-0.1.7.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd pLsearch-0.1.7 ++ /usr/bin/id -u + '[' 0 = 0 ']' + /bin/chown -Rhf root . ++ /usr/bin/id -u + '[' 0 = 0 ']' + /bin/chgrp -Rhf root . + /bin/chmod -Rf a+rX,u+w,g-w,o-w . + echo 'Patch #0 (pLsearch-0.1.7-sample.patch):' Patch #0 (pLsearch-0.1.7-sample.patch): + patch -p1 -b --suffix .sample -s + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.69853 + umask 022 + cd /usr/src/redhat/BUILD + cd pLsearch-0.1.7 + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.69853 + umask 022 + cd /usr/src/redhat/BUILD + cd pLsearch-0.1.7 + '[' /var/tmp/pLsearch-0.1.7-root '!=' / ']' + rm -rf /var/tmp/pLsearch-0.1.7-root + mkdir -p /var/tmp/pLsearch-0.1.7-root/usr/bin + install -o root -m 755 pLsearch /var/tmp/pLsearch-0.1.7-root/usr/bin/pLsearch + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip + /usr/lib/rpm/brp-strip-static-archive + /usr/lib/rpm/brp-strip-comment-note Processing files: pLsearch-0.1.7-1.bjd Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.2435 + umask 022 + cd /usr/src/redhat/BUILD + cd pLsearch-0.1.7 + DOCDIR=/var/tmp/pLsearch-0.1.7-root/usr/share/doc/pLsearch-0.1.7 + export DOCDIR + rm -rf /var/tmp/pLsearch-0.1.7-root/usr/share/doc/pLsearch-0.1.7 + /bin/mkdir -p /var/tmp/pLsearch-0.1.7-root/usr/share/doc/pLsearch-0.1.7 + cp -pr README CHANGELOG /var/tmp/pLsearch-0.1.7-root/usr/share/doc/pLsearch-0.1.7 + exit 0 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /usr/bin/perl perl >= 5.8 perl(File::Locate) perl(Getopt::Long) perl(PerlIO::gzip) perl(strict) Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/pLsearch-0.1.7-root Wrote: /usr/src/redhat/SRPMS/pLsearch-0.1.7-1.bjd.src.rpm Wrote: /usr/src/redhat/RPMS/noarch/pLsearch-0.1.7-1.bjd.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.2435 + umask 022 + cd /usr/src/redhat/BUILD + cd pLsearch-0.1.7 + '[' /var/tmp/pLsearch-0.1.7-root '!=' / ']' + rm -rf /var/tmp/pLsearch-0.1.7-root + exit 0
What we are always hoping for is of course 'exit 0'. This means the package built without error, and successfully wrote the RPM packages as expected. You will see everything that rpmbuild is doing (thanks to the lovely 'set -x' in Bash). Take a few moment to examine how rpmbuild read our instructions and used them to build the package.
You will note towards the end that our files are written:
Wrote: /usr/src/redhat/SRPMS/pLsearch-0.1.7-1.bjd.src.rpm Wrote: /usr/src/redhat/RPMS/noarch/pLsearch-0.1.7-1.bjd.noarch.rpm
So, we now have our RPM... but what is it going to install, what does it need to install, and what do I get from it:
[root@linuxbox SPECS/]# rpm -qlp RPMS/noarch/pLsearch-0.1.7-1.bjd.noarch.rpm /usr/bin/pLsearch /usr/share/doc/pLsearch-0.1.7 /usr/share/doc/pLsearch-0.1.7/CHANGELOG /usr/share/doc/pLsearch-0.1.7/README [root@linuxbox redhat/]# rpm -qp --requires RPMS/noarch/pLsearch-0.1.7-1.bjd.noarch.rpm /usr/bin/perl perl >= 5.8 perl(File::Locate) perl(Getopt::Long) perl(PerlIO::gzip) perl(strict) rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 [root@linuxbox redhat/]# rpm -qp --provides RPMS/noarch/pLsearch-0.1.7-1.bjd.noarch.rpm pLsearch = 0.1.7-1.bjd
RSS Feed