#include <LUGO.style>

<page name="RPM for Beginners">

<h3>RPM for Beginners</h3>

<p><em>Von Ralf Springwald/mgs</em>

<p>Der Paketmanager RPM hilft, das Linux-System zu warten, neue Pakete
einfach zu installieren oder Informationen über installierte Pakete
anzuzeigen.  Dieser Artikel zeigt ein paar einfache Abfragen mit Hilfe
des Paketmangers <code>rpm</code> am Beispiel von xterm

<p>Als Quelle habe ich <code>rpm --help</code> verwendet.  Im Handbuch
von RedHat ist es ebenfalls so wie nachfolgend beschrieben.

<h3>Inhalt</h3>

<ol>
<li><a href="#sect1">Welche Pakete sind installiert?</a>
<li><a href="#sect2">In welchem Paket ist xterm enthalten?</a>
<li><a href="#sect3">Zeige den Paketheader an</a>
<li><a href="#sect4">Welche Dateien gehören sonst noch zu xf86-3.3.6-20?</a>
<li><a href="#sect5">Welche Abhängigkeiten bestehen zu anderen Paketen?</a>
<li><a href="#sect6">Welche anderen Pakete benutzen xf86-3.3.6-20?</a>
</ol>


<a name="sect1">
<h3>Welche Pakete sind installiert?</h3>
</a>

<p>Mit dem Befehl <code>rpm -qa</code> durchsucht rpm die gesamte
Liste der installierten Pakete und gibt die Namen aus.  Diese
enthalten meistens auch die jeweilige Versionsnummer.</p>

<a name="sect2">
<h3>In welchem Paket ist xterm enthalten?</h3>
</a>

<p>Mit dem Befehl <code>rpm -qf</code> sucht rpm in der internen
Datenbank nach der angegebenen Datei und zeigt das Paket an, das diese
Datei enthält.  Da ich nicht weiß, wo nun genau <code>xterm</code> im
Dateisystem liegt, verwende ich die Ausgabe von "type" für
<code>rpm</code> als Parameter:

<protect>
<pre>
  # rpm  -qf `type -p xterm`
  xf86-3.3.6-20
</pre>
</protect>

<p>So kenne ich jetzt den Paketnamen der <code>xterm</code> enthält.

<a name="sect3">
<h3>Zeige den Paketheader an</h3>
</a>

<p>Wenn der Paketname bekannt ist, können die Informationen zu diesem
Paket direkt abgefragt werden:

<protect>
<pre>
  # rpm -qi xf86-3.3.6-20
  Name        : xf86                         Relocations: (not relocateable)
  Version     : 3.3.6                             Vendor: SuSE GmbH, Nuernberg, Germany
  Release     : 20                            Build Date: Sat Mar 11 10:34:52 2000
  Install date: Tue Jul  4 11:50:56 2000      Build Host: minkowski.suse.de
  Group       : X11/XFree86                   Source RPM: xf86-3.3.6-20.src.rpm
  Size        : 19070703                         License: 1994-2000 The XFree86 Project, Inc.
  Packager    : feedback@suse.de
  Summary     : Basic X11 package
  Description :
  Contains XFree86tm and some other programs from the contrib-directory.

  Authors:
  --------
      Alan Hourihane <alanh@fairlite.demon.co.uk>
      .... usw 

  SuSE series: x
</pre>
</protect>

<a name="sect4">
<h3>Welche Dateien gehören sonst noch zu xf86-3.3.6-20?</h3>
</a>

<p>Oft ist es von Bedeutung, welche Dateien in einem Paket enthalten
sind.  Wenn Modifikationen vorgenommen werden müssen, dann findet man
so vielleicht die Datei, die man bearbeiten muß.

<protect>
<pre>
  # rpm -ql xf86-3.3.6-20|more
  /etc/pam.d/xdm
  /usr/X11
  /usr/X11R6/bin/Backarrow2BackSpace
  /usr/X11R6/bin/Backarrow2Delete
  /usr/X11R6/bin/SuperProbe
  /usr/X11R6/bin/X
  /usr/X11R6/bin/Xmark
  ..... usw
</pre>
</protect>

<a name="sect5">
<h3>Welche Abhängigkeiten bestehen zu anderen Paketen?</h3>
</a>

<p>Auch zusätzliche Abhängigkeiten sind wichtig.  So findet man
heraus, von welchen  anderen Paketen ein Paket abhängt, von welchen
anderen Paketen Dateien oder Funktionen verwendet werden.  Wenn ein
Programm nicht funktioniert, kann es daran liegen, daß nicht alle
Abhängigkeiten aufgelöst wurden und das eine oder andere Paket nicht
installiert ist.

<p>Die Abhängigkeiten erhält man mit dem folgenden Befehl:

<protect>
<pre>
  # rpm --requires -q xf86-3.3.6-20
  xshared  
  windowmanager  
  sax  
  xfsetup  
  xdmbgrd  
  x_server  
  xterm_program  
  /bin/sh  
  /bin/bash  
  /bin/sh  
  ld-linux.so.2  
  libICE.so.6  
  libSM.so.6  
  libX11.so.6  
  libXIE.so.6  
  libXaw.so.6  
  libXext.so.6  
  libXi.so.6  
  libXmu.so.6  
  libXt.so.6  
  libXtst.so.6  
  libc.so.6  
  libc.so.6(GLIBC_2.0)  
  libc.so.6(GLIBC_2.1)  
  libcrypt.so.1  
  libcrypt.so.1(GLIBC_2.0)  
  libdl.so.2  
  libm.so.6  
  libm.so.6(GLIBC_2.0)  
  libpam.so.0  
  libpam_misc.so.0  
  libpthread.so.0  
  libpthread.so.0(GLIBC_2.1) 
</pre>
</protect>

<a name="sect6">
<h3>Welche anderen Pakete benutzen xf86-3.3.6-20?</h3>
</a>

<p>Wer auf seinem Rechner aufräumen möchte und Pakete löschen möchte,
sollte vorher sicherstellen, daß keine anderen Pakete diese
verwenden.  Das findet man mit dem folgenden Befehl heraus:

<protect>
<pre>
rpm --whatrequires -q xf86-3.3.6-20
</pre>
</protect>

</page>

# Local variables:
# mode: indented-text
# mode: iso-accents
# end:
