This file is indexed.

/usr/share/doc/HOWTO/de-html/DE-RPM-HOWTO-8.html is in doc-linux-de 2003.10-5.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.65">
 <TITLE>Linux RPM HOWTO: RPM's f&uuml;r verschiedene Architekturen</TITLE>
 <LINK HREF="DE-RPM-HOWTO-7.html" REL=previous>
 <LINK HREF="DE-RPM-HOWTO.html#toc8" REL=contents>
</HEAD>
<BODY>
<IMG SRC="next.png" ALT="Weiter">
<A HREF="DE-RPM-HOWTO-7.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-RPM-HOWTO.html#toc8"><IMG SRC="toc.png" ALT="Inhalt"></A>
<HR>
<H2><A NAME="s8">8.</A> <A HREF="DE-RPM-HOWTO.html#toc8">RPM's f&uuml;r verschiedene Architekturen</A></H2>

<P>RPM unterst&uuml;zt jetzt das Erstellen von Paketen f&uuml;r Intel i386, Digital
Alpha mit Linux und Sparc. Berichte besagen, da&szlig; es auch auf SGI's und
HP's funktionieren soll. Eine Reihe von Eigenschaften vereinfachen das
Erstellen von Paketen auf allen Plattformen. Die erste ist die ``optflags''
Direktive in <CODE>/etc/rpmrc</CODE>. Sie kann dazu benutzt werden, Flags, die
beim &Uuml;bersetzen von Paketen verwendet werden, auf architekturspezifische
Werte zu setzen. Ein anderes Beispiel sind die ``arch'' Makros in der
Spec-Datei. Sie k&ouml;nnen dazu benutzt werden, unterschiedliche Aktionen
auszul&ouml;sen, je nachdem, auf welcher Architektur &uuml;bersetzt wird. Eine andere
M&ouml;glichkeit ist die ``Exclude'' Direktive im Header.</P>

<H2><A NAME="ss8.1">8.1</A> <A HREF="DE-RPM-HOWTO.html#toc8.1">Beispiel f&uuml;r eine Spec-Datei</A>
</H2>

<P>Der folgende Ausschnitt ist Teil des ``fileutils''-Paketes. Es ist f&uuml;r
das &Uuml;bersetzen auf der Intel- und Alphaplattform konfiguriert.
<BLOCKQUOTE><CODE>
<PRE>
Summary: GNU File Utilities
Name: fileutils
Version: 3.16
Release: 1
Copyright: GPL
Group: Utilities/File
Source0: prep.ai.mit.edu:/pub/gnu/fileutils-3.16.tar.gz
Source1: DIR_COLORS
Patch: fileutils-3.16-mktime.patch

%description
These are the GNU file management utilities.  It includes programs
to copy, move, list, etc, files.

The ls program in this package now incorporates color ls!

%prep
%setup

%ifarch alpha
%patch -p1
autoconf
%endif
%build
configure --prefix=/usr --exec-prefix=/
make CFLAGS="$RPM_OPT_FLAGS" LDFLAGS=-s

%install
rm -f /usr/info/fileutils*
make install
gzip -9nf /usr/info/fileutils*

.
.
.
</PRE>
</CODE></BLOCKQUOTE>
</P>

<H2><A NAME="ss8.2">8.2</A> <A HREF="DE-RPM-HOWTO.html#toc8.2">Optflags</A>
</H2>


<P>In diesem Beispiel wird gezeigt, wie man die ``optflags''-Direktive aus
<CODE>/etc/rpmrc</CODE> einsetzt. In Abh&auml;ngigkeit von der jeweiligen Architektur
wird die Variable <CODE>RPM_OPT_FLAGS</CODE> auf den entsprechenden Wert gesetzt.
Das Makefile mu&szlig; angepa&szlig;t werden, damit hier dann diese Variable anstelle
der &uuml;blichen Direktiven wie <CODE>-m486</CODE> oder <CODE>-O2</CODE> verwendet
wird. Man kann sich ein Gef&uuml;hl daf&uuml;r verschaffen, was gemacht werden mu&szlig;,
indem man sich erw&auml;hntes Quellpaket installiert und das Makefile
ansieht. Dazu kann man sich dann im Vergleich den Patch anschauen, um zu
sehen, welche &Auml;nderungen notwendig sind.</P>

