Ein weiteres Posting in der Antifrustkategorie, diesmal ueber das Bauen von Packages fuer Fedora Core. Damit das Deployen von unser Streamersoftware auf planetlab leichter wird, habe ich beschlossen, Fedore Core Packages fuer poc zu bauen. Als erstes musste ich Subversion auf einem der Planetlab Knoten installieren:
$ sudo yum install subversion
Dann noch diverse Software, darunter die fedora-rpmdevtools, das ich von Hand runtergeladen habe:
$ sudo yum install gcc make redhat-rpm-config unzip cpio gcc-c++ flex bison $ wget http://ftp.sun.ac.za/ftp/mirrorsites/fedora/3/i386/RPMS.extras/fedora-rpmdevtools-0.3.1-1.noarch.rpm $ sudo rpm -i fedora-rpmdevtools-0.3.1-1.noarch.rpm
Dann ein paar Seiten lesen, um zu wissen, wie RPM package und Fedora RPM Package ueberhaupt geht:
- Packaging Software with RPM (Part 1)
- Packaging Software with RPM (Part 2)
- Packaging Software with RPM (Part 3)
- Fedora Packaging Hints
Der erste Artikel passt nicht so wirklich, den heutzutage verwendet man rpmbuild anstatt rpm. Also, als erstes fedora-buildrpmtree aufrufen, um nicht das ganze als root ausfuehren zu muessen. Dann mit fedora-newrpmspec ein Template spec erzeugen, das wird dann ausgefuellt und sieht dann so aus:
Name: poc Version: 0.4.1 Release: 1 Summary: POC mp3 streamer Group: Development/Audio License: BSD URL: http://www.bl0rg.net/software/poc Source0: http:/www.bl0rg.net/software/poc/poc-0.4.1.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: gcc %description Long description of POC %prep %setup -q %build make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT PREFIX=/usr %check || : %clean rm -rf $RPM_BUILD_ROOT %post %files %defattr(-,root,root,-) %doc README %{_bindir}/* %{_mandir}/man[^3]/* %changelog * Sat Feb 26 2005 Manuel Odendahl - 1109434658:0.4.1 - Initial RPM release.
Anschliessend poc-0.4.1.tar.gz in ~/rpmbuild/SOURCES kopieren, und das Paket bauen:
$ rpmbuild -ba poc.spec
Et voila, das fertige poc-Paket liegt in ~/rpmbuild/RPMS/i386. Schick!
Wenn das spec-File auch im tar.gz liegt, kann man das auch gleich mit
$ rpmbuild -ta poc-0.4.1.tar.gz
bauen. Praktisch, um das in ein Makefile in folgender Art einzubauen (aus dem Gedächtnis, sollte aber klar sein):
rpm: clean
cd ..
tar cfzv foo.tar.gz foo/
rpmbuild -ta foo.tar.gz
(Es gibt hier kein pre-Tag, und die Tabreihenfolge ist auch verfriemelt)
Comment by NEINGEIST — February 27, 2005 @ 7:23 am