Teil III

Installation von Software

189

Installation von Software

10

Installation von Software

In diesem Kapitel lernen Sie: • RPM-Pakete zu installieren und entfernen, Paketinformationen anzeigen zu lassen (LPI Lernziel 1.102.6) • Debian-Pakete zu installieren, zu entfernen und anzeigen zu lassen (LPI Lernziel 1.102.5) • tgz-Archive (Tarballs) zu installieren SuSE und Fedora/RedHat bieten einfach zu bedienende Hilfsmittel, um auch nachtr¨aglich Softwarepakete von den Distributions-CDs nachzuinstallieren, oder um sie wieder zu entfernen. Manchmal bekommt man jedoch auch Softwarepakete auf andere Weise, zum Beispiel eine neuere Version eines Programms, die man sich aus dem Internet heruntergeladen hat. Oder man m¨ochte, auf die Schnelle, nur eine einzelne Datei aus einem Paket herausholen. Deshalb werden in diesem Kapitel die grundlegenden Methoden des Paketmanagements besprochen.

10.1 RPM-Pakete Oftmals wurden und werden in der UNIX-Welt Softwarepakete als Archivdateien im tar- oder cpio-Format ausgeliefert. Dies sind zwar weitgehend standardisierte Formate, aber eine gezielte Paketverwaltung ist damit nicht mo¨ glich. Denn viele Applikationen setzen voraus, daß zum Beispiel bestimmte Systembibliotheken bereits installiert sind, oder es gibt Programme, die nicht gleichzeitig mit anderen installiert sein d¨urfen. Auch ist es schwer, ein bereits installiertes Paket, dessen Dateien an vielen Orten im System verteilt sind, gezielt zu lo¨ schen. Aus diesen und anderen Gr¨unden hat die Firma RedHat ein leistungsf¨ahiges Paketmanagement entwickelt, mit dem genau solche Aktionen m o¨ glich sind: Gezieltes Installieren und De-Installieren von Softwarepaketen unter Ber u¨ cksichtigung von Abh¨angigkeiten usw. Das RPM-Format (RPM steht f¨ur RPM Package Manager) findet mittlerweile eine breite Akzeptanz und wird deshalb zum Beispiel auch in der SuSE-Distribution verwendet. Die Namen der Paketdateien haben die Endung .rpm bzw. .spm. Letztere werden bei SuSE f¨ur Quellcodepakete verwendet. Auf Fedora/RedHat-Systemen haben die Quellpakete die Endung src.rpm. 190

10.1 RPM-Pakete Mitgelieferte Pakete werden am einfachsten u¨ ber die entsprechenden Administrationstools verwaltet: SuSE-Linux: Das Installieren von Softwarepaketen mit YAST2 ist recht einfach. Hat man YAST2 gestartet, kann man das entsprechende Modul mit Software→Software ¨ Installieren oder Loschen aufrufen. Dabei kann man unter Selektionen ganze Paketserien ausw¨ahlen z.B. alle Pakete die man f¨ur den Betrieb des Apache Webservers braucht. Dabei w¨ahlt man im rechten Feld eine Selektion aus, im linken Feld kann man die auswahl durch An- und Abwahl einzelner Pakete noch feinjustieren. Unter Paketgruppen werden die Pakete in einer Baumstruktur gegliedert angezeigt. Suche erm¨oglicht es Pakete nach Stichworten zu suchen und Zusammenfassung listet alle Pakete auf die man in der laufenden Sitzung zur (De)Installation ausgew¨ahlt hat.

YaST u¨ berpr¨uft automatisch alle Paketabh¨angigkeiten und l¨ost auftretende Paketkonflikte nach M¨oglichkeit auf. Ist dabei manuelles Nacharbeiten no¨ tig, zeigt YaST einen ¨ entsprechenden Dialog an. Durch Deaktivieren des Ankreuzfeldes Automatische Uberpr¨ ufung im unteren Teil des Fensters, kann man dieses Verhalten abw¨ahlen, mit dem Button ¨ Abh¨angigkeiten Pr¨ufen kann man die Uberpr¨ ufung jederzeit manuell veranlassen. Hat man alle gew¨unschten Pakete zur (De)Installation ausgew¨ahlt, starten man den ¨ Vorgang mit Ubernehmen . 191

Installation von Software Fedora/RedHat-Linux: Bei Fedora/RedHat ist je nach installiertem Desktop (GNOME/KDE) automatisch das entsprechende grafische Hilfsprogramm zur RPM-Paketverwaltung mit installiert: unter KDE das Tool kpackage, unter GNOME gnorpm. Diese sind relativ einfach zu benutzen und bedu¨ rfen keiner weiteren Erkl¨arung.