<H2><A NAME="ss8.3">8.3</A> <A HREF="DE-RPM-HOWTO.html#toc8.3">Makros</A>
</H2>

<P>Sehr wichtig ist das Makro <CODE>%ifarch</CODE>. Meistens mu&szlig; man den einen oder
anderen Patch machen, der nur f&uuml;r eine bestimmte Architektur angewandt
werden soll. In diesem Fall sorgt der RPM mit Hilfe dieses Makros f&uuml;r die
korrekte Verwendung der Patches. Im obigen Beispiel hat das fileutils-Paket
einen Patch f&uuml;r 64-bit Architekturen. Dieser Patch soll nat&uuml;rlich im Moment
nur f&uuml;r Alpha-Rechner angewandt werden. Deshalb wird ein <CODE>%ifarch</CODE> Makro
um den 64-bit Patch herumgelegt:
<BLOCKQUOTE><CODE>
<PRE>
%ifarch axp
%patch1 -p1
%endif
</PRE>
</CODE></BLOCKQUOTE>

Das stellt sicher, da&szlig; der Patch ausschlie&szlig;lich f&uuml;r Alphas verwendet wird.</P>

<H2><A NAME="ss8.4">8.4</A> <A HREF="DE-RPM-HOWTO.html#toc8.4">Ausschlie&szlig;en von  Architekturen in Paketen</A>
</H2>

<P> Damit man die Quell-rpm's f&uuml;r alle Plattformen weiterhin in einem
Verzeichnis aufbewahren kann, haben wir die M&ouml;glichkeit geschaffen, Pakete
von der &Uuml;bersetzung auf bestimmten Architekturen auszuschlie&szlig;en. Das
erm&ouml;glicht weiterhin Dinge wie eine &Uuml;bersetzung ganzer Gruppen von Paketen
mit einem Mal, z.B. mit einem
<BLOCKQUOTE><CODE>
<PRE>
rpm --rebuild /usr/src/SRPMS/*.rpm
</PRE>
</CODE></BLOCKQUOTE>

,wobei man trotzdem dann nur die passenden &uuml;bersetzten Pakete erh&auml;lt.
Falls ein Programm noch nicht auf eine bestimmte Plattform portiert wurde,
reicht ein Einf&uuml;gen einer Zeile wie:
<BLOCKQUOTE><CODE>
<PRE>
ExcludeArch: axp
</PRE>
</CODE></BLOCKQUOTE>

in den Header der Spec-Datei des Quellpaketes. Danach erstellt man das rpm auf
der Architektur, auf der es l&auml;uft, und erh&auml;lt so ein Paket, das
z.B. auf Intel &uuml;bersetzt wird, aber auf Alphas einfach &uuml;bergangen wird.</P>

<H2><A NAME="ss8.5">8.5</A> <A HREF="DE-RPM-HOWTO.html#toc8.5">Zusammenfassung</A>
</H2>

<P>Oft ist es einfacher, den RPM zum Erstellen von Paketen f&uuml;r mehrere
Architekturen einzusetzen als das Paket selber dazu zu bringen. Wie
&uuml;blich ist der beste Weg, wenn man mit seinem rpm nicht mehr weiter wei&szlig;,
einen Blick auf &auml;hnliche andere rpm's zu werfen.</P>

<HR>
<IMG SRC="next.png" ALT="Weiter">
<A HREF="DE-RPM-HOWTO-7.html"><IMG SRC="prev.png" ALT="Zurück"></A>
<A HREF="DE-RPM-HOWTO.html#toc8"><IMG SRC="toc.png" ALT="Inhalt"></A>
</BODY>
</HTML>