Mailinglist Archive: opensuse-de (1951 mails)

< Previous Next >
Re: RPM Build geht, aber Installation nicht ?
  • From: Philipp Thomas <pth@xxxxxxx>
  • Date: Tue, 20 Dec 2005 18:03:06 +0100
  • Message-id: <20051220170306.GD32372@xxxxxxxxxxxxxxxx>
* lothar.behrens@xxxxxxxxxxxx (lothar.behrens@xxxxxxxxxxxx) [20051220 17:21]:

> mein tgz File eben. Das soll durch die Angaben des Users irgendwo entpackt
> werden.

Welches tgz File? Normalerweise besteht ja der Inhalt eines .src.rpm aus
einem Tarball, einer .spec Datei und evtl. noch einem oder mehreren Patches.

> Das mit make install oder %makeinstall lasse ich besser noch.

Warum? Ist im Prinzip ganz einfach. Bau einfach eine Variable in die
Makefiles ein, die normalerweise leer ist. Wenn du automake zum Erstellen
der Makefiles benutzt, wird dafür DESTDIR verwendet. Das sieht dann gekürzt
so aus:

prefix = /usr/local
bindir =$(prefix)/bin

DESTDIR =

install:
install -d $(DESTDIR)/$(bindir)
install $(PROGRAMS) $(DESTDIR)/$(bindir)

Innerhalb der .spec Datei rufst du nun make so auf:

make DESTDIR=%{buildroot}

Und wenn Buildroot verwendet wird (das sollte immer der Fall sein), wird die
Software nun dorthin kopiert und RPM packt sie dann in das .rpm mit den in
der %files Sektion angegebenen Pfaden.

> Ich mache ein CVS export, um das dann in ein tarball zu packen.
> Dies wird dann in /usr/src/packages/SOURCES kopiert. Das nimmt rpmbuild auch
> und es ist dannach im rpm File. Nur die Installation geht nicht - es passiert nichts.

Nimm dir ein beliebiges GNU Paket und schau dir mal an, wie bei 'make dist'
der Tarball produziert wird. *So* sollte auch deiner aussehen, sprich ein
nicht absolutes Verzeichnis beinhalten, unterhalb dessen der Quellcode-Baum
liegt.

> Ich verstehe nur nicht, warum ich im %files Zweig die Dateien nochmal angeben
> muss. Die sind ja im tgz File und das findet rpmbuild ja schon.

Das sind doch zwei Paar Schuhe! In deinem Tarball liegen die *Quellen*. In
der %files Sektion gibst du an, welche der Dateien in das zu bauende binäre
.rpm gepackt werden sollen. Du willst ja normalerweise nicht, dass dieses
auch den Quellcode beinhaltet.

[Signatures zitiert man nicht!]

Philipp

--
Philipp Thomas <pth BEI suse.de>
R&D
SUSE LINUX Products GmbH, Maxherrnstr. 23, D-90409 Nürnberg

< Previous Next >
Follow Ups