192

10.1 RPM-Pakete Das entsprechende Fedora/RedHat-Tool zur Installation der mitgelieferten Software wird mit dem Befehl system-config-packages aufgerufen oder u¨ ber das Men¨u System→Systemeinstellungen→Einzufugen/Entfernen von Applikationen (Bei Fedora¨ Standardkonfiguration des Windowmanagers).

Aktiviert man das K¨astchen neben einer Paket-Gruppe (z.B. Editoren), wird eine Grundauswahl installiert. Will man die einzelnen Pakete selbst ausw¨ahlen, klickt man auf Details. ¨ die direkte Benutzung von rpm: rpm gibt entspreWichtige Kommandos fur chende Fehlermeldungen aus, wenn zum Beispiel Abh¨angigkeiten nicht erf¨ullt sind, oder wenn das gew¨unschte Paket bereits installiert ist. In den meisten F¨allen empfiehlt es sich, zus¨atzlich die Option -v (verbose) zu benutzen. ¨ rpm --checksig Uberpr¨ ufe die PGP-Signatur des Paketes . Damit wird sichergestellt, daß das Paket von RedHat stammt und nicht ver¨andert wurde. 193

Installation von Software rpm -i Installiere das Paket . Mit Fortschrittsanzeige: rpm -ivh rpm -U Wenn das Paket noch nicht installiert ist, wird es eingespielt, ansonsten aktualisiert ( Upgrade“). ” rpm -F Ein bereits installiertes Paket wird aktualisiert ( Fres” hen“). Ist das Paket noch nicht eingespielt, geschieht nichts. rpm -e Entfernen eines installierten Pakets (Paketname, nicht Dateiname!) Folgende Optionen machen einem beim Installieren und Entfernen von Paketen in manchen Situationen das Leben leichter: --nodeps Ignoriert Paket-Abh¨angigkeiten. Wird beispielsweise verwendet, wenn man ein Paket, von dem andere Pakete abh¨angig sind, entfernt und anschließend neu installiert. --force Erzwingt die Installation eines Paketes, sogar, wenn es schon installiert ist, oder Dateien auf dem System durch das Paket u¨ berschrieben werden w¨urden. rpm -V Verifizieren eines Pakets auf Dateiintegrit¨at, d.h. ob und welche Dateien ver¨andert worden sind rpm -q Die Abfrage ( query“) wird mit folgenden Zusatzoptionen ” genauer spezifiziert: -a Anfrage zu allen installierten Paketen -c Nur Konfigurationsdateien des Paketes auflisten -d Nur Dokumentation des Paketes auflisten -f Datei. Zu welchem Paket geh¨ort diese Datei? (absoluter Pfadname) -p Wird ben¨otigt, wenn man eine rpm-Datei abfragen will, noch nicht installiert ist. -i ausf¨uhrliche Paketinformationen -l Dateiliste des Pakets -s Status der Paketdateien ( normal“ bedeutet: ist installiert) ” --scripts Zeigt die Shell-Skripte an, die beim Installieren oder Entfernen des Paketes ausgef¨uhrt werden Die Konfigurationsdatei f¨ur rpm findet sich unter /etc/rpmrc oder unter /usr/lib/rpm/rpmrc bzw. /usr/lib/rpm/redhat/rpmrc. 194

10.1 RPM-Pakete

.

Beispiele: LINUX:/cdrom/i386 # rpm -ivh hexedit-1.1.0-1.i386.rpm hexedit ################################################## LINUX:/cdrom/i386 # rpm -ivh hexedit-1.1.0-1.i386.rpm package hexedit-1.1.0-1 is already installed LINUX:/cdrom/i386 # rpm -qs hexedit-1.1.0-1.i386.rpm normal /usr/bin/hexedit normal /usr/doc/hexedit-1.1.0 normal /usr/doc/hexedit-1.1.0/COPYING normal /usr/doc/hexedit-1.1.0/Changes normal /usr/doc/hexedit-1.1.0/TODO normal /usr/man/man1/hexedit.1 LINUX:˜ # rpm -qf /usr/bin/hilfe susehilf-99.7.22-0 LINUX:˜ #

