mirror of https://github.com/tLDP/LDP
1370 lines
45 KiB
Plaintext
1370 lines
45 KiB
Plaintext
<!doctype linuxdoc system>
|
|
<!--
|
|
|
|
************************** begin comment *****************************
|
|
The following is the HOW-TO for setting up Redhat RPM and rpm
|
|
packages under various unix systems like Solaris, AIX, Irix, HPUX
|
|
etc..
|
|
This document is in the SGML format. You must use sgml package to
|
|
process this document
|
|
************************* end of comment *****************************
|
|
|
|
-->
|
|
<!--
|
|
************************** SGML USER GUIDE *****************************
|
|
The SGML user guide on linux is located at /usr/doc/sgml-tools
|
|
Read the example.sgml and guide.html documents.
|
|
Usage:
|
|
HTML sgml2html foo (Do not give extension .sgml here!!)
|
|
Text sgml2txt foo.sgml
|
|
Latex sgml2latex foo.sgml
|
|
|
|
Note: Use 2 dashes - before language, error while compiling
|
|
Postscript sgml2latex -language=english -o ps foo.sgml
|
|
DVI sgml2latex -d foo.sgml
|
|
Lyx sgml2lyx foo.sgml
|
|
Richtext sgml2rtf foo.sgml
|
|
gnuinfo sgml2info foo.sgml
|
|
man sgml2txt -man foo.sgml
|
|
SGML sgmlcheck foo.sgml
|
|
************************* end of comment *****************************
|
|
-->
|
|
|
|
<article>
|
|
|
|
<!-- Title information -->
|
|
|
|
<title>RPM-for-Unix HOW-TO
|
|
<!-- chapt change
|
|
RPM-Solaris-AIX-Irix-HPUX HOW-TO
|
|
|
|
|
|
|
|
-->
|
|
<author>Al Dev (Alavoor Vasudevan)
|
|
<htmlurl url="mailto:alavoor[AT]yahoo.com"
|
|
name="alavoor[AT]yahoo.com">
|
|
<date>v1.8, 27 Mar 2002
|
|
<abstract>
|
|
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.
|
|
</abstract>
|
|
|
|
<!-- Table of contents -->
|
|
<toc>
|
|
|
|
<!-- Begin the document -->
|
|
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
|
|
|
|
|
|
<chapt>Introduction
|
|
-->
|
|
<sect>Introduction
|
|
<p>
|
|
<bf>
|
|
(The latest version of this document is
|
|
at <url url="http://www.milkywaygalaxy.freeservers.com">. You may
|
|
want to check there for changes).
|
|
</bf>
|
|
|
|
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
|
|
<bf>rpm</bf> 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
|
|
<bf>rpm</bf> program
|
|
and the Redhat Network support.
|
|
|
|
<it>The redhat <bf>rpm</bf> 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 <bf>rpm</bf> program. And
|
|
<bf>rpm</bf> program is very portable and works on most Unix operating systems.</it>
|
|
|
|
The guidelines given here can be useful for setting up
|
|
Debian package program
|
|
<bf>deb</bf> on Solaris and other Unix flavors.
|
|
GNU Debian Linux is another popular distribution and uses <bf>deb</bf> program
|
|
which is similar to
|
|
<bf>rpm</bf> program
|
|
. You can use either
|
|
<bf>rpm</bf> or
|
|
<bf>deb</bf> program.
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
|
|
|
|
|
|
<chapt>Install RPM
|
|
-->
|
|
<sect>Install RPM
|
|
<p>
|
|
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
|
|
<bf>rpm</bf>
|
|
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 -
|
|
<code>
|
|
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.0.2-8
|
|
</code>
|
|
From above, you can get the proper version numbers.
|
|
|
|
<bf>WARNING: <it>If you do not use proper version numbers of
|
|
gcc, db3 and rpm combinations then RPM program may not compile or work properly.
|
|
</it></bf>.
|
|
|
|
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.0.2.
|
|
Any other combination of versions <bf>WILL NOT</bf> work.
|
|
|
|
You can see the list of files and programs needed to build rpm. Login on linux box and:
|
|
<code>
|
|
bash$ rpm -qR rpm-4.0.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.0
|
|
librpm.so.0
|
|
librpmbuild.so.0
|
|
librpmio.so.0
|
|
libz.so.1
|
|
/bin/sh
|
|
libc.so.6(GLIBC_2.0)
|
|
libc.so.6(GLIBC_2.1)
|
|
libc.so.6(GLIBC_2.1.3)
|
|
libc.so.6(GLIBC_2.2)
|
|
libdb.so.2(GLIBC_2.0)
|
|
rpmlib(CompressedFileNames) <= 3.0.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.0.6 Vendor: Red Hat, Inc.
|
|
Group : Applications/Text Source RPM: gawk-3.0.6-1.src.rpm
|
|
</code>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1>Get Gnu "gcc"
|
|
<p>
|
|
First, you need to install the Gnu C compiler gcc.
|
|
You can use one of the following three sources:
|
|
<itemize>
|
|
<item> Unix gcc package from
|
|
<ref id="Solaris package">,
|
|
<ref id="AIX package">,
|
|
<ref id="IRIX package">,
|
|
<ref id="HPUX package">,
|
|
<ref id="UnixWare package">,
|
|
<ref id="Mac OS package">.
|
|
<p>
|
|
<item> Redhat source rpm from cdrom or from <url url="http://www.redhat.com">
|
|
or from <url url="http://www.rpmfind.net">
|
|
<p>
|
|
<item> Download binaries from <url url="http://www.gnu.org">
|
|
or <url name="gcc-home" url="http://www.gnu.org/software/gcc/gcc.html">
|
|
where you can find <url name="gcc binary for Unix" url="http://www.gnu.org/software/gcc/install/binaries.html">.
|
|
</itemize>
|
|
|
|
If you downloaded Solaris/Unix package:
|
|
<code>
|
|
# su - root
|
|
# man pkgadd
|
|
# pkgadd -d gcc-sparc*.pkg
|
|
</code>
|
|
|
|
If you downloaded rpm package:
|
|
<code>
|
|
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
|
|
</code>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1>Get BerkeleyDB
|
|
<p>
|
|
Second, you need to install the BerkeleyDB embedded database from
|
|
<url url="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:
|
|
<itemize>
|
|
<item> Redhat source rpm from cdrom or from <url url="http://www.redhat.com">
|
|
or from <url url="http://www.rpmfind.net">
|
|
<p>
|
|
<item> Download binaries from
|
|
<url url="http://www.sleepycat.com"> go here and see
|
|
<url name="Berkeley DB Patches and ChangeLogs" url="http://www.sleepycat.com/update/index.html">
|
|
scroll down and select proper version like 3.1.17 (one which matches with Redhat Linux 7.1).
|
|
<p>
|
|
<item> Unix gcc package from
|
|
<ref id="Solaris package">,
|
|
<ref id="AIX package">,
|
|
<ref id="IRIX package">,
|
|
<ref id="HPUX package">,
|
|
<ref id="UnixWare package">,
|
|
<ref id="Mac OS package">.
|
|
</itemize>
|
|
|
|
If you downloaded source rpm or source tar.gz file:
|
|
<code>
|
|
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
|
|
</code>
|
|
|
|
If you downloaded Unix package:
|
|
<code>
|
|
# su - root
|
|
# man pkgadd
|
|
# pkgadd -d db-3*-sparc*.pkg
|
|
</code>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
|
|
|
|
|
|
<chapt>BerkeleyDB and gcc
|
|
-->
|
|
<sect>BerkeleyDB and gcc <label id="Unix packages">
|
|
<p>
|
|
Download BerkeleyDB and gcc for Unix as given below:
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1>Solaris - BerkeleyDB and gcc
|
|
<label id="Solaris package">
|
|
<p>
|
|
You can get gcc and BerkeleyDB for Solaris from:
|
|
<itemize>
|
|
<item> Solaris gcc package from <url url="http://www.sunfreeware.com">
|
|
<p>
|
|
<item> Sparc, Sun Solaris, Ultra Sparc <url url="http://www.ultralinux.org">
|
|
</itemize>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1>AIX - BerkeleyDB and gcc
|
|
<label id="AIX package">
|
|
<p>
|
|
You can get gcc and BerkeleyDB for AIX from:
|
|
<itemize>
|
|
<item> IBM main site <url url="http://www-1.ibm.com/servers/aix/library"> and
|
|
<url name="download-site" url="http://www-1.ibm.com/servers/aix/library/downloads.html">.
|
|
<p>
|
|
<item> Univ of California AIX site <url url="http://aixpdslib.seas.ucla.edu">
|
|
<p>
|
|
<item> Norcal org site <url url="http://www.aiche-norcal.org/AIXtip/freeware.htm">
|
|
<p>
|
|
<item> Bull site <url url="http://www.bull.de/pub">
|
|
<p>
|
|
<item>The PowerPC arch rpms are at <url url="http://penguinppc.org">.
|
|
</itemize>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1>IRIX Silicon Graphics - BerkeleyDB and gcc
|
|
<label id="IRIX package">
|
|
<p>
|
|
You can get gcc and BerkeleyDB for SGI IRIX from:
|
|
<itemize>
|
|
<item> SGI main site <url url="http://freeware.sgi.com">
|
|
<p>
|
|
<item> SGI freware alphabetical listing <url url="http://freeware.sgi.com/index-by-alpha.html">
|
|
</itemize>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1>HPUX - BerkeleyDB and gcc
|
|
<label id="HPUX package">
|
|
<p>
|
|
You can get gcc and BerkeleyDB for HPUX from:
|
|
<itemize>
|
|
<item> Gnu gcc for HPUX <url url="http://devresource.hp.com/OpenSource/Tools/gcc/gcc.html">
|
|
<p>
|
|
<item> HPUX opensource tools <url url="http://devresource.hp.com/OpenSource/Tools">
|
|
and <url name="tool-list" url="http://devresource.hp.com/OpenSource/Tools/OpenSourceLib.html">
|
|
<p>
|
|
<item> <url name="HPUX freeware" url="http://bak-px.online.sh.cn/mirrors/hpux.freeware">
|
|
<p>
|
|
<item> HPUX Porting and Archive Center <url url="http://hpux.cs.utah.edu">
|
|
and <url name="alphabetical listing" url="http://hpux.cs.utah.edu/hppd/hpux">
|
|
and <url name="Gnu" url="http://hpux.cs.utah.edu/hppd/hpux/Gnu/alpha.html">
|
|
</itemize>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1>UnixWare - BerkeleyDB and gcc
|
|
<label id="UnixWare package">
|
|
<p>
|
|
You can get gcc and BerkeleyDB for UnixWare from:
|
|
<itemize>
|
|
<item> FreeBird site <url url="http://www.freebird.org">
|
|
<p>
|
|
<item> Skunkware site <url url="http://www.sco.com/skunkware">
|
|
<p>
|
|
<item> Gnu gcc for
|
|
<url name="gcc-unixware" url="http://www.freebird.org/sw-map/developer.html">
|
|
and
|
|
<url name="faq-site" url="http://www.faqs.org/faqs/unix-faq/unixware/overview/section-1.html">
|
|
</itemize>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1>Apple Macintosh OS X (Unix) - BerkeleyDB and gcc
|
|
<label id="Mac OS package">
|
|
<p>
|
|
You can get gcc and BerkeleyDB for Apple Macintosh OS X (which is BSD Unix) from:
|
|
<itemize>
|
|
<item> Gnu gcc for Apple Mac OS shipped with OS called "ProjectBuilder IDE"
|
|
<url url="http://developer.apple.com/tools/projectbuilder">
|
|
and
|
|
<url name="faq" url="http://maccentral.macworld.com/news/0007/13.macosx.shtml">
|
|
<p>
|
|
<item> List of Opensource packages for Mac <url name="Darwin-project" url="http://www.publicsource.apple.com/projects/darwin/1.2/projects.html">
|
|
<p>
|
|
<item> See also <url name="Fink Project" url="http://fink.sourceforge.net">
|
|
Fink uses Debian tools like dpkg and apt-get to provide powerful binary package management.
|
|
</itemize>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
|
|
|
|
|
|
<chapt>Compiling RPM
|
|
-->
|
|
<sect>Compiling RPM
|
|
<p>
|
|
After building Berkeley DB3 and gcc, compile rpm program now.
|
|
Get rpm source code from one of the following two sources:
|
|
<itemize>
|
|
<item> Redhat source rpm from cdrom or from <url url="http://www.redhat.com">
|
|
or from <url url="http://www.rpmfind.net"> and look for proper version like 7.1
|
|
<p>
|
|
<item> Download source code of rpm from
|
|
<url url="http://www.rpm.org"> go here
|
|
and select proper version like 4.0.2 (one which matches with Redhat Linux 7.1).
|
|
Download from <url name="ftp-site" url="ftp://ftp.rpm.org/pub">.
|
|
</itemize>
|
|
|
|
|
|
If you downloaded rpm*.tar.gz file:
|
|
<code>
|
|
bash$ mkdir my_temp_build
|
|
bash$ cd my_temp_build
|
|
bash$ tar zxvf rpm*.tar.gz
|
|
bash$ cd rpm-4.0.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
|
|
</code>
|
|
|
|
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.0) from
|
|
<ref id="Unix packages">.
|
|
<code>
|
|
bash$ mkdir my_temp_build
|
|
bash$ cd my_temp_build
|
|
bash$ rpm2cpio rpm-4.0.2-8.src.rpm | cpio -dimv
|
|
bash$ tar zxvf rpm*.tar.gz
|
|
bash$ cd rpm-4.0.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
|
|
</code>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1> Troubleshooting RPM Compile<label id="troubleshoot">
|
|
<p>
|
|
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.0.2, I got these problems:
|
|
<itemize>
|
|
<item> Error db3/db.h not found in lib/db3.c. Solution is - create a soft link:
|
|
<code>
|
|
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>
|
|
</code>
|
|
<p>
|
|
<item> Edit Makefile and put -L before libmisc.a at line 186
|
|
<p>
|
|
<item> 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(0);
|
|
</itemize>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
|
|
|
|
|
|
<chapt>Using RPM
|
|
-->
|
|
<sect>Using RPM
|
|
<p>
|
|
See also <url name="RPM-HOWTO" url="http://linuxdoc.org/HOWTO/RPM-HOWTO/use.html"> document.
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1> Basic RPM Commands<label id="basicrpm">
|
|
<p>
|
|
In its simplest form, RPM can be used to install, erase or upgrade packages:
|
|
<code>
|
|
bash# rpm -i foobar-1.0-1.i386.rpm ...(to install packages)
|
|
bash# rpm -i ftp://ftp.redhat.com/pub/redhat/RPMS/foo-1.0-1.i386.rpm ...(to install package via ftp)
|
|
bash# rpm -e foobar ...(to uninstall package)
|
|
bash# rpm -U foobar-1.0-1.i386.rpm ...(to upgrade package)
|
|
bash# rpm --help ...(to see help on rpm options)
|
|
bash# man rpm ...(to read online manual page)
|
|
</code>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1>RPM Build Commands<label id="buildrpm">
|
|
<p>
|
|
To build rpm packages
|
|
<code>
|
|
bash# rpm -i foobar*.src.rpm
|
|
bash# cd /usr/src/redhat/SPECS
|
|
bash# rpm -ba foobar-1.0-1.spec
|
|
|
|
To build in incremental steps, do:
|
|
bash# rpm -bp foobar-1.0-1.spec ...( to do prep stage)
|
|
bash# rpm --short-circuit -bc foobar-1.0-1.spec ...( to do build stage)
|
|
bash# rpm --short-circuit -bi foobar-1.0-1.spec ...( to do install stage)
|
|
bash# rpm -ba foobar-1.0-1.spec ... (to do binary and source package)
|
|
</code>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1>RPM Query Commands<label id="queryrpm">
|
|
<p>
|
|
You can query the rpm database with these powerful commands:
|
|
<code>
|
|
bash$ rpm -qpl foobar-1.0-1.i386.rpm ....(list of files in a rpm package)
|
|
bash$ rpm -ql foobar-1.0-1 ....(list of files from already installed package)
|
|
|
|
bash$ rpm -qpR foobar-1.0-1.i386.rpm ....(list packages on which this package depends)
|
|
bash$ rpm -qR foobar-1.0-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.0-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
|
|
</code>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1>RPM Verify Commands<label id="verifyrpm">
|
|
<p>
|
|
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 <bf>rpm -V</bf> 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
|
|
<bf>rpm -V</bf> foo which verifies that all the files in the foo package
|
|
are as they were when they were originally installed. For example:
|
|
|
|
<code>
|
|
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.0-1.i386.rpm ...(To verify an installed package against an RPM package file)
|
|
</code>
|
|
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:
|
|
<code>
|
|
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
|
|
</code>
|
|
If you see any output, use your best judgment to determine
|
|
if you should remove or reinstall the package, or otherwise fix the problem.
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
|
|
|
|
|
|
<chapt>Installing 8000 RPMs
|
|
-->
|
|
<sect>Installing 8000 RPMs
|
|
<p>
|
|
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
|
|
<code>
|
|
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
|
|
</code>
|
|
|
|
You may want to edit the <bf>rpmrc</bf> file. In case of solaris 8,
|
|
I had to remove the <bf>-m64</bf> 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:
|
|
<code>
|
|
bash$ rpm --showrc | less
|
|
</code>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1> Bootstrap Programs - The Rocket Soars Up!!<label id="bootstrap">
|
|
<p>
|
|
Before building rpms you need the following basic programs:
|
|
<itemize>
|
|
<item> install program from fileutils*.tar.gz
|
|
<item> patch*.tar.gz
|
|
<item> autoconf*.tar.gz
|
|
<item> automake*.tar.gz
|
|
<item> libtool*.tar.gz
|
|
<item> gcc*.tar.gz
|
|
</itemize>
|
|
You should download the tar.gz files or
|
|
<ref id="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
|
|
<code>
|
|
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
|
|
</code>
|
|
You should include the temporary location of autoconf by:
|
|
<code>
|
|
bash# PATH=$HOME/localtmp/bin:$PATH
|
|
bash# export PATH
|
|
</code>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1> Install Foundation RPMs <label id="foundationrpm">
|
|
<p>
|
|
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:
|
|
<code>
|
|
bash# rpm -qR <packagename>
|
|
bash# rpm -qR textinfo
|
|
bash# rpm -qR fileutils
|
|
bash# rpm -qR setup
|
|
</code>
|
|
|
|
The foundation rpms in the order of dependency are as follows:
|
|
<itemize>
|
|
<item> fileutils*.rpm
|
|
<item> grep*.rpm (You may have to edit grep.spec and commentout --without-included-regex)
|
|
<item> gawk*.rpm
|
|
<item> sed*.rpm
|
|
<item> texinfo*.rpm
|
|
<item> zlib*.rpm and zlib-devel
|
|
<item> patch*.rpm
|
|
<item> setup*.rpm
|
|
<item> filesystem*.rpm (You may not want install this if it effects /proc directory)
|
|
<item> textutils*.rpm
|
|
<item> glibc-common*.rpm
|
|
<item> basesystem*.rpm
|
|
<item> mktemp*.rpm
|
|
<item> bash*.rpm
|
|
<item> m4*.rpm (autoconf needs this)
|
|
<item> autoconf
|
|
<item> bison
|
|
<item> binutils >= 2.9.1.0.25
|
|
<item> gas, as, ld which are in binutils
|
|
<item> shutils - for 'id' command
|
|
</itemize>
|
|
|
|
Second stage foundation rpms are as follows.
|
|
After installing the foundation rpms, next important rpm is gcc, the order of rpms you need is:
|
|
<itemize>
|
|
<item> glibc*.rpm
|
|
<item> binutils*.rpm
|
|
<item> kernel-headers*.rpm
|
|
<item> glibc-devel*.rpm
|
|
<item> gcc*.rpm
|
|
</itemize>
|
|
|
|
Third stage rpms are as follows:
|
|
<itemize>
|
|
<item> popt*.rpm
|
|
<item> rpm*.rpm
|
|
<item> perl*.rpm
|
|
<item> And many others....
|
|
</itemize>
|
|
|
|
As from previous section you should have exported temp
|
|
location of autoconf, gcc and other programs by:
|
|
<code>
|
|
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
|
|
</code>
|
|
|
|
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.
|
|
<code>
|
|
bash# cd /usr/local/src/redhat/RPMS/sparc64
|
|
bash# rpm -i --nodeps --excludedocs fileutils*.rpm
|
|
</code>
|
|
Move on to build and install the next rpm in the list texinfo, zlib, patch,....
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1> Troubleshoot Building Foundation RPMs <label id="troublefoundation">
|
|
<p>
|
|
On Solaris 2.8, I encountered following problems which were fixed by
|
|
correcting the spec file:
|
|
<itemize>
|
|
<item> <bf>texinfo*.rpm: </bf>
|
|
Edit the file texinfo.spec and change __spec_install_post, %build and %install sections:
|
|
<code>
|
|
%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
|
|
</code>
|
|
<p>
|
|
<item> <bf>textutils*.rpm: </bf>
|
|
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}.
|
|
<code>
|
|
%files
|
|
# replace below line
|
|
#/usr/bin/*
|
|
# with the line given below
|
|
%{_prefix}/bin/*
|
|
</code>
|
|
<p>
|
|
<item> <bf>patch*.rpm: </bf>
|
|
Edit patch.spec file and in %files section replace
|
|
hard-coded filenames/pathnames with %{_prefix}.
|
|
<code>
|
|
%files
|
|
# replace below line
|
|
#/usr/bin/*
|
|
# with the line given below
|
|
%{_prefix}/bin/*
|
|
</code>
|
|
<p>
|
|
<item> <bf>gawk*.rpm: </bf>
|
|
Edit gawk.spec file and in %files section and %install section replace
|
|
hard-coded filenames/pathnames like /usr/something with %{_prefix}/something.
|
|
<p>
|
|
<item> <bf>m4*.rpm: </bf>
|
|
Edit m4.spec file and in %build section, the configure takes only
|
|
--prefix and --exec-prefix. Also comment out autoconf.
|
|
</itemize>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
|
|
|
|
|
|
<chapt>Create gcc RPM Package
|
|
-->
|
|
<sect>Create gcc RPM Package
|
|
<p>
|
|
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) :
|
|
<itemize>
|
|
<item> texinfo
|
|
<item> patch
|
|
<item> zlib and zlib-devel
|
|
<item> fileutils >= 4.0.41
|
|
<item> m4 >= 1.1 (autoconf needs this)
|
|
<item> autoconf
|
|
<item> bison
|
|
<item> binutils >= 2.9.1.0.25
|
|
<item> gas, as, ld which are in binutils
|
|
<item> cpp - manual install gcc
|
|
<item> gawk
|
|
<item> shutils - for 'id' command
|
|
<item> pthreads - Posix threads library
|
|
</itemize>
|
|
You should download the tar.gz files or
|
|
<ref id="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
|
|
<code>
|
|
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
|
|
</code>
|
|
You should include the temporary location of autoconf by:
|
|
<code>
|
|
bash# PATH=$HOME/localtmp/bin:$PATH
|
|
bash# export PATH
|
|
</code>
|
|
|
|
Now you are ready to build gcc rpm:
|
|
<code>
|
|
bash# rpm -i gcc*.src.rpm
|
|
bash# cd /usr/local/src/redhat/SPECS
|
|
bash# rpm -ba gcc*.spec
|
|
</code>
|
|
On Solaris 2.8 I had to make few changes to gcc*.spec file:
|
|
<enum>
|
|
<item> In %build section :
|
|
Insert <bf><it>--enable-hacker-mode</it></bf> option for configure command.
|
|
This is to correct error
|
|
- "This configuration not supported in solaris 2.8".
|
|
If <bf><it>--enable-hacker-mode</it></bf> option does not work then you may have to
|
|
comment out gcc_targetplatform within the code %ifarch sparc .... %endif,
|
|
just before the configure command.
|
|
<p>
|
|
<item> In %build section :
|
|
For the configure command comment out %{_target_platform}, if configure fails.
|
|
<p>
|
|
<item> 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.
|
|
</enum>
|
|
Setup shared lib in solaris:
|
|
<code>
|
|
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
|
|
</code>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1> Solaris Sparc gcc, glibc, kernel-headers and binutils <label id="sparcgcc">
|
|
<p>
|
|
You can download the source code rpm for sparc from
|
|
<url name="sparc-gcc" url="http://www.rpmfind.net/linux/rpm2html/search.php?query=sparc">
|
|
or go to <url url="http://www.rpmfind.net"> and type <bf>sparc</bf> in the search field.
|
|
You can also download sparc-glibc, sparc-kernel-headers and sparc-binutils source rpms.
|
|
<code>
|
|
solaris# rpm -i sparc-gcc*.src.rpm
|
|
solaris# cd /usr/local/src/redhat/SPECS
|
|
solaris# rpm -ba sparc-gcc.spec
|
|
</code>
|
|
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.
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1> PowerPC gcc, glibc, kernel-headers and binutils <label id="powerpc">
|
|
<p>
|
|
The PowerPC arch rpms are at <url url="http://penguinppc.org">.
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1>Create glibc RPM <label id="glibc">
|
|
<p>
|
|
If configure complains that your platform is not supported, then
|
|
you may want to edit glibc.spec file and in %configure section
|
|
put <it>--enable-hacker-mode</it>,
|
|
|
|
For Solaris there is ready-made sparc-glibc*.src.rpm from
|
|
<url name="sparc-gcc" url="http://www.rpmfind.net/linux/rpm2html/search.php?query=sparc">
|
|
or go to <url url="http://www.rpmfind.net"> and type <bf>sparc</bf> in the search field.
|
|
|
|
The glibc needs the sparc-kernel-headers*.rpm which you can get from
|
|
<url name="sparc-gcc" url="http://www.rpmfind.net/linux/rpm2html/search.php?query=sparc">.
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
|
|
|
|
|
|
<chapt>Use Debian Packages - Convert deb to rpm<label id="debian">
|
|
-->
|
|
<sect>Use Debian Packages - Convert deb to rpm<label id="debian">
|
|
<p>
|
|
Debian Linux is another popular distribution. You can use the debian packages
|
|
for Sparc, PowerPC, m68k, MIPS, Alpha, Arm, Intel X86 or Itanium.
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1>Debian Packing Program<label id="debpgm">
|
|
<p>
|
|
|
|
To build real debs that contain software, you'll need:
|
|
<bf>binutils, cpp, cpio, dpkg-dev, file, gcc, libc6-dev, make, patch, perl dh-make, debhelper, devscripts, fakeroot
|
|
</bf>
|
|
and
|
|
<bf>
|
|
lintian
|
|
</bf>
|
|
. If your package needs to prompt the user for configuration information when it installs, get
|
|
<bf>
|
|
debconf
|
|
</bf>
|
|
.
|
|
|
|
The main debian programs you need to get are:
|
|
<itemize>
|
|
<item> dpkg-dev : This package contains the tools needed to create Debian archives. It also contains the Debian Programmers and Policy manuals.
|
|
<p>
|
|
<item> debmake : This is a higher level set of tools for creating Debian packages. It makes the whole process tremendously easier.
|
|
<p>
|
|
<item> 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.
|
|
<p>
|
|
<item> debconf : Debconf is a configuration management system for debian packages. Packages use Debconf to ask questions when they are installed.
|
|
<p>
|
|
<item> 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).
|
|
</itemize>
|
|
|
|
Get these from <url url="http://www.debian.org/distrib/packages">, go here and type
|
|
in the search box <bf>dpkg-dev</bf> or <bf>apt-howto</bf> and select Stable, Testing
|
|
or Unstable in the distribution.
|
|
Download and build on your Unix system (Solaris, AIX, HPUX).
|
|
|
|
See
|
|
<url name="Debian Package Management" url="http://noframes.linuxjournal.com/articles/misc/0046.html">
|
|
, Debian
|
|
<url name="Policy Manual" url="http://www.debian.org/doc/debian-policy">,
|
|
Debian<url name="New Maintainer's Guide" url="http://www.debian.org/doc/maint-guide">
|
|
and <url name="apt+rpm howto" url="http://bazar.conectiva.com.br/~godoy/apt-howto">.
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1>Debian to Redhat RPM <label id="deb2rpm">
|
|
<p>
|
|
To install Debian packages on Sun Solaris 2.8 (Sparc/Ultra-sparc) I downloaded
|
|
all the debian packages for sparc from
|
|
<url url="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
|
|
<bf>alien</bf> program to convert the debian packages to redhat <bf>rpm</bf>.
|
|
|
|
Get
|
|
<bf>alien</bf> program
|
|
from <url url="http://www.rpmfind.net">.
|
|
<code>
|
|
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
|
|
</code>
|
|
Convert all debian binary packages to rpm and install on Solaris 2.8 OS.
|
|
|
|
Note
|
|
<bf>alien</bf> program
|
|
works only for binary debian packages.
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
|
|
|
|
|
|
<chapt>Convert RPM to Solaris Package rpm2pkg
|
|
-->
|
|
<sect>Convert RPM to Solaris Package rpm2pkg
|
|
<p>
|
|
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:
|
|
<code>
|
|
bash# mkdir -p $HOME/tmp/myprogram-1.4/usr/local
|
|
bash# cd $HOME/tmp/myprogram-1.4/usr/local
|
|
bash# rpm2cpio rpm-4.0.2-8.sparc64.rpm | cpio -dimv
|
|
bash# tar -xvf rpm*.tar.gz
|
|
bash# make_package
|
|
</code>
|
|
|
|
And run the perl script <bf>make_package</bf> given at
|
|
<url url="http://www.sunfreeware.com/pkgadd.html">
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
|
|
|
|
|
|
<chapt>Related URLs
|
|
-->
|
|
<sect>Related URLs
|
|
<p>
|
|
<itemize>
|
|
<item> Main site of RPM <url url="http://www.rpm.org">
|
|
<p>
|
|
<item> Maximum RPM book <url url="http://www.rpmdp.org/rpmbook/node1.html">
|
|
<p>
|
|
<item> RPM HOWTO <url url="http://linuxdoc.org/HOWTO/RPM-HOWTO/index.html">
|
|
<p>
|
|
<item> <url name="RH manual - rpm" url="http://www.redhat.com/support/manuals/RHL-7-Manual/ref-guide/s1-rpm-using.html">
|
|
<p>
|
|
<item> RPM Finder <url url="http://www.rpmfind.net">
|
|
<p>
|
|
<item> RPM related sofware <url url="http://rpm.org/software.html">
|
|
<p>
|
|
<item> RPM mailing lists <url url="http://rpm.org/mailing_list.html">
|
|
<p>
|
|
<item> Sparc, Sun Solaris, Ultra Sparc <url url="http://www.ultralinux.org">
|
|
<p>
|
|
<item>The PowerPC arch rpms are at <url url="http://penguinppc.org">.
|
|
</itemize>
|
|
|
|
|
|
Linux goodies main site is at <url url="http://www.milkywaygalaxy.freeservers.com">
|
|
Mirror sites are at -
|
|
<url url="http://aldev0.webjump.com">,
|
|
<url name="angelfire" url="http://www.angelfire.com/country/aldev0">,
|
|
<url name="geocities" url="http://www.geocities.com/alavoor/index.html">,
|
|
<url name="virtualave" url="http://aldev0.virtualave.net">,
|
|
<url name="50megs" url="http://aldev0.50megs.com">,
|
|
<url name="theglobe" url="http://members.theglobe.com/aldev1/index.html">,
|
|
<url name="NBCi" url="http://members.nbci.com/alavoor">,
|
|
<url name="Terrashare" url="http://aldev.terrashare.com">,
|
|
<url name="Fortunecity" url="http://members.fortunecity.com/aldev">,
|
|
<url name="Freewebsites" url="http://aldev.freewebsites.com">,
|
|
<url name="Tripod" url="http://members.tripod.lycos.com/aldev">,
|
|
<url name="Spree" url="http://members.spree.com/technology/aldev">,
|
|
<url name="Escalix" url="http://www.escalix.com/freepage/aldev">,
|
|
<url name="Httpcity" url="http://www.httpcity.com/aldev/index.html">,
|
|
<url name="Freeservers" url="http://aldev.freeservers.com">.
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
|
|
|
|
|
|
<chapt change> Other Formats of this Document
|
|
-->
|
|
<sect> Other Formats of this Document
|
|
<p>
|
|
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:
|
|
<itemize>
|
|
<item> <url url="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.
|
|
</itemize>
|
|
|
|
You can also find this document at the following mirrors sites:
|
|
<itemize>
|
|
<item> <url url="http://www.caldera.com/LDP/HOWTO">
|
|
<item> <url url="http://www.linux.ucla.edu/LDP">
|
|
<item> <url url="http://www.cc.gatech.edu/linux/LDP">
|
|
<item> <url url="http://www.redhat.com/mirrors/LDP">
|
|
|
|
<item> Other mirror sites near you (network-address-wise) can be found at
|
|
<url url="http://www.linuxdoc.org/mirrors.html">
|
|
select a site and go to directory /LDP/HOWTO/xxxxx-HOWTO.html
|
|
</itemize>
|
|
|
|
|
|
<itemize>
|
|
<item>
|
|
You can get this HOWTO document as a single file tar ball in HTML, DVI,
|
|
Postscript or SGML formats from -
|
|
<url url="ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO/other-formats/">
|
|
and <url url="http://www.linuxdoc.org/docs.html#howto">
|
|
<p>
|
|
<item>Plain text format is in: <url url="ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO">
|
|
and <url url="http://www.linuxdoc.org/docs.html#howto">
|
|
<p>
|
|
<item>Single HTML file format is in:
|
|
<url url="http://www.linuxdoc.org/docs.html#howto">
|
|
<p> A single HTML file can be created with the command (see man sgml2html) -
|
|
sgml2html -split 0 xxxxhowto.sgml
|
|
<p>
|
|
<item>Translations to other languages like French, German, Spanish,
|
|
Chinese, and Japanese are in
|
|
<url url="ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO">
|
|
and <url url="http://www.linuxdoc.org/docs.html#howto">
|
|
Any help from you to translate to other languages is welcome.
|
|
</itemize>
|
|
The document is written using a tool called "SGML-Tools" which can be got from:
|
|
<url url="http://www.sgmltools.org">
|
|
Compiling the source you will get the following commands like:
|
|
<itemize>
|
|
<item>sgml2html xxxxhowto.sgml (to generate html file)
|
|
<item>sgml2html -split 0 xxxxhowto.sgml (to generate a single page html file)
|
|
<item>sgml2rtf xxxxhowto.sgml (to generate RTF file)
|
|
<item>sgml2latex xxxxhowto.sgml (to generate latex file)
|
|
</itemize>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1> Acrobat PDF format <label id="acrobatpdf">
|
|
<p>
|
|
A PDF file can be generated from postscript file using
|
|
either acrobat <bf>distill</bf> or <bf>Ghostscript</bf>.
|
|
And a postscript file is generated
|
|
from DVI which in turn is generated from a LaTex file.
|
|
You can download distill software from <url url="http://www.adobe.com">
|
|
and from <url name="unix" url="http://www.adobe.com/support/downloads/acdunix.htm">
|
|
and from <url name="windows" url="http://www.adobe.com:80/support/downloads/acdwin.htm">
|
|
. Given below
|
|
is a sample session:
|
|
<code>
|
|
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 &
|
|
</code>
|
|
Or you can use the Ghostscript command <bf>ps2pdf</bf>.
|
|
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.
|
|
<bf>ps2pdf</bf> is implemented as a very small command script
|
|
(batch file) that invokes Ghostscript, selecting a special "output device"
|
|
called <bf>pdfwrite</bf>. 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.
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1> Convert Linuxdoc to Docbook format <label id="linuxdoc2docbook">
|
|
<p>
|
|
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 <bf>ld2db.sh</bf> and some Perl scripts.
|
|
The ld2db output is not 100% clean and you need to use the <bf>clean_ld2db.pl</bf>
|
|
Perl script. You may need to manually correct a few lines in the document.
|
|
<itemize>
|
|
<item> Download the ld2db program from <url url="http://www.dcs.gla.ac.uk/~rrt/docbook.html">
|
|
or from <url name="Milkyway Galaxy site" url="http://www.milkywaygalaxy.freeservers.com">
|
|
<item> Download the cleanup_ld2db.pl perl script from
|
|
from <url name="Milkyway Galaxy site" url="http://www.milkywaygalaxy.freeservers.com">
|
|
</itemize>
|
|
The ld2db.sh is not 100% clean, so you will get some errors when you run it.
|
|
<code>
|
|
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
|
|
</code>
|
|
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>
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1> Convert to MS WinHelp format <label id="mswinhelp">
|
|
<p>
|
|
You can convert the SGML howto document to a Microsoft Windows Help file,
|
|
First convert the sgml to html using:
|
|
<code>
|
|
bash$ sgml2html xxxxhowto.sgml (to generate html file)
|
|
bash$ sgml2html -split 0 xxxxhowto.sgml (to generate a single page html file)
|
|
</code>
|
|
Then use the tool <url name="HtmlToHlp" url="http://javadocs.planetmirror.com/htmltohlpe.html">.
|
|
You can also use sgml2rtf and then use the RTF files for generating winhelp files.
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1> Reading various formats <label id="readformats">
|
|
<p>
|
|
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:
|
|
<tscreen><verb>
|
|
xdvi -geometry 80x90 howto.dvi
|
|
man xdvi
|
|
</verb></tscreen>
|
|
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.
|
|
|
|
<itemize>
|
|
<item>Get ghostscript for Windows 95, OS/2, and for
|
|
all OSes from <url url="http://www.cs.wisc.edu/~ghost">
|
|
</itemize>
|
|
|
|
To read a postscript document give the command:
|
|
<tscreen><verb>
|
|
gv howto.ps
|
|
ghostscript howto.ps
|
|
</verb></tscreen>
|
|
|
|
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.
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
-->
|
|
<sect1> Convert HTML to SGML html2sgml <label id="html2sgml">
|
|
<p>
|
|
To convert any HTML document to Linuxdoc SGML use the tool 'html2sgml'
|
|
from <url url="http://www.abc.se/~m9339/prog/html2sgml.html">.
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
|
|
|
|
|
|
<chapt> Copyright
|
|
-->
|
|
<sect> Copyright
|
|
<p>
|
|
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.
|
|
<!--
|
|
*******************************************
|
|
************ End of Section ***************
|
|
*******************************************
|
|
|
|
|
|
|
|
|
|
-->
|
|
</article>
|