Buildumgebung
Aus Fedorawiki.de
RPMs sollten sicherheitshalber nicht als Root erstellt werden, sondern als User. In diesem Artikel soll kurz gezeigt werden, wie man eine Buildumgebung für normale User einrichtet.
Inhaltsverzeichnis |
Buildumgebung von Hand erstellen
Im folgenden Beispiel wird ein minimaler Buildtree im Ordner rpmbuild erstellt. Selbstverständlich kann man auch einen anderen Namen wählen, dieser muß aber im Makro %_topdir in der Datei ~/.rpmmacros angegeben sein.
mkdir rpmbuild cd rpmbuild mkdir BUILD RPMS SOURCES SPECS SRPMS echo '%_topdir rpmbuild' >> ~/.rpmmacros
Erstellung der Buildumgebung mit rpmdev-setuptree
Für eine einfachere Einrichtung einer genormten Buildumgebung wird das Programm rpmdev-setuptree aus dem Paket rpmdevtools benutzt. Falls noch nicht installiert, kann dieses einfach mit yum über das Repository von Fedora Extras nachgeholt werden:
Danach kann dann die Buildumgebung erstellt werden:
rpmdev-setuptree
Dies erstellt im Homeverzeichnis des Users die benötigten Verzeichnisse im Ordner rpmbuild/. Zusätzlich dazu wird die für das Programm rpmbuild benötigte Datei ~/.rpmmacros mit folgendem Inhalt erstellt:
%_topdir %(echo $HOME)/rpmbuild %_smp_mflags -j3 %__arch_install_post /usr/lib/rpm/check-rpaths /usr/lib/rpm/check-buildroot
Damit ist die Grundeinrichtung erledigt und man kann als User RPMs aus SRPMS oder SPECS erstellen.
Erstellung eines eigenen Benutzers (optional)
Der Einfachheit halber wird der Benutzer, der in diesem Beispiel die RPMs erstellen soll, rpmbuild genannt. Um diesen zu erstellen, muss als Root folgendes eingegeben werden:
und
Damit ist der Benutzer erstellt worden. Sein Homeverzeichnis liegt dabei unter /home/rpmbuild. Anschließend meldet man sich in einem Terminal als der neu angelegte Benutzer rpmbuild an und erzeugt das Buildverzeichnis
su - rpmbuild rpmdev-setuptree
Neuerungen ab RPM 4.6 (Fedora 10)
Unter Fedora 10 wird die Version 4.6 von RPM installiert, die folgende Änderungen besitzt:
- RPM-Verzeichnisbaum wird unter /home/rpmbuild anstelle von /usr/src/rpm angelegt.
- Buildroot-Angabe im SPEC-File werden ignoriert. Das BUILDROOT-Verzeichnis wird generell unter /home/rpmbuild/BUILDROOT angelegt.
Durch diese Änderung wird verhindert, dass insbesondere unerfahrene Benutzer ihre Pakete unter dem Benutzer 'root' erstellen.