LINUX:/cdrom/i386 # rpm -qip amanda-2.4.1p1-3.i386.rpm Name : amanda Relocations: (not relocateable) Version : 2.4.1p1 Vendor: Red Hat Software Release : 3 Build Date: Wed Sep 1 21:05:23 1999 Install date: (not installed) Build Host: porky.devel.redhat.com Group : Applications/System Source RPM: amanda-2.4.1p1-3.src.rpm Size : 250656 License: distributable Packager : Red Hat Software URL : http://www.amanda.org Summary : A network-capable tape backup solution. Description : AMANDA, the Advanced Maryland Automatic Network Disk Archiver, is a backup system that allows the administrator of a LAN to set up a single master backup server to back up multiple hosts to a single large capacity tape drive. AMANDA uses native dump and/or GNU tar facilities and can back up a large number of workstations running multiple versions of UNIX. Newer versions of AMANDA (including this version) can use SAMBA to back up Microsoft(TM) Windows95/NT hosts. The amanda package contains the core AMANDA programs and will need to be installed on both AMANDA clients and AMANDA servers. Note that you will have to install the amanda-client and amanda-server packages as well.

195

Installation von Software LINUX:/cdrom/i386 # rpm -ivh amanda-server-2.4.1p1-3.i386.rpm error: failed dependencies: gnuplot is needed by amanda-server-2.4.1p1-3 libamanda-2.4.1p1.so.0 is needed by amanda-server-2.4.1p1-3 libamtape-2.4.1p1.so.0 is needed by amanda-server-2.4.1p1-3 libreadline.so.3 is needed by amanda-server-2.4.1p1-3 LINUX:/cdrom/i386 #

Bei Abfragen der RPM-Paketdatenbank ist der Filter grep mitunter sehr hilfreich. Beispiel: Ist im Paket eine vorgefertigte RPM-Konfigurationsdatei rpmrc enthalten und wenn ja, wohin wurde sie installiert: # rpm -ql rpm | grep rpmrc /usr/lib/rpm/convertrpmrc.sh /usr/lib/rpm/rpmrc

10.2 Debian-Paketverwaltung Die Debian-Distribution hat mit dselect ein Pendant zur Paketverwaltung des YaST, mit dem sich bequem Pakete oder Paketgruppen nachinstallieren lassen:

Mit dem Men¨upunkt Select kommt man zur Paketauswahl. Dabei navigiert man mit den Cursortasten und w¨ahlt Pakete an und ab mit + bzw. -:

196

.

10.2 Debian-Paketverwaltung

dselect ist gut dokumentiert, man braucht also lediglich den Online-Hilfen zu folgen. Jedoch ist das Tool von der Tastenbelegung her etwas gew o¨ hnungsbed¨urftig. Da empfiehlt es sich am ehesten, einfach sich am Rechner mit dem Programm vertraut zu machen, falls es vorhanden ist. ¨ die direkte Benutzung von dpkg Die Debian-Distribution Wichtige Kommandos fur verwendet einen eigenen Paket-Manager, den Debian-Package-Manager dpkg. Er ist das Debian-Gegenst¨uck zum rpm. Die wichtigsten Operationen mit dpkg fu¨ hrt man wie folgt durch: dpkg -i Installiere ein Paket und f u¨ hre anschließend die Konfiguration des Paketes durch. dpkg --unpack Installiere ein Paket und f u¨ hre anschließend nicht die Konfiguration des Paketes durch. dpkg --configure Konfiguriere das Paket, falls noch nicht geschehen dpkg-reconfigure Konfiguriert ein bereits installiertes Paket neu. (Sofern es ein debconf-Script enth¨alt.) dpkg -r Entfernt das Paket aus dem System, aber nicht dessen Konfigurationsdateien dpkg --purge Entfernt das Paket aus dem System samt dessen Konfigurationsdateien 197

