Minor spacing changes
[linux_from_scratch_hints.git] / rpm.txt
blob2f7120bc2fd125c44ae80f8ae6d03c96cdf80ab9
1 AUTHOR:         Jim Gifford <hints at jg555.com>
2                 With thanks to Kelldan <kelledin@users.sourceforge.net>
3                 Originally by Jason Gurtz <jason(at)tommyk(dot)com> rpm.txt
4                 Originally by Sergey Ostrovsky <sergey@linuxfromscratch.org> rpm_glibc22.txt
5                 
6 DATE:           2006-01-27
8 LICENSE:        GNU Free Documentation License Version 1.2
10 SYNOPSIS:       The RPM package is used for installing, building and maintaining
11                 '.rpm' packages
13 DESCRIPTION:    This hint will show you how to install rpm to be used with LFS.
15 PREREQUISITES:  From LFS Build : Zlib, Bzip2, Gzip, Gettext, Perl, Sed, and Tar.
16                 From BLFS : Berkeley DB, CVS, Expat, GnuPG, and Libxml2.
17                 From Other : See Dependencies
19 OPTIONAL
20 REQUISITES:     From BLFS : Python
22 HINT:
24 BACKGROUND:
26 RPM is a package manager of dubious value to the average LFS'er. However, 
27 certain closed-source commercial applications require it for installation. 
28 Additionally, playing with it may be of educational value, and it may 
29 ease administration of a large and diverse network of UNIX and UNIX-like 
30 computers. Maybe it can do more than simply "Ruining a Perfectly 
31 good Machine."
33 SOURCE:
35 RedHat is the maintainer and active developer of the RPM package. It's
36 home page is http://www.rpm.org/
38 There is a download site for RPM, but I recommend taken the snapshot from
39 their cvs to you don't have find the dependencies.
41 GET SOURCE:
43 The following information will download the current CVS version of RPM. It
44 will also fix a couple of build issues by removing wnh from the build. wnh
45 is not included as of this writing of the hint. In the future we should
46 be able not to remove it.
48 cvs -z 9 -d :pserver:anonymous@cvs.rpm.org:/cvs/devel co -r rpm-4_4 rpm
49 cd rpm
50 RPMVER="`cat configure.ac | grep AC_INIT | cut -f2 -d, | cut -f2 -d' '`"
51 sed -e 's|wnh/Makefile||g' configure.ac
52 sed -e 's|wnh/Makefile||g' Makefile.am
53 cd ..
54 mv rpm rpm-$RPMVER
55 tar jcvf rpm-$RPMVER.tar.bz2 rpm-$RPMVER
57 DEPENDENCIES:
59 Package Name:   beecrypt-4.1.2.tar.gz
60 Download here:  http://prdownloads.sourceforge.net/beecrypt/beecrypt-4.1.2.tar.gz?download
62 Build Beecrypt as follows:
64         ./configure --prefix=/usr --enable-shared &&
65         make &&
66         make install
68 Package Name:   neon-0.25.5.tar.gz
69 Download here:  http://www.webdav.org/neon/neon-0.25.5.tar.gz
71 Build Neon as follows:
73         ./configure --prefix=/usr --enable-shared &&
74         make &&
75         make install
77 PATCHES:
79 No Patches are required for the CVS version.
81 INSTALLATION:
83 First rebuild the configure and makefiles for rpm:
85         cd /usr/src/rpm*
86         ./autogen.sh --noconfigure
88 Build RPM as follows:
89         
90         Notes:
92                 If you have python installed, you can remove
93                 the --without-python.
95         For NPTL Based Machines:
97                 ./configure --prefix=/usr \
98                             --enable-posixmutexes \
99                             --without-selinux \
100                             --without-python \
101                             --without-javaglue &&
102                 make &&
103                 make install
105         For LinuxThreads Based Machines:
107                 ./configure --prefix=/usr \
108                             --disable-posixmutexes \
109                             --disable-pthreadsmutexes \
110                             --without-python \
111                             --without-selinux \
112                             --without-javaglue &&
113                 make &&
114                 make install
116 You will also need to create the proper lock directory for RPM to function
117 correction.
119         install -d /var/lock/rpm
121 At this point you will need to initialize the RPM database with the following
122 commands. Do not use this command if you are upgrading to a newer version of
123 RPM.
125         rpm --initdb --root=/
127 Use this command if your upgrading your RPM installation
128         
129         rpm --rebuilddb --root=/
131 You can disregard all the pointer warnings that fly by. When it's done, you
132 should be able to type:
134         rpm --version
136 A good final test of basic functionality is to download an RPM package.
137 This will be  someDumbProg-0.0.1.src.rpm  All it is is a tarball in 
138 disguise. To get at it simply:
140         rpm -i -vv someDumbProg-0.0.1.rpm
142 note from the -vv (extra verbose) output that the .tar.gz gets dumped in
143 /usr/local/src/redhat/SOURCES  along with maybe a patch file or other nice
144 extras.  Also note that the database itself is at /var/local/lib/rpm/Packages  
145 There are 3 levels of "rc" config files. global is /usr/local/lib/rpm/rpmrc  
146 Machine specific is /etc/rpmrc user level is ~/.rpmrc
148 # Optional Setup for Alien
150 Most LFS users don't want to use RPM, but rpm can benefit us when we are
151 trying to locate patches and source codes. The utility named alien can
152 convert these rpm packages into something more useful for use to us.
154 Package Name:   alien_8.61.tar.gz               (Alien 8.61)
155 Download here:  http://kitenet.net/programs/alien
157 INSTALLATION:
159 Alien is simple to install, here are the instructions.
161         perl Makefile.PL &&
162         make &&
163         make install
165 Alien is now ready for use. You can download a srpm or .src.rpm and
166 use the follow line to convert it into .tgz file
168         alien -t filename.rpm
170 This will create an archive file that can be extracted.
172 WARNING: When extracting the newly create .tgz file, use a separate 
173 directory, and move the file in before extracting. Files will be
174 extracted into the currect directory.
176 VERSION:        1.10
178 CHANGELOG:      1.10 Corrected Typos. Updated Programs.
179                 1.9 Updated svn
180                 1.8 Added missing depenencies for neon: expat and libxml2
181                 1.7 Fixed Typo's and updated instructions based on glibc
182                 1.6 Added missing dependencies: beecrypt and neon
183                 1.5 Updated to RPM 4.4.2 - Updated Alien to 8.50
184                 1.4 Fixed Email Address
185                 1.3 CVS to SVN Information
186                 1.2 Added Previous Authors Information
187                 1.1 Updated to New Format and New Version
188                 1.0 Adopted by Jim Gifford
190  New Version of this document can be viewed from
191         http://svn.jg555.com/svn/repos/hints/rpm.txt