Penguin
Diff: HowToRPMforUnixHOWTO
EditPageHistoryDiffInfoLikePages

Differences between current version and predecessor to the previous major change of HowToRPMforUnixHOWTO.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 3 Last edited on Tuesday, October 26, 2004 4:43:51 pm by AristotlePagaltzis
Older page: version 2 Last edited on Friday, June 7, 2002 1:07:23 am by perry Revert
@@ -1,1828 +1 @@
-  
-  
-  
-RPM-for-Unix HOW-TO  
-  
-  
-  
-----  
-  
-!!!RPM-for-Unix HOW-TO  
-  
-!!Al Dev (Alavoor Vasudevan)  
-alavoor [[AT ]yahoo.comv1.8, 27 Mar 2002  
-  
-  
-----  
-''This document will help you to setup Redhat RPM program on various Unix operating  
-systems like Solaris, AIX, Irix, HPUX and many others.  
-The information in this document applies to all flavors of Unix like - Solaris, HPUX, AIX, SCO, Sinix, BSD, NetBSD, Apple Macintosh (which is BSD),  
-!UnixWare, etc.. and may be  
-useful to other operating systems (MS Windows 2000) which support "C" compiler.''  
-----  
-  
-  
-  
-  
-!!1. Introduction  
-  
-  
-  
-  
-!!2. Install RPM  
-  
-  
-*2.1 Get Gnu "gcc"  
-  
-*2.2 Get BerkeleyDB  
-  
-  
-  
-  
-  
-!!3. BerkeleyDB and gcc  
-  
-  
-*3.1 Solaris - BerkeleyDB and gcc  
-  
-*3.2 AIX - BerkeleyDB and gcc  
-  
-*3.3 IRIX Silicon Graphics - BerkeleyDB and gcc  
-  
-*3.4 HPUX - BerkeleyDB and gcc  
-  
-*3.5 !UnixWare - BerkeleyDB and gcc  
-  
-*3.6 Apple Macintosh OS X (Unix) - BerkeleyDB and gcc  
-  
-  
-  
-  
-  
-!!4. Compiling RPM  
-  
-  
-*4.1 Troubleshooting RPM Compile  
-  
-  
-  
-  
-  
-!!5. Using RPM  
-  
-  
-*5.1 Basic RPM Commands  
-  
-*5.2 RPM Build Commands  
-  
-*5.3 RPM Query Commands  
-  
-*5.4 RPM Verify Commands  
-  
-  
-  
-  
-  
-!!6. Installing 8000 RPMs  
-  
-  
-*6.1 Bootstrap Programs - The Rocket Soars Up!!  
-  
-*6.2 Install Foundation RPMs  
-  
-*6.3 Troubleshoot Building Foundation RPMs  
-  
-  
-  
-  
-  
-!!7. Create gcc RPM Package  
-  
-  
-*7.1 Solaris Sparc gcc, glibc, kernel-headers and binutils  
-  
-*7.2 PowerPC gcc, glibc, kernel-headers and binutils  
-  
-*7.3 Create glibc RPM  
-  
-  
-  
-  
-  
-!!8. Use Debian Packages - Convert deb to rpm  
-  
-  
-*8.1 Debian Packing Program  
-  
-*8.2 Debian to Redhat RPM  
-  
-  
-  
-  
-  
-!!9. Convert RPM to Solaris Package rpm2pkg  
-  
-  
-  
-  
-!!10. Related URLs  
-  
-  
-  
-  
-!!11. Other Formats of this Document  
-  
-  
-*11.1 Acrobat PDF format  
-  
-*11.2 Convert Linuxdoc to Docbook format  
-  
-*11.3 Convert to MS !WinHelp format  
-  
-*11.4 Reading various formats  
-  
-*11.5 Convert HTML to SGML html2sgml  
-  
-  
-  
-  
-  
-!!12. Copyright  
-----  
-  
-!!1. Introduction  
-  
-  
-__(The latest version of this document is  
-at  
-http://www.milkywaygalaxy.freeservers.com. You may  
-want to check there for changes).__  
-  
-  
-Redhat RPM program is the key program to install Redhat Linux Source RPMs.  
-There are more than 8000 Redhat application programs available  
-on the internet in rpm source-code format. If you just install  
-__rpm__ program  
-on other flavors of Unix like Solaris, AIX, Irix or HPUX, then you can  
-very easily compile, build and install any of those 8000 application source  
-RPMs.  
-  
-  
-RPM is the "gateway" to thousands of applications and programs, which are in  
-source code rpm format.  
-  
-  
-Maintainence of application programs is extremely easy with RPM program.  
-You can very easily remove, add and upgrade the application package from the  
-system. Using RPM program you can query the system to find the list of  
-packages installed and you can even list the files installed by a particular  
-package. RPM program can also give the exact path locations of the files  
-installed by a particular package.  
-  
-  
-The upgrades and updates can be automated using the  
-__rpm__ program  
-and the Redhat Network support.  
-  
-  
-''The redhat __rpm__ program is extremely powerful, extremely easy to use and is the  
-most popular packaging program in the world. Packaging programs on other Unix platforms like  
-pkgadd, smitt are very primitive and are not as powerful as __rpm__ program. And  
-__rpm__ program is very portable and works on most Unix operating systems.''  
-  
-  
-The guidelines given here can be useful for setting up  
-Debian package program  
-__deb__ on Solaris and other Unix flavors.  
-GNU Debian Linux is another popular distribution and uses __deb__ program  
-which is similar to  
-__rpm__ program  
-. You can use either  
-__rpm__ or  
-__deb__ program.  
-----  
-  
-!!2. Install RPM  
-  
-  
-To install RPM program you need gcc and BerkeleyDB.  
-First you should decide the version of Redhat Linux which you want  
-to use. The versions of Redhat Linux are 7.1 (latest), 6.2, 5.x (old versions).  
-  
-  
-To build  
-__rpm__  
-package you need atleast BerkeleyDB and gcc compiler.  
-It is very important that you MUST select proper versions of gcc, BerkeleyDB  
-and RPM source based on whether you want to represent Redhat 7.1, Redhat 6.2  
-or 5.x. If you happen to have a Redhat Linux box then do -  
-----  
-  
-bash$ rpm -qa | grep -i gcc  
-bash$ rpm -qi gcc-2.96-81  
-bash$ rpm -qa | grep -i db3  
-bash$ rpm -qi db3-3.1.17-7  
-bash$ rpm -qa | grep -i rpm  
-bash$ rpm -qi rpm-4..2-8  
-  
-----  
-From above, you can get the proper version numbers.  
-  
-  
-__WARNING: ''If you do not use proper version numbers of  
-gcc, db3 and rpm combinations then RPM program may not compile or work properly.''__.  
-  
-  
-For example - to target Redhat Linux 7.1 on Solaris, you should use gcc version 2.96,  
-Sleepycat Berkeley DB version 3.1.17 and RPM source version 4..2.  
-Any other combination of versions __WILL NOT__ work.  
-  
-  
-You can see the list of files and programs needed to build rpm. Login on linux box and:  
-----  
-  
-bash$ rpm -qR rpm-4..2-8  
-gawk  
-fileutils  
-textutils  
-mktemp  
-popt  
-glibc >= 2.1.92  
-db1 = 1.85  
-/bin/sh  
-/bin/sh  
-/sbin/ldconfig  
-ld-linux.so.2  
-libbz2.so.1  
-libc.so.6  
-libdb-3.1.so  
-libdb.so.2  
-libpopt.so.  
-librpm.so.  
-librpmbuild.so.  
-librpmio.so.  
-libz.so.1  
-/bin/sh  
-libc.so.6(GLIBC_2.)  
-libc.so.6(GLIBC_2.1)  
-libc.so.6(GLIBC_2.1.3)  
-libc.so.6(GLIBC_2.2)  
-libdb.so.2(GLIBC_2.)  
-rpmlib(!CompressedFileNames) <= 3..4-1  
-bash$  
-To see to which package gawk belongs to do:  
-bash$ rpm -qif /usr/bin/gawk  
-Name : gawk Relocations: (not relocateable)  
-Version : 3..6 Vendor: Red Hat, Inc.  
-Group : Applications/Text Source RPM: gawk-3..6-1.src.rpm  
-  
-----  
-  
-!!2.1 Get Gnu "gcc"  
-  
-  
-  
-First, you need to install the Gnu C compiler gcc.  
-You can use one of the following three sources:  
-  
-  
-* Unix gcc package from  
-Solaris package  
-,  
-AIX package  
-,  
-IRIX package  
-,  
-HPUX package  
-,  
-!UnixWare package  
-,  
-Mac OS package  
-.  
-  
-  
-  
-  
-*  
-  
-* Redhat source rpm from cdrom or from  
-http://www.redhat.com  
-or from  
-http://www.rpmfind.net  
-  
-  
-  
-  
-*  
-  
-* Download binaries from  
-http://www.gnu.org  
-or  
-gcc-home  
-where you can find  
-gcc binary for Unix.  
-*  
-  
-  
-  
-If you downloaded Solaris/Unix package:  
-----  
-  
-# su - root  
-# man pkgadd  
-# pkgadd -d gcc-sparc*.pkg  
-  
-----  
-  
-  
-If you downloaded rpm package:  
-----  
-  
-bash$ mkdir my_temp_build  
-bash$ cd my_temp_build  
-bash$ rpm2cpio gcc-*.src.rpm | cpio -dimv  
-bash$ tar zxvf gcc*.tar.gz  
-bash$ cd gcc-2.96  
-bash$ ./configure  
-bash$ make  
-  
-----  
-  
-!!2.2 Get BerkeleyDB  
-  
-  
-  
-Second, you need to install the BerkeleyDB embedded database from  
-http://www.sleepycat.com.  
-RPM internally uses the embedded database BerkeleyDB to store the package information.  
-You can use one of the following three sources:  
-  
-  
-* Redhat source rpm from cdrom or from  
-http://www.redhat.com  
-or from  
-http://www.rpmfind.net  
-  
-  
-  
-  
-*  
-  
-* Download binaries from  
-http://www.sleepycat.com go here and see  
-Berkeley DB Patches and !ChangeLogs  
-scroll down and select proper version like 3.1.17 (one which matches with Redhat Linux 7.1).  
-  
-  
-  
-  
-*  
-  
-* Unix gcc package from  
-Solaris package  
-,  
-AIX package  
-,  
-IRIX package  
-,  
-HPUX package  
-,  
-!UnixWare package  
-,  
-Mac OS package  
-.  
-*  
-  
-  
-  
-If you downloaded source rpm or source tar.gz file:  
-----  
-  
-bash$ mkdir my_temp_build  
-bash$ cd my_temp_build  
-bash$ rpm2cpio db3-3.1.17-7.src.rpm | cpio -dimv  
-bash$ tar zxvf db3*.tar.gz  
-bash$ cd db3-3.1.17  
-bash$ cd build_unix  
-bash$ ../dist/configure --enable-compat185  
-bash$ make  
-bash$ make install  
-  
-----  
-  
-  
-If you downloaded Unix package:  
-----  
-  
-# su - root  
-# man pkgadd  
-# pkgadd -d db-3*-sparc*.pkg  
-  
-----  
-----  
-  
-!! 3. BerkeleyDB and gcc  
-  
-  
-Download BerkeleyDB and gcc for Unix as given below:  
-  
-!! 3.1 Solaris - BerkeleyDB and gcc  
-  
-  
-  
-You can get gcc and BerkeleyDB for Solaris from:  
-  
-  
-* Solaris gcc package from  
-http://www.sunfreeware.com  
-  
-  
-  
-  
-*  
-  
-* Sparc, Sun Solaris, Ultra Sparc  
-http://www.ultralinux.org  
-*  
-  
-  
-!! 3.2 AIX - BerkeleyDB and gcc  
-  
-  
-  
-You can get gcc and BerkeleyDB for AIX from:  
-  
-  
-* IBM main site  
-http://www-1.ibm.com/servers/aix/library and  
-download-site.  
-  
-  
-  
-  
-*  
-  
-* Univ of California AIX site  
-http://aixpdslib.seas.ucla.edu  
-  
-  
-  
-  
-*  
-  
-* Norcal org site  
-http://www.aiche-norcal.org/AIXtip/freeware.htm  
-  
-  
-  
-  
-*  
-  
-* Bull site  
-http://www.bull.de/pub  
-  
-  
-  
-  
-*  
-  
-*The PowerPC arch rpms are at  
-http://penguinppc.org.  
-*  
-  
-  
-!! 3.3 IRIX Silicon Graphics - BerkeleyDB and gcc  
-  
-  
-  
-You can get gcc and BerkeleyDB for SGI IRIX from:  
-  
-  
-* SGI main site  
-http://freeware.sgi.com  
-  
-  
-  
-  
-*  
-  
-* SGI freware alphabetical listing  
-http://freeware.sgi.com/index-by-alpha.html  
-*  
-  
-  
-!! 3.4 HPUX - BerkeleyDB and gcc  
-  
-  
-  
-You can get gcc and BerkeleyDB for HPUX from:  
-  
-  
-* Gnu gcc for HPUX  
-http://devresource.hp.com/!OpenSource/Tools/gcc/gcc.html  
-  
-  
-  
-  
-*  
-  
-* HPUX opensource tools  
-http://devresource.hp.com/!OpenSource/Tools  
-and  
-tool-list  
-  
-  
-  
-  
-*  
-  
-*  
-HPUX freeware  
-  
-  
-  
-  
-*  
-  
-* HPUX Porting and Archive Center  
-http://hpux.cs.utah.edu  
-and  
-alphabetical listing  
-and  
-Gnu  
-*  
-  
-  
-!! 3.5 !UnixWare - BerkeleyDB and gcc  
-  
-  
-  
-You can get gcc and BerkeleyDB for !UnixWare from:  
-  
-  
-* !FreeBird site  
-http://www.freebird.org  
-  
-  
-  
-  
-*  
-  
-* Skunkware site  
-http://www.sco.com/skunkware  
-  
-  
-  
-  
-*  
-  
-* Gnu gcc for  
-gcc-unixware  
-and  
-faq-site  
-*  
-  
-  
-!! 3.6 Apple Macintosh OS X (Unix) - BerkeleyDB and gcc  
-  
-  
-  
-You can get gcc and BerkeleyDB for Apple Macintosh OS X (which is BSD Unix) from:  
-  
-  
-* Gnu gcc for Apple Mac OS shipped with OS called "!ProjectBuilder IDE"  
-http://developer.apple.com/tools/projectbuilder  
-and  
-faq  
-  
-  
-  
-  
-*  
-  
-* List of Opensource packages for Mac  
-Darwin-project  
-  
-  
-  
-  
-*  
-  
-* See also  
-Fink Project  
-Fink uses Debian tools like dpkg and apt-get to provide powerful binary package management.  
-*  
-  
-----  
-  
-!!4. Compiling RPM  
-  
-  
-After building Berkeley DB3 and gcc, compile rpm program now.  
-Get rpm source code from one of the following two sources:  
-  
-  
-* Redhat source rpm from cdrom or from  
-http://www.redhat.com  
-or from  
-http://www.rpmfind.net and look for proper version like 7.1  
-  
-  
-  
-  
-*  
-  
-* Download source code of rpm from  
-http://www.rpm.org go here  
-and select proper version like 4..2 (one which matches with Redhat Linux 7.1).  
-Download from  
-ftp-site.  
-*  
-  
-  
-  
-  
-  
-  
-If you downloaded rpm*.tar.gz file:  
-----  
-  
-bash$ mkdir my_temp_build  
-bash$ cd my_temp_build  
-bash$ tar zxvf rpm*.tar.gz  
-bash$ cd rpm-4..2  
-bash$ export LIBS='-L/usr/local/BerkeleyDB.3.1/lib'  
-bash$ export CPPFLAGS='-I/usr/local/BerkeleyDB.3.1/include'  
-bash$ ./configure  
-bash$ make  
-  
-----  
-  
-  
-If you downloaded rpm source code file follow the steps below.  
-But you may need rpm2cpio program, which is packaged in rpm package. Get rpm package  
-(may be old version like 3.) from  
-Unix packages  
-.  
-----  
-  
-bash$ mkdir my_temp_build  
-bash$ cd my_temp_build  
-bash$ rpm2cpio rpm-4..2-8.src.rpm | cpio -dimv  
-bash$ tar zxvf rpm*.tar.gz  
-bash$ cd rpm-4..2  
-bash$ export LIBS='-L/usr/local/BerkeleyDB.3.1/lib'  
-bash$ export CPPFLAGS='-I/usr/local/BerkeleyDB.3.1/include'  
-bash$ ./configure  
-bash$ make  
-  
-----  
-  
-!! 4.1 Troubleshooting RPM Compile  
-  
-  
-  
-If you encounter any problem in compiling rpm program, you may have to do some minor  
-corrections.  
-  
-  
-In case of Solaris 8 and rpm v4..2, I got these problems:  
-  
-  
-* Error db3/db.h not found in lib/db3.c. Solution is - create a soft link:  
-----  
-  
-bash# ln -s /usr/local/BerkeleyDB.3.1.17/include /usr/include/db3  
-Or edit the file lib/db3.c and change  
-#include <db3/db.h>  
-to  
-#include <db.h>  
-  
-----  
-  
-  
-  
-  
-*  
-  
-* Edit Makefile and put -L before libmisc.a at line 186  
-  
-  
-  
-  
-*  
-  
-* Compile error in file rpmsort.c: Function errx() not found.  
-Solution is - edit the file rpmsort.c and copy and paste the  
-function errx() from misc/err*.c. Or comment out line having errx()  
-and put fprintf(stderr, "Error encountered - blah, blah"); exit();  
-*  
-  
-----  
-  
-!!5. Using RPM  
-  
-  
-See also  
-RPM-HOWTO document.  
-  
-!! 5.1 Basic RPM Commands  
-  
-  
-  
-In its simplest form, RPM can be used to install, erase or upgrade packages:  
-----  
-  
-bash# rpm -i foobar-1.-1.i386.rpm ...(to install packages)  
-bash# rpm -i ftp://ftp.redhat.com/pub/redhat/RPMS/foo-1.-1.i386.rpm ...(to install package via ftp)  
-bash# rpm -e foobar ...(to uninstall package)  
-bash# rpm -U foobar-1.-1.i386.rpm ...(to upgrade package)  
-bash# rpm --help ...(to see help on rpm options)  
-bash# man rpm ...(to read online manual page)  
-  
-----  
-  
-!! 5.2 RPM Build Commands  
-  
-  
-  
-To build rpm packages  
-----  
-  
-bash# rpm -i foobar*.src.rpm  
-bash# cd /usr/src/redhat/SPECS  
-bash# rpm -ba foobar-1.-1.spec  
-To build in incremental steps, do:  
-bash# rpm -bp foobar-1.-1.spec ...( to do prep stage)  
-bash# rpm --short-circuit -bc foobar-1.-1.spec ...( to do build stage)  
-bash# rpm --short-circuit -bi foobar-1.-1.spec ...( to do install stage)  
-bash# rpm -ba foobar-1.-1.spec ... (to do binary and source package)  
-  
-----  
-  
-!! 5.3 RPM Query Commands  
-  
-  
-  
-You can query the rpm database with these powerful commands:  
-----  
-  
-bash$ rpm -qpl foobar-1.-1.i386.rpm ....(list of files in a rpm package)  
-bash$ rpm -ql foobar-1.-1 ....(list of files from already installed package)  
-bash$ rpm -qpR foobar-1.-1.i386.rpm ....(list packages on which this package depends)  
-bash$ rpm -qR foobar-1.-1 ....(list packages on which this installed package depends)  
-bash$ # rpm -q foo ...(print package name, version, and release number of package foo)  
-foo-2.-1  
-bash$ rpm -qa | less ....(list all the installed package)  
-bash$ rpm -qa | grep -i kde ....(list all the installed package matching kde)  
-bash$ rpm -qif /bin/ls ....(list the package which installed the file /bin/ls)  
-To show the values RPM will use for all of the options that may be set in rpmrc files  
-(/usr/lib/rpm/rpmrc, /etc/rpmrc, ~/.rpmrc ), type:  
-bash$ rpm --showrc | less  
-  
-----  
-  
-!! 5.4 RPM Verify Commands  
-  
-  
-  
-Verifying a package compares information about files installed from a  
-package with the same information from the original package. Among other  
-things, verifying compares the size, MD5 sum, permissions, type, owner  
-and group of each file.  
-  
-  
-The command __rpm -V__ verifies a package. You can use any of the  
-Package Selection Options listed for querying to specify the packages  
-you wish to verify. A simple use is  
-__rpm -V__ foo which verifies that all the files in the foo package  
-are as they were when they were originally installed. For example:  
-  
-  
-  
-----  
-  
-bash$ rpm -Vf /bin/vi ...(To verify a package containing particular file)  
-bash$ rpm -Va ...(To verify ALL installed packages)  
-bash$ rpm -Vp foo-1.-1.i386.rpm ...(To verify an installed package against an RPM package file)  
-  
-----  
-This can be useful if you suspect that your RPM databases are corrupt.  
-  
-  
-If everything verified properly there will be no output. If there are any  
-discrepancies they will be displayed. The format of the output is a string  
-of 8 characters, a possible "c" denoting a configuration file, and then the  
-file name. Each of the 8 characters denotes the result of a comparison of one  
-attribute of the file to the value of that attribute  
-recorded in the RPM database. A single "." (period) means the test  
-passed. The following characters denote failure of certain tests:  
-----  
-  
-5 -- MD5 checksum  
-S -- File size  
-L -- Symbolic link  
-T -- File modification time  
-D -- Device  
-U -- User  
-G -- Group  
-M -- Mode (includes permissions and file type)  
-? -- Unreadable file  
-  
-----  
-If you see any output, use your best judgment to determine  
-if you should remove or reinstall the package, or otherwise fix the problem.  
-----  
-  
-!!6. Installing 8000 RPMs  
-  
-  
-Once RPM program is installed, it is a gateway to thousands of RPM packages  
-which can be easily installed on the system.  
-  
-  
-Prepare the rpm directories  
-----  
-  
-bash# su - root  
-bash# mkdir -p /usr/local/src/redhat/BUILD  
-bash# mkdir -p /usr/local/src/redhat/RPMS/sparc64  
-bash# mkdir -p /usr/local/src/redhat/RPMS/noarch  
-bash# mkdir -p /usr/local/src/redhat/SOURCES  
-bash# mkdir -p /usr/local/src/redhat/SPECS  
-bash# mkdir -p /usr/local/src/redhat/SRPMS  
-  
-----  
-  
-  
-You may want to edit the __rpmrc__ file. In case of solaris 8,  
-I had to remove the __-m64__ option for gcc, since it was giving compile errors.  
-To show the values, RPM will use for all of the options that may be set in rpmrc files  
-(/usr/local/lib/rpm/rpmrc, /usr/lib/rpm/rpmrc, /etc/rpmrc, /.rpmrc ), type:  
-----  
-  
-bash$ rpm --showrc | less  
-  
-----  
-  
-!! 6.1 Bootstrap Programs - The Rocket Soars Up!!  
-  
-  
-  
-Before building rpms you need the following basic programs:  
-  
-  
-* install program from fileutils*.tar.gz  
-*  
-  
-* patch*.tar.gz  
-*  
-  
-* autoconf*.tar.gz  
-*  
-  
-* automake*.tar.gz  
-*  
-  
-* libtool*.tar.gz  
-*  
-  
-* gcc*.tar.gz  
-*  
-  
-You should download the tar.gz files or  
-Unix packages  
-. I downloaded solaris packages for fileutils.pkg,  
-patch.pkg, libtool.pkg, gcc and others.  
-You should install them in a temporary location like $HOME/localtmp  
-----  
-  
-bash# mkdir $HOME/localtmp  
-bash# cd $HOME/localtmp  
-bash# gzip -d libtool*.tar.gz  
-bash# tar -xvf libtool*.tar  
-bash# ./configure --with-prefix=$HOME/localtmp  
-bash# make; make install  
-  
-----  
-You should include the temporary location of autoconf by:  
-----  
-  
-bash# PATH=$HOME/localtmp/bin:$PATH  
-bash# export PATH  
-  
-----  
-  
-!! 6.2 Install Foundation RPMs  
-  
-  
-  
-There are few basic rpms which must be installed before any other rpm is installed.  
-In this section, foundation rpms are listed which are found by using:  
-----  
-  
-bash# rpm -qR <packagename>  
-bash# rpm -qR textinfo  
-bash# rpm -qR fileutils  
-bash# rpm -qR setup  
-  
-----  
-  
-  
-The foundation rpms in the order of dependency are as follows:  
-  
-  
-* fileutils*.rpm  
-*  
-  
-* grep*.rpm (You may have to edit grep.spec and commentout --without-included-regex)  
-*  
-  
-* gawk*.rpm  
-*  
-  
-* sed*.rpm  
-*  
-  
-* texinfo*.rpm  
-*  
-  
-* zlib*.rpm and zlib-devel  
-*  
-  
-* patch*.rpm  
-*  
-  
-* setup*.rpm  
-*  
-  
-* filesystem*.rpm (You may not want install this if it effects /proc directory)  
-*  
-  
-* textutils*.rpm  
-*  
-  
-* glibc-common*.rpm  
-*  
-  
-* basesystem*.rpm  
-*  
-  
-* mktemp*.rpm  
-*  
-  
-* bash*.rpm  
-*  
-  
-* m4*.rpm (autoconf needs this)  
-*  
-  
-* autoconf  
-*  
-  
-* bison  
-*  
-  
-* binutils >= 2.9.1..25  
-*  
-  
-* gas, as, ld which are in binutils  
-*  
-  
-* shutils - for 'id' command  
-*  
-  
-  
-  
-Second stage foundation rpms are as follows.  
-After installing the foundation rpms, next important rpm is gcc, the order of rpms you need is:  
-  
-  
-* glibc*.rpm  
-*  
-  
-* binutils*.rpm  
-*  
-  
-* kernel-headers*.rpm  
-*  
-  
-* glibc-devel*.rpm  
-*  
-  
-* gcc*.rpm  
-*  
-  
-  
-  
-Third stage rpms are as follows:  
-  
-  
-* popt*.rpm  
-*  
-  
-* rpm*.rpm  
-*  
-  
-* perl*.rpm  
-*  
-  
-* And many others....  
-*  
-  
-  
-  
-As from previous section you should have exported temp  
-location of autoconf, gcc and other programs by:  
-----  
-  
-bash# PATH=$HOME/localtmp/bin:$PATH  
-bash# export PATH  
-bash# rpm -i fileutils*.src.rpm  
-bash# rpm -i zlib*.src.rpm  
-bash# rpm -i texinfo*.src.rpm  
-bash# cd /usr/local/src/redhat/SPECS  
-bash# rpm -ba fileutils.spec  
-  
-----  
-  
-  
-After the build is successful, install it with "nodeps and excludedocs" to minimize  
-the failures. After substantial installations of many foundation rpms you can "freshen"  
-the rpms with rpm command.  
-----  
-  
-bash# cd /usr/local/src/redhat/RPMS/sparc64  
-bash# rpm -i --nodeps --excludedocs fileutils*.rpm  
-  
-----  
-Move on to build and install the next rpm in the list texinfo, zlib, patch,....  
-  
-!! 6.3 Troubleshoot Building Foundation RPMs  
-  
-  
-  
-On Solaris 2.8, I encountered following problems which were fixed by  
-correcting the spec file:  
-  
-  
-* __texinfo*.rpm: __  
-Edit the file texinfo.spec and change __spec_install_post, %build and %install sections:  
-----  
-  
-%define Rpmpath /usr/local  
-%define __spec_install_post %{Rpmpath}/lib/rpm/brp-strip \; %{Rpmpath}/lib/rpm/brp-strip-comment-note \; rm -f  
-%build  
-%define _mandir %{_prefix}/share/man  
-%define _infodir %{_prefix}/share/info  
-%configure  
-%install  
-#mkdir -p ${RPM_BUILD_ROOT}/{etc,sbin} .....this line is causing problems  
-mkdir -p ${RPM_BUILD_ROOT}/etc  
-mkdir -p ${RPM_BUILD_ROOT}/sbin  
-  
-----  
-  
-  
-  
-  
-*  
-  
-* __textutils*.rpm: __  
-Create a new unix group called 'other'. Type 'groupadd other'  
-and see 'man groupadd'. Second problem - edit textutils.spec file and in %files section replace  
-hard-coded filenames/pathnames with %{_prefix}.  
-----  
-  
-%files  
-# replace below line  
-#/usr/bin/*  
-# with the line given below  
-%{_prefix}/bin/*  
-  
-----  
-  
-  
-  
-  
-*  
-  
-* __patch*.rpm: __  
-Edit patch.spec file and in %files section replace  
-hard-coded filenames/pathnames with %{_prefix}.  
-----  
-  
-%files  
-# replace below line  
-#/usr/bin/*  
-# with the line given below  
-%{_prefix}/bin/*  
-  
-----  
-  
-  
-  
-  
-*  
-  
-* __gawk*.rpm: __  
-Edit gawk.spec file and in %files section and %install section replace  
-hard-coded filenames/pathnames like /usr/something with %{_prefix}/something.  
-  
-  
-  
-  
-*  
-  
-* __m4*.rpm: __  
-Edit m4.spec file and in %build section, the configure takes only  
---prefix and --exec-prefix. Also comment out autoconf.  
-*  
-  
-----  
-  
-!!7. Create gcc RPM Package  
-  
-  
-The GNU gcc rpm is the most important rpm package which you should create after  
-successfully creating rpm of RPM package.  
-In order to create GNU gcc rpm package, you need to install rpms, unix pkgs or  
-manual configure and install the following (given in order of dependency) :  
-  
-  
-* texinfo  
-*  
-  
-* patch  
-*  
-  
-* zlib and zlib-devel  
-*  
-  
-* fileutils >= 4..41  
-*  
-  
-* m4 >= 1.1 (autoconf needs this)  
-*  
-  
-* autoconf  
-*  
-  
-* bison  
-*  
-  
-* binutils >= 2.9.1..25  
-*  
-  
-* gas, as, ld which are in binutils  
-*  
-  
-* cpp - manual install gcc  
-*  
-  
-* gawk  
-*  
-  
-* shutils - for 'id' command  
-*  
-  
-* pthreads - Posix threads library  
-*  
-  
-You should download the tar.gz files or  
-Unix packages  
-. I downloaded solaris packages for texinfo.pkd, fileutils.pkg,  
-patch.pkg, libtool.pkg, gcc and others.  
-If you download tar.gz source file then you should install them in a temporary  
-location like $HOME/localtmp  
-----  
-  
-bash# mkdir $HOME/localtmp  
-bash# cd $HOME/localtmp  
-bash# gzip -d libtool*.tar.gz  
-bash# tar -xvf libtool*.tar  
-bash# ./configure --with-prefix=$HOME/localtmp  
-bash# make; make install  
-  
-----  
-You should include the temporary location of autoconf by:  
-----  
-  
-bash# PATH=$HOME/localtmp/bin:$PATH  
-bash# export PATH  
-  
-----  
-  
-  
-Now you are ready to build gcc rpm:  
-----  
-  
-bash# rpm -i gcc*.src.rpm  
-bash# cd /usr/local/src/redhat/SPECS  
-bash# rpm -ba gcc*.spec  
-  
-----  
-On Solaris 2.8 I had to make few changes to gcc*.spec file:  
-  
-  
-# In %build section :  
-Insert __''--enable-hacker-mode''__ option for configure command.  
-This is to correct error  
-- "This configuration not supported in solaris 2.8".  
-If __''--enable-hacker-mode''__ option does not work then you may have to  
-comment out gcc_targetplatform within the code %ifarch sparc .... %endif,  
-just before the configure command.  
-  
-  
-  
-  
-#  
-  
-# In %build section :  
-For the configure command comment out %{_target_platform}, if configure fails.  
-  
-  
-  
-  
-#  
-  
-# In %install section: Comment out numprocs = $(getconf _NPROCESSORS)  
-and put numprocs=1. Since my box had 2 cpus I put numprocs=2. The solaris has /usr/bin/getconf  
-which is different from GNU getconf in glibc.  
-#  
-  
-Setup shared lib in solaris:  
-----  
-  
-solaris# cd /var/ld  
-solaris# man ld.so.1  
-solaris# man crle  
-solaris# crle < hit return to see config info>  
-solaris# crle /usr/lib:/usr/local/lib:/usr/local/pgsql/lib:/usr/local/BerkeleyDB.3.1/lib  
-  
-----  
-  
-!! 7.1 Solaris Sparc gcc, glibc, kernel-headers and binutils  
-  
-  
-  
-You can download the source code rpm for sparc from  
-sparc-gcc  
-or go to  
-http://www.rpmfind.net and type __sparc__ in the search field.  
-You can also download sparc-glibc, sparc-kernel-headers and sparc-binutils source rpms.  
-----  
-  
-solaris# rpm -i sparc-gcc*.src.rpm  
-solaris# cd /usr/local/src/redhat/SPECS  
-solaris# rpm -ba sparc-gcc.spec  
-  
-----  
-You may want to edit sparc-binutils.spec and  
-in %install section: Comment out numprocs = $(getconf _NPROCESSORS)  
-and put numprocs=1. Since my box had 2 cpus I put numprocs=2. The solaris has /usr/bin/getconf  
-which is different from GNU getconf in glibc. Also change %files section change  
-%doc /usr/man/man1/sparc-linux-ld.1.gz to  
-%doc /usr/man/man1/sparc-linux-ld.1.  
-  
-!! 7.2 PowerPC gcc, glibc, kernel-headers and binutils  
-  
-  
-  
-The PowerPC arch rpms are at  
-http://penguinppc.org.  
-  
-!! 7.3 Create glibc RPM  
-  
-  
-  
-If configure complains that your platform is not supported, then  
-you may want to edit glibc.spec file and in %configure section  
-put ''--enable-hacker-mode'',  
-  
-  
-For Solaris there is ready-made sparc-glibc*.src.rpm from  
-sparc-gcc  
-or go to  
-http://www.rpmfind.net and type __sparc__ in the search field.  
-  
-  
-The glibc needs the sparc-kernel-headers*.rpm which you can get from  
-sparc-gcc.  
-----  
-  
-!! 8. Use Debian Packages - Convert deb to rpm  
-  
-  
-Debian Linux is another popular distribution. You can use the debian packages  
-for Sparc, PowerPC, m68k, MIPS, Alpha, Arm, Intel X86 or Itanium.  
-  
-!! 8.1 Debian Packing Program  
-  
-  
-  
-  
-  
-  
-To build real debs that contain software, you'll need:  
-__binutils, cpp, cpio, dpkg-dev, file, gcc, libc6-dev, make, patch, perl dh-make, debhelper, devscripts, fakeroot__  
-and  
-__lintian__  
-. If your package needs to prompt the user for configuration information when it installs, get  
-__debconf__  
-.  
-  
-  
-The main debian programs you need to get are:  
-  
-  
-* dpkg-dev : This package contains the tools needed to create Debian archives. It also contains the Debian Programmers and Policy manuals.  
-  
-  
-  
-  
-*  
-  
-* debmake : This is a higher level set of tools for creating Debian packages. It makes the whole process tremendously easier.  
-  
-  
-  
-  
-*  
-  
-* debhelper : A collection of programs that can be used in a debian/rules file  
-to automate common tasks related to building debian packages. Programs are included  
-to install various files into your  
-package, compress files, fix file permissions, integrate your package with  
-the debian menu system, suidmanager, doc-base, etc. Most debian packages use  
-debhelper as part of their build process.  
-  
-  
-  
-  
-*  
-  
-* debconf : Debconf is a configuration management system for debian packages. Packages use Debconf to ask questions when they are installed.  
-  
-  
-  
-  
-*  
-  
-* apt-howto : A Guide to APT.  
-This manual tries to be a quick but complete source of information about the  
-APT system and its features.  
-It documents the main uses of APT with many examples. (You may want to edit apt-howto*.sgml and  
-change debiandoc to linuxdoc and run sgml2html).  
-*  
-  
-  
-  
-Get these from  
-http://www.debian.org/distrib/packages, go here and type  
-in the search box __dpkg-dev__ or __apt-howto__ and select Stable, Testing  
-or Unstable in the distribution.  
-Download and build on your Unix system (Solaris, AIX, HPUX).  
-  
-  
-See  
-Debian Package Management  
-, Debian  
-Policy Manual,  
-Debian  
-New Maintainer's Guide  
-and  
-apt+rpm howto.  
-  
-!! 8.2 Debian to Redhat RPM  
-  
-  
-  
-To install Debian packages on Sun Solaris 2.8 (Sparc/Ultra-sparc) I downloaded  
-all the debian packages for sparc from  
-http://www.debian.org. Go here and click on distribution->sparc.  
-Better still, purchase the Debian binary and source cdrom for Sparc (or for PowerPC, Alpha).  
-Use  
-__alien__ program to convert the debian packages to redhat __rpm__.  
-  
-  
-Get  
-__alien__ program  
-from  
-http://www.rpmfind.net.  
-----  
-  
-solaris# rpm -i alien*.src.rpm  
-solaris# rpm -ba alien.spec  
-solaris# rpm -i alien.sparc.rpm  
-solaris# alien -r glibc*.deb (..... this will create the rpm file)  
-solaris# rpm -i glibc-sparc*.rpm  
-  
-----  
-Convert all debian binary packages to rpm and install on Solaris 2.8 OS.  
-  
-  
-Note  
-__alien__ program  
-works only for binary debian packages.  
-----  
-  
-!!9. Convert RPM to Solaris Package rpm2pkg  
-  
-  
-After building and installing all the RPMs on Solaris (or any Unix), you can  
-convert those programs to Solaris (or any Unix) packages.  
-  
-  
-To convert Redhat rpm to Solaris package do:  
-----  
-  
-bash# mkdir -p $HOME/tmp/myprogram-1.4/usr/local  
-bash# cd $HOME/tmp/myprogram-1.4/usr/local  
-bash# rpm2cpio rpm-4..2-8.sparc64.rpm | cpio -dimv  
-bash# tar -xvf rpm*.tar.gz  
-bash# make_package  
-  
-----  
-  
-  
-And run the perl script __make_package__ given at  
-----  
-  
-!!10. Related URLs  
-  
-  
-  
-  
-  
-* Main site of RPM  
-http://www.rpm.org  
-  
-  
-  
-  
-*  
-  
-* Maximum RPM book  
-http://www.rpmdp.org/rpmbook/node1.html  
-  
-  
-  
-  
-*  
-  
-* RPM HOWTO  
-http://linuxdoc.org/HOWTO/RPM-HOWTO/index.html  
-  
-  
-  
-  
-*  
-  
-*  
-RH manual - rpm  
-  
-  
-  
-  
-*  
-  
-* RPM Finder  
-http://www.rpmfind.net  
-  
-  
-  
-  
-*  
-  
-* RPM related sofware  
-http://rpm.org/software.html  
-  
-  
-  
-  
-*  
-  
-* RPM mailing lists  
-http://rpm.org/mailing_list.html  
-  
-  
-  
-  
-*  
-  
-* Sparc, Sun Solaris, Ultra Sparc  
-http://www.ultralinux.org  
-  
-  
-  
-  
-*  
-  
-*The PowerPC arch rpms are at  
-http://penguinppc.org.  
-*  
-  
-  
-  
-  
-  
-  
-Linux goodies main site is at  
-http://www.milkywaygalaxy.freeservers.com  
-Mirror sites are at -  
-http://aldev0.webjump.com,  
-angelfire,  
-geocities,  
-virtualave,  
-50megs,  
-theglobe,  
-NBCi,  
-Terrashare,  
-Fortunecity,  
-Freewebsites,  
-Tripod,  
-Spree,  
-Escalix,  
-Httpcity,  
-Freeservers.  
-----  
-  
-!!11. Other Formats of this Document  
-  
-  
-This document is published in 14 different formats namely: DVI, Postscript,  
-Latex, Adobe Acrobat PDF,  
-LyX, GNU-info, HTML, RTF(Rich Text Format), Plain-text, Unix man pages, single  
-HTML file, SGML (Linuxdoc format), SGML (Docbook format), and MS !WinHelp format.  
-  
-  
-This howto document is located at:  
-  
-  
-*  
-http://www.linuxdoc.org and click on HOWTOs and search  
-for the howto document name using CTRL+f or ALT+f within the web-browser.  
-*  
-  
-  
-  
-You can also find this document at the following mirrors sites:  
-  
-  
-*  
-http://www.caldera.com/LDP/HOWTO  
-*  
-  
-*  
-http://www.linux.ucla.edu/LDP  
-*  
-  
-*  
-http://www.cc.gatech.edu/linux/LDP  
-*  
-  
-*  
-http://www.redhat.com/mirrors/LDP  
-  
-*  
-  
-* Other mirror sites near you (network-address-wise) can be found at  
-http://www.linuxdoc.org/mirrors.html  
-select a site and go to directory /LDP/HOWTO/xxxxx-HOWTO.html  
-*  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-*You can get this HOWTO document as a single file tar ball in HTML, DVI,  
-Postscript or SGML formats from -  
-ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO/other-formats/  
-and  
-http://www.linuxdoc.org/docs.html#howto  
-  
-  
-  
-  
-*  
-  
-*Plain text format is in:  
-ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO  
-and  
-http://www.linuxdoc.org/docs.html#howto  
-  
-  
-  
-  
-*  
-  
-*Single HTML file format is in:  
-http://www.linuxdoc.org/docs.html#howto  
-  
-  
- A single HTML file can be created with the command (see man sgml2html) -  
-sgml2html -split 0 xxxxhowto.sgml  
-  
-  
-  
-  
-*  
-  
-*Translations to other languages like French, German, Spanish,  
-Chinese, and Japanese are in  
-ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO  
-and  
-http://www.linuxdoc.org/docs.html#howto  
-Any help from you to translate to other languages is welcome.  
-*  
-  
-The document is written using a tool called "SGML-Tools" which can be got from:  
-http://www.sgmltools.org  
-Compiling the source you will get the following commands like:  
-  
-  
-*sgml2html xxxxhowto.sgml (to generate html file)  
-*  
-  
-*sgml2html -split 0 xxxxhowto.sgml (to generate a single page html file)  
-*  
-  
-*sgml2rtf xxxxhowto.sgml (to generate RTF file)  
-*  
-  
-*sgml2latex xxxxhowto.sgml (to generate latex file)  
-*  
-  
-  
-!! 11.1 Acrobat PDF format  
-  
-  
-  
-A PDF file can be generated from postscript file using  
-either acrobat __distill__ or __Ghostscript__.  
-And a postscript file is generated  
-from DVI which in turn is generated from a !LaTex file.  
-You can download distill software from  
-http://www.adobe.com  
-and from  
-unix  
-and from  
-windows  
-. Given below  
-is a sample session:  
-----  
-  
-bash$ man sgml2latex  
-bash$ sgml2latex filename.sgml  
-bash$ man dvips  
-bash$ dvips -o filename.ps filename.dvi  
-bash$ distill filename.ps  
-bash$ man ghostscript  
-bash$ man ps2pdf  
-bash$ ps2pdf input.ps output.pdf  
-bash$ acroread output.pdf &  
-  
-----  
-Or you can use the Ghostscript command __ps2pdf__.  
-ps2pdf is a work-alike for nearly all the functionality of  
-Adobe's Acrobat Distiller product: it  
-converts !PostScript files to Portable Document Format (PDF) files.  
-__ps2pdf__ is implemented as a very small command script  
-(batch file) that invokes Ghostscript, selecting a special "output device"  
-called __pdfwrite__. In order to use ps2pdf, the pdfwrite  
-device must be included in the makefile when Ghostscript was compiled;  
-see the documentation on building Ghostscript for details.  
-  
-!! 11.2 Convert Linuxdoc to Docbook format  
-  
-  
-  
-This document is written in linuxdoc SGML format. The Docbook SGML format  
-supercedes the linuxdoc format and has a lot more features than linuxdoc.  
-The linuxdoc is very simple and easy to use. To convert linuxdoc SGML  
-file to Docbook SGML use the program __ld2db.sh__ and some Perl scripts.  
-The ld2db output is not 100% clean and you need to use the __clean_ld2db.pl__  
-Perl script. You may need to manually correct a few lines in the document.  
-  
-  
-* Download the ld2db program from  
-http://www.dcs.gla.ac.uk/~rrt/docbook.html  
-or from  
-Milkyway Galaxy site  
-*  
-  
-* Download the cleanup_ld2db.pl perl script from  
-from  
-Milkyway Galaxy site  
-*  
-  
-The ld2db.sh is not 100% clean, so you will get some errors when you run it.  
-----  
-  
-bash$ ld2db.sh file-linuxdoc.sgml db.sgml  
-bash$ cleanup.pl db.sgml > db_clean.sgml  
-bash$ gvim db_clean.sgml  
-bash$ docbook2html db.sgml  
-  
-----  
-And you may have to manually edit some of the minor errors after  
-running the Perl script. For example you may need to put closing tag <  
-/Para> for each <  
-Listitem>  
-  
-!! 11.3 Convert to MS !WinHelp format  
-  
-  
-  
-You can convert the SGML howto document to a Microsoft Windows Help file,  
-First convert the sgml to html using:  
-----  
-  
-bash$ sgml2html xxxxhowto.sgml (to generate html file)  
-bash$ sgml2html -split 0 xxxxhowto.sgml (to generate a single page html file)  
-  
-----  
-Then use the tool  
-!HtmlToHlp.  
-You can also use sgml2rtf and then use the RTF files for generating winhelp files.  
-  
-!! 11.4 Reading various formats  
-  
-  
-  
-In order to view the document in dvi format, use the xdvi program. The xdvi  
-program is located in tetex-xdvi*.rpm package in Redhat Linux which can be  
-located through !ControlPanel | Applications | Publishing | TeX menu buttons.  
-To read a dvi document give the command:  
-  
-  
-xdvi -geometry 80x90 howto.dvi  
-man xdvi  
-  
-  
-And resize the window with the mouse.  
-To navigate use Arrow keys, Page Up, Page Down keys, also  
-you can use 'f', 'd', 'u', 'c', 'l', 'r', 'p', 'n' letter  
-keys to move up, down, center, next page, previous page etc.  
-To turn off expert menu press 'x'.  
-  
-  
-You can read a postscript file using the program 'gv' (ghostview) or  
-'ghostscript'.  
-The ghostscript program is in the ghostscript*.rpm package and the gv  
-program is in the gv*.rpm package in Redhat Linux  
-which can be located through !ControlPanel | Applications | Graphics menu  
-buttons. The gv program is much more user friendly than ghostscript.  
-Also ghostscript and gv are available on other platforms like OS/2,  
-Windows 95 and NT. You can view this document even on those platforms.  
-  
-  
-  
-  
-  
-*Get ghostscript for Windows 95, OS/2, and for  
-all OSes from  
-http://www.cs.wisc.edu/~ghost  
-*  
-  
-  
-  
-To read a postscript document give the command:  
-  
-  
-gv howto.ps  
-ghostscript howto.ps  
-  
-  
-  
-  
-You can read an HTML format document using Netscape Navigator, Microsoft Internet  
-explorer, Redhat Baron Web browser or any of the 10 other web browsers.  
-  
-  
-You can read the latex, LyX output using LyX an X Window front end to !LaTex.  
-  
-!! 11.5 Convert HTML to SGML html2sgml  
-  
-  
-  
-To convert any HTML document to Linuxdoc SGML use the tool 'html2sgml'  
-from  
-http://www.abc.se/~m9339/prog/html2sgml.html.  
-----  
-  
-!!12. Copyright  
-  
-  
-Copyright policy is GNU/GPL as per LDP (Linux Documentation project).  
-LDP is a GNU/GPL project.  
-Additional restrictions are - you must retain the author's name, email address  
-and this copyright notice on all the copies. If you make any changes  
-or additions to this document then you should  
-intimate all the authors of this document .  
-----  
+Describe [HowToRPMforUnixHOWTO ] here.