Installation von Software dpkg -I Zeige Informationen u¨ ber Inhalt, Gr¨oße, Funktion und Abh¨angigkeiten des Pakets an dpkg -c Zeigt an, welche Dateien zu dem Paket geh o¨ ren, wenn es noch nicht installiert ist dpkg -L Zeigt an, welche Dateien zu dem Paket geh o¨ ren dpkg -l Zeigt alle Pakete an, deren Paketname auf das Muster paßt. Es ist die Mustersyntax der Shell zu verwenden, jedoch zu maskieren, da dpkg das Muster auswerten soll und nicht die aktuelle Shell dpkg -S Zeigt an, in welchem Paket die angegebene Datei enthalten ist dpkg --fsys-tarfile | tar -xf - Zum Extrahieren bestimmter Dateien aus einem Debian-Paket. Diese Kommandozeile gibt die Dateien des Paketes als tar-Datei auf die Standardausgabe aus und extrahiert durch den dahintergeschalteten tar alle Dateien, die dem Muster entsprechen. In der Datei /etc/dpkg/dpkg.cfg k¨onnen dpkg-Optionen angegeben werden, die bei jedem dpkg-Befehl verwendet werden sollen. Die Daten zu Paketverwaltung legt dpkg in dem Verzeichnis /var/lib/dpkg/ ab. Besonders interessant sind hier: • Das Verzeichnis /var/lib/dpkg/info, in dem fu¨ r jedes Paket die enthaltenen Dateien, die Konfigurationsdateien und die Pr¨a- und Postinstall-Shellskripten abgelegt sind. • Die Datei /var/lib/dpkg/status, in der der Status aller dem System bekannten Pakete abgelegt ist. Alle installierten Pakete enthalten die Paketbeschreibung. • Die Datei /var/lib/dpkg/available, die alle Paketbeschreibungen aller bekannten Pakete, auch die der nicht installierten, enth¨alt. Beispiele:

.

# dpkg -l "*backup*" Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description 198

10.2 Debian-Paketverwaltung +++-====================-====================-================================= pn afbackup (no description available) pn afbackup-client (no description available) un afbackup-client-i (no description available) un afbackup-i (no description available) pn floppybackup (no description available) pn kbackup (no description available) pn kbackup-doc (no description available) pn kbackup-multibuf (no description available) # cd /cdrom/debian/dists/potato/main/binary-all/utils/ # dpkg -c kbackup_1.2.11-3.deb drwxr-xr-x root/root 0 1999-06-16 22:10:38 ./ drwxr-xr-x root/root 0 1999-06-16 22:10:21 usr/ drwxr-xr-x root/root 0 1999-06-16 22:10:23 usr/sbin/ -rwxr-xr-x root/root 57677 1999-06-16 22:10:23 usr/sbin/kbackup drwxr-xr-x root/root 0 1999-06-16 22:10:11 usr/man/ drwxr-xr-x root/root 0 1999-06-16 22:10:31 usr/man/man1/ -rw-r--r-- root/root 939 1999-06-16 22:10:23 usr/man/man1/kbackup.1.gz ... # dpkg -I kbackup_1.2.11-3.deb new debian package, version 2.0. size 42840 bytes: control archive= 2153 bytes. 1111 bytes, 27 lines control 4135 bytes, 58 lines md5sums 144 bytes, 4 lines * postinst #!/bin/sh 144 bytes, 4 lines * postrm #!/bin/sh Package: kbackup Version: 1.2.11-3 Section: utils Priority: optional Architecture: all Depends: afio Suggests: dialog, pgp, kbackup-doc Installed-Size: 209 Maintainer: Jens Ritter Description: KBackup is a single host backup solution for various media From the Documentation: . It is one of the most powerful backup packages around, supporting a wide range of devices and options. For reasons of portability and reliability it uses the well-established afio and tar programs for 199

Installation von Software writing archives. . It greatly extends the capabilities of these archive handlers, providing all the features you might expect from a full-fledged backup system. It can be easily and extensively configured and operated with a user friendly menu interface and can also run automatically for doing scheduled backups without user interaction. . Among the features are: compressed archives, encrypted archives, double buffering, automatic handling of multivolume archives, tape archives, floppy archives, harddisk archives, file archives, incremental backups, scheduled backups, extensive manual. # dpkg -i kbackup_1.2.11-3.deb Selecting previously deselected package kbackup. (Reading database ... 45694 files and directories currently installed.) Unpacking kbackup (from kbackup_1.2.11-3.deb) ... dpkg: dependency problems prevent configuration of kbackup: kbackup depends on afio; however: Package afio is not installed. dpkg: error processing kbackup (--install): dependency problems - leaving unconfigured Errors were encountered while processing: kbackup # dpkg -i afio_2.4.6-1.deb Selecting previously deselected package afio. (Reading database ... 45764 files and directories currently installed.) Unpacking afio (from afio_2.4.6-1.deb) ... Setting up afio (2.4.6-1) ... # dpkg -i kbackup_1.2.11-3.deb (Reading database ... 45792 files and directories currently installed.) Preparing to replace kbackup 1.2.11-3 (using kbackup_1.2.11-3.deb) ... Unpacking replacement kbackup ... Setting up kbackup (1.2.11-3) ... # dpkg -l kbackup afio Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii kbackup 1.2.11-3 KBackup is a single host backup solution for 200

10.2 Debian-Paketverwaltung ii

afio

2.4.6-1

