Hallo, Am Wed, 21 Dec 2005, lothar.behrens@lollisoft.de schrieb:
Also was ich möchte ist folgendes:
Ein Binary RPM, das meine Programme und nötigen Shared Libraries installiert.
Shared-Libs solltest du nie mit ins System installieren, installiere sie lokal (wie z.B. Mozilla) und sorge mit wrapper-scripten dafuer, dass sie gefunden werden, oder besser, linke diese Libs statisch. Oder setz die Libs per "Requires: " (s.u.) voraus.
Dabei die Abhängigkeiten aufgelöst werden und ODBC Datenquellen für eine Demo Datenbank (PostgreSQL/MySQL) eingerichtet wird. Inclusive Treiber.
Demos gehoeren nach %{_docdir}/%{name}-%{version}/examples oder %{_docdir}/%{name}-%{version}/demo. Und zwar als binary mit Quelltext. Und zwar im -devel RPM.
Ein RPM, das meine Quellen irgendwo installiert, damit der Benutzer später alles übersetzen kann. (S-RPM/B-RPM/ oder was auch immer - ist mir egal) Dabei die Abhängigkeiten aufgelöst werden und ODBC Datenquellen für eine Demo Datenbank (PostgreSQL/MySQL) eingerichtet wird. Inclusive Treiber.
Das waere ein SRPM, da kann der Installierende ueber %_topdir definieren
wo der tarball+spec ausgepackt werden sollen. Kannst du ja
dokumentieren:
==== ~/.rpmmacros ====
%_topdir ~/src/packages
====
Der Installierende muss halt ggfs. vorher ein:
for d in BUILD RPMS SOURCES SPECS SRPMS; do
install -d -m 750 ~/src/packages/${d}
done
aufrufen.
Folgendes .spec Geruest ergibt sich also:
==== UNGETESTET ====
[PRAEAMBEL]
Prefix: /usr/local
BuildRequires: [was man zum kompilieren des SRPMS braucht]
Requires: [was man zum installieren der fertigen binaries braucht]
%package devel
Requires: %{name} = %{version}
Requires: [was man zum kompilieren mit deiner lib braucht, z.B. \
-devel RPMs der benoetigten libs, da du deren Header einbindest]
BuildRequires: [was man zum kompilieren des SRPMS braucht]
%prep
%setup -q
%build
# ggfs. configure o.ae.
make ... # wie deine Binaries kompiliert werden muessen
%install
# wie deine Binaries kompiliert installiert werden muessen:
make DESTDIR="%{buildroot}" install
### NIE ins System installieren! Ggfs. setze beim 'make install' eben
### z.B. make prefix="%{buildroot}%{prefix}"
%post
cat <