Archive file manipulation program.

# dpkg --purge kbackup (Reading database ... 45792 files and directories currently installed.) Removing kbackup ... Purging configuration files for kbackup ... # dpkg -r afio (Reading database ... 45722 files and directories currently installed.) Removing afio ... # dpkg --fsys-tarfile afio_2.4.6-1.deb | tar -xf - ./bin/afio # ls bin/afio bin/afio Paketverwaltung mit apt (A Package Tool) Ein weiteres Kommandozeilentool, das auf dpkg aufsetzt,ist apt. Damit lassen sich Debian-Pakete sehr schnell und bequem mittels CD-ROM, Internet oder einem erreichbaren Verzeichnis einspielen. apt ist wider Erwarten nicht ein Programm, sondern eine Sammlung von Programmen: apt-get Dient zum Installieren, Updaten und Entfernen von Paketen. Paketabh¨angigkeiten werden automatisch aufgelo¨ st. apt-setup Bringt ein Auswahlmenu¨ , mit dem man w¨ahlen kann, in welchen Quellen nach Paketen gesucht werden soll. Diese Quellen werden beim ersten Mal durchgesehen, und es wird eine Datenbank mit den verfu¨ gbaren Paketen unter /var/lib/dpkg/available erstellt. Ab diesem Zeitpunkt hat man die Beschreibung aller verf¨ugbaren Pakete im lokalen System. Man kann dadurch also ohne Zugriff auf die Medien die verfu¨ gbaren Pakete auflisten lassen. apt-cdrom Nimmt eine neue CD mit Debian-Paketen in die interne Datenbank mit auf. Bei der Installation werden die CDs, von denen installiert werden soll,auf Wunsch in die Datenbank aufgenommen. aptitude Ist die auf apt-basierende Variante eines interaktiven Pakettools a` la dselect. Die Konfigurationsdatei zu apt findet sich unter /etc/apt/apt.conf oder (auf moderneren Systemen) in einer Verzeichnisstruktur unter /etc/apt/apt.conf.d/. Die Konfiguration der apt-Quellen erfolgt in der Datei /etc/apt/sources.list. Dabei hat man die Wahl, ob man die Pakete von CD-ROM, HTTP oder FTP installieren will. 201

Installation von Software Eine Zeile in der Konfigurationsdatei repr¨asentiert eine Paketquelle und sieht zum Beispiel so aus: deb http://http.de.debian.org/debian stable main contrib non-free deb kennzeichnet eine Debian-Bin¨arpaketquelle (deb-src f¨ur Sourcepakete), dann kommt der URL des debian/-Verzeichnisses, dann der Verzeichnisname des Verzeichnisses im dists/-Verzeichnis. Danach kommt eine Aufz¨ahlung der Paketgruppen: Alle Pakete in main sind Bestandteil der offiziellen Distribution, contrib sind von Dritten beigesteuerte Pakete und non-free sind Pakete, die nicht der GPL unterstehen, aber trotzdem frei verteilbar sind. Eine Debian-Dateihierarchie auf den CD-ROMs, HTTP- und FTP-Servern sieht beispielsweise so aus (stark gek¨urzt): debian/dists/stable/ |-| | |-| | |-| | | | | | ‘--

contrib |-- binary-all ‘-- binary-i386 main |-- binary-all ‘-- binary-i386 non-US |-- main | |-- binary-all | ‘-- binary-i386 ‘-- non-free |-- binary-all ‘-- binary-i386 non-free |-- binary-all ‘-- binary-i386

In diesem Baum f¨allt auf, daß noch einmal ein Unterbaum non-US/ existiert, der nocheinmal die Standard-Paketserien enth¨alt. Darin ist Software enthalten, die aus rechtlichen Gr¨unden außerhalb der USA eingesetzt werden soll, insbesondere Verschl¨usselungssoftware. Um diese in obigem Beispielbaum miteinzubinden, ist beispielsweise folgende Zeile notwendig: deb http://Beispielserver/debian stable/non-US main non-free apt-Beispiel: 202

.

10.2 Debian-Paketverwaltung # apt-get apt 0.3.19 for i386 compiled on May 12 2000 21:17:27 Usage: apt-get [options] command apt-get [options] install pkg1 [pkg2 ...] apt-get is a simple command line interface for downloading and installing packages. The most frequently used commands are update and install. Commands: update - Retrieve new lists of packages upgrade - Perform an upgrade install - Install new packages (pkg is libc6 not libc6.deb) remove - Remove packages source - Download source archives dist-upgrade - Distribution upgrade, see apt-get(8) dselect-upgrade - Follow dselect selections clean - Erase downloaded archive files autoclean - Erase old downloaded archive files check - Verify that there are no broken dependencies Options: -h This help text. -q Loggable output - no progress indicator -qq No output except for errors -d Download only - do NOT install or unpack archives -s No-act. Perform ordering simulation -y Assume Yes to all queries and do not prompt -f Attempt to continue if the integrity check fails -m Attempt to continue if archives are unlocatable -u Show a list of upgraded packages as well -b Build the source package after fetching it -c=? Read this configuration file -o=? Set an arbitary configuration option, eg -o dir::cache=/tmp See the apt-get(8), sources.list(5) and apt.conf(5) manual pages for more information and options. # apt-get install afio Reading Package Lists... Done Building Dependency Tree... Done The following NEW packages will be installed: afio 0 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 203

Installation von Software Need to get 0B/60.7kB of archives. After unpacking 127kB will be used. Media Change: Please insert the disc labeled ’Debian GNU/Linux 2.2-stable (potato) , disk 4 _2000-09-11/00:14_’ in the drive ’/cdrom/’ and press enter Selecting previously deselected package afio. (Reading database ... 45694 files and directories currently installed.) Unpacking afio (from .../utils/afio_2.4.6-1.deb) ... Setting up afio (2.4.6-1) ... # apt-get remove afio Reading Package Lists... Done Building Dependency Tree... Done The following packages will be REMOVED: afio 0 packages upgraded, 0 newly installed, 1 to remove and 0 not upgraded. Need to get 0B of archives. After unpacking 127kB will be freed. Do you want to continue? [Y/n] Y (Reading database ... 45722 files and directories currently installed.) Removing afio ... Konvertierung fremder Softwarepaketformate ins Debian-Format Das Programm alien dient zur Konvertierung zwischen Debian-, tgz-, und RPM-Format. Beispielsweise l¨aßt sich so ein RPM-Paket in ein Debian-Paket umwandeln: # alien Usage: alien [options ...] file [...] file [...] Package file or files to convert. -d, --to-deb Generate a Debian deb package. (default) Enables the following options: --patch= Specify patch file to use instead of automatically looking for patch in /var/lib/alien. --nopatch Do not use patches. -r, --to-rpm Generate a RedHat rpm package. -t, --to-tgz Generate a Slackware tgz package. --to-slp Generate a Stampede .slp package. -i, --install Install generated package. -g, --generate Unpack, but do not generate a new package. -s, --single Like --generate, but do not create .orig directory. -c, --scripts Include scripts in package. -k, --keep-version Do not change version of generated package. --description= Specify package description.

204

10.2 Debian-Paketverwaltung -h, --help -v, --version

Display this help message. Display alien’s version number.

alien: You must specify a file to convert. # alien --to-deb afio-2.4.6-2.i386.rpm -- Examining afio-2.4.6-2.i386.rpm -- Unpacking afio-2.4.6-2.i386.rpm 193 blocks ----- Automatic package debianization -- Building the package afio_2.4.6-3_i386.deb dh_testdir # Nothing to do. dh_testdir dh_testroot dh_clean -k dh_installdirs cp -a ‘ls |grep -v debian‘ debian/tmp dh_installdocs dh_installexamples dh_installmenu dh_installcron dh_installchangelogs dh_compress dh_suidregister dh_installdeb dh_shlibdeps dh_gencontrol dh_makeshlibs dh_md5sums dh_builddeb dpkg-deb: building package ‘afio’ in ‘../afio_2.4.6-3_i386.deb’. Generation of afio_2.4.6-3_i386.deb complete. # dpkg -c drwxr-xr-x drwxr-xr-x -rwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x drwxr-xr-x ...

afio_2.4.6-3_i386.deb root/root 0 2000-11-22 root/root 0 2000-11-22 root/root 46160 1999-11-30 root/root 0 2000-11-22 root/root 0 2000-11-22 root/root 0 2000-11-22 root/root 0 2000-11-22

17:38:02 17:38:00 01:31:46 17:38:00 17:38:00 17:38:00 17:38:02

./ ./bin/ ./bin/afio ./usr/ ./usr/share/ ./usr/share/doc/ ./usr/share/doc/afio/

205

Installation von Software

10.3 tgz-Archive Manche Pakete, zumeist Softwarepakete mit Sourcecode, werden als komprimierte tar-Dateien ausgeliefert. Deshalb hier noch kurz der Vollst¨andigkeit halber die Vorgehensweise zum Umgang mit diesen. (Grunds¨atzlich wird an dieser Stelle der Umgang mit tar-Files als bekannt vorausgesetzt.) Das bei Linux enthaltene GNU-tar-Programm erlaubt es, die Archivierung und (De)Komprimierung in einem einzigen Schritt durchzufu¨ hren. Man kann selbstverst¨andlich auch das Archiv zuerst mit gzip -d (gunzip) dekomprimieren und dann mit tar auspacken. Hinweis: Der eigentliche Dateiname mu¨ ßte archiv.tar.gz sein, aber aus Kompatibilit¨atsgr¨unden (Punkt als Trennzeichen) wird die Erweiterung .tgz verwendet. Allerdings muß man aufpassen, da standardm¨aßig bei GNU-tar nur relative Pfadnamen im Archiv gespeichert sind. Man sollte also vor dem Auspacken eines solchen Archivs erst einmal mit der t-Option einen Blick hinein werfen und in das gew u¨ nschte u¨ bergeordnete Verzeichnis wechseln. Wichtige tar-Optionen (nur die Kurzformen): -c create: Archiv wird erzeugt -x extract: Archiv wird ausgepackt -t table of contents: zeigt den Inhalt des Archivs -v verbose: ausf¨uhrlichere Anzeige -f medium file: Das Medium kann ein Bandlaufwerk, eine Diskette oder sonstige Hardware meinen, oder aber einen Dateinamen. Wenn die Option -f nicht angegeben wird, wird (kompilationsabh¨angig) stdin oder stdout (je nach Verwendung) benutzt! -z Verwende gzip-Kompression -Z Verwende compress-Kompression -P Absolute Pfadangaben (f¨uhrender ’/’ ) werden ber¨ucksichtigt -p Beim Auspacken wird der urspru¨ nglichen Dateischutz wiederhergestellt; ansonsten werden der Dateischutz anhand der aktuellen umask gesetzt.

206

Z

10.3 tgz-Archive Das GNU-tar kennt eine Reihe weiterer und sinnvoller Optionen. Mit tar --help ¨ bekommt man eine Ubersicht; mit info tar oder man gtar ruft man die OnlineDokumentation auf. Wenn man nun ein Quellpaket aus einem tgz-Archiv extrahiert hat, kann man in vielen F¨allen nach folgendem grobem Schema vorgehen, um die Software zu kompilieren und zu installieren (Selbstverst¨andlich muß der Compiler mit den beno¨ tigten Bibliotheken installiert sein): 1. README-Dateien, INSTALL-Dateien und a¨ hnliche durchlesen; hier wird i.A. beschrieben, was zu tun ist 2. Anhand der so erhaltenen Informationen die entsprechenden Konfigurationsdateien anpassen. 3. make aufrufen 4. make install ausf¨uhren Vereinzelt findet man auch Archive im taz-Format (eigentlich archiv.tar.Z). In diesem Fall ist nicht die gzip-Kompression verwendet worden, sondern das a¨ ltere, aber auf allen UNIX-Systemen vorhandene compress-Format.

207

Installation von Software

10.4 Wissensfragen 1. Wodurch unterscheiden sich die Paketnamen, die man RPM angeben muß, bei installierten bzw. nicht installierten Paketen?

2. Mit welchen RPM-Kommandooptionen kann man: (a) Bei der Installation/Deinstallation eines Pakets die Paketabh¨angigkeiten ignorieren (b) Die Installation eines Paketes trotz Konflike erzwingen? 3. Welchen RPM- bzw. dpkg-Befehl verwenden Sie, um ein noch nicht installiertes Paket zu installieren? Sie wollen dabei sehr ausfu¨ hrliche Ausgaben auf dem Bildschirm sehen!

4. Welchen RPM- bzw. dpkg-Befehl verwenden Sie, um ein installiertes Paket aus dem System zu entfernen?

5. Welche RPM-Befehle verwenden Sie, um den Inhalt eines installierten bzw. eines nicht installierten Paketes anzuzeigen?

6. Welche RPM-Befehle verwenden Sie, um die Paketinformationen eines installierten bzw. eines nicht installierten Paketes anzuzeigen?

208

10.4 Wissensfragen 7. Welchen RPM- bzw. dpkg-Befehl verwenden Sie, um alle auf dem System installierten RPM- bzw. Debian-Pakete anzeigen zu lassen?

8. Welchen RPM- bzw. dpkg-Befehl verwenden Sie, um herauszufinden, zu welchem Paket die Datei /bin/ls geh¨ort?

9. Mit welchem Kommando installieren Sie ein tgz-Archiv ( Tarball“) im System? ” 10. Mit welchem Kommando kann man bei Debian Paketformate konvertieren?

209

Installation von Software

210

¨ 10.5 Ubungen

10.5

¨ Ubungen

¨ F¨uhren Sie die angegebenen Ubungen mit RPM und/oder den Debian-Tools durch. 1. Paketinformationen ansehen: (a) Welche Pakete auf dem System enthalten text als Teil Ihres Paketnamens? (b) In welchem Paket ist das Kommando nl enthalten? (c) Was enth¨alt das Paket im Allgemeinen (Paketbeschreibung)? (d) Welche Dateien enth¨alt dieses Paket? (e) In welcher Form und in welchem Verzeichnis ist die Dokumentation vorhanden?

211

Installation von Software

10.6 L¨osungen 1.

(a) # rpm -qa | grep text textutils-2.0a-2 gettext-0.10.35-17 Debian: # dpkg -l "*text*" Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Erk ||/ Name Version Description +++-==============-==============-============================ pn bible-kjv-text (no description available) ii doc-linux-text 2000.03-1 Linux HOWTOs, mini-HOWTOs, a ii gettext 0.10.35-13 GNU Internationalization uti ii gettext-base 0.10.35-13 GNU Internationalization uti pn gettext-doc (no description available) pn jargon-text (no description available) pn libggi-target- (no description available) pn liblocale-gett (no description available) pn liblocale-make (no description available) pn libtext-csv-pe (no description available) pn libtext-format (no description available) pn libtext-templa (no description available) pn perspic-texts (no description available) pn pstotext (no description available) pn python-mxtextt (no description available) pn svgatextmode (no description available) un textfm (no description available) ii textutils 2.0-2 The GNU text file processing pn xchat-text (no description available) (b) # rpm -qf ‘which nl‘ textutils-2.0a-2 Debian: # dpkg -S ‘which nl‘ textutils: /usr/bin/nl (c) # rpm -qi textutils Name : textutils Relocations: (not relocateable) Version : 2.0a Vendor: Red Hat, Inc. Release : 2 Build Date: Mon 07 Feb 2000 02:50:29 PM CET Install date: Thu 20 Jul 2000... Build Host: porky.devel.redhat.com

212

10.6 L¨osungen Group : Applications/Text Source RPM: textutils-2.0a-2.src.rpm Size : 1509900 License: GPL Packager : Red Hat, Inc. Summary : A set of GNU text file modifying utilities. Description : A set of GNU utilities for modifying the contents of files, including programs for splitting, joining, comparing and modifying files. Debian: # dpkg -s textutils Package: textutils Essential: yes Status: install ok installed Priority: required Section: base Installed-Size: 1334 Maintainer: Galen Hazelwood Version: 2.0-2 Replaces: bsdmainutils (= 2.1) Conflicts: ptx Description: The GNU text file processing utilities. The utilities: cat cksum comm csplit cut expand fmt fold head join nl od paste pr ptx sort split sum tac tail tr tsort unexpand uniq wc. (d) # rpm -ql textutils ... /usr/bin/uniq /usr/bin/wc /usr/doc/textutils-2.0a /usr/doc/textutils-2.0a/NEWS /usr/doc/textutils-2.0a/README /usr/info/textutils.info.gz /usr/man/man1/cat.1.gz /usr/man/man1/cksum.1.gz /usr/man/man1/comm.1.gz /usr/man/man1/csplit.1.gz /usr/man/man1/cut.1.gz /usr/man/man1/expand.1.gz /usr/man/man1/fmt.1.gz /usr/man/man1/fold.1.gz 213

Installation von Software /usr/man/man1/head.1.gz /usr/man/man1/join.1.gz /usr/man/man1/md5sum.1.gz /usr/man/man1/nl.1.gz /usr/man/man1/od.1.gz /usr/man/man1/paste.1.gz /usr/man/man1/pr.1.gz ... Debian: # dpkg -L textutils /. /bin /bin/cat /usr /usr/bin /usr/bin/cksum /usr/bin/comm /usr/bin/csplit /usr/bin/cut /usr/bin/expand /usr/bin/fmt /usr/bin/fold /usr/bin/head /usr/bin/join /usr/bin/nl /usr/bin/od ... (e) Dokumentationen u¨ ber das Paket in /usr/share/doc/textutils-2.0a/, sonst Man-Pages in /usr/man/man1 (Ausgabe des Paketinhaltes).

214