2016-07-04 10 views
0

Überall, wo ich im Internet gesehen habe, ist der Standard-Speicherort für die rpmbuild das Home-Verzeichnis eines Benutzers, ~/rpmbuild. Was, wenn ich es in einem anderen Ordner erstellen möchte, sagen wir ~/foo/bar/rpmbuild?Nimmt RPM Build immer die Dateien von ~/rpmbuild?

Warum ist das? Welchen Unterschied würde es machen, wenn mein Build-Standort etwas anderes ist?

EDIT: Dies bedeutet, dass auch die ~/rpmmacros Datei irgendwo sein kann.

+0

Bitte siehe http://www.linuxquestions.org/questions/linux-software-2/need-rpm-package-for-php-version-5-2-7-and-up-on-redhat-5 -1-a-766486/# 13 ... für das Setup. Sie können diese Orte an Ihren bevorzugten Ort ändern. Und Sie können $ 'rpmbuild -bb file.spec' in jedem Ordner verwenden. Die Pakete werden in dem in .rpmmacros angegebenen Ordner erstellt. –

+0

Ich verstehe. Ich vermute, was ich meinte war, sogar die ~/.rpmmacros-Datei an einen anderen Ort zu verschieben und das rpmbuild von dort abholen zu lassen? Gibt es keinen Weg? Oder spielt diese Konfiguration keine Rolle? –

Antwort

2

Sie können RPMs erstellen, ohne eine .rpmmacros-Datei ändern oder verwalten zu müssen, indem Sie _topdir in der rpmbuild-Befehlszeile angeben. Zum Beispiel

rpmbuild --define '_topdir $(RPMBUILD_DIR)' \ 
    --define 'version $(VERSION)' \ 
    --define 'release $(RELEASE)' \ 
    -bb $(PKGNAME).spec 

ist in einen meiner Makefiles für ein rpm Projekt meiner rpms unter $ {RPMBUILD_DIR} mit der angegebenen Version zu bauen und Release-Nummern von Variablen. Ich benutze das sehr oft, damit ich mehrere rpm-building-Projekte haben kann, die nicht miteinander in Konflikt stehen und versuchen, in demselben Verzeichnis zu bauen.

1

können Sie die %_topdir Variable in der .rpmmacros Konfigurationsdatei (in Ihrem Home-Verzeichnis) wie folgt festgelegt:

echo "%_topdir ~/foo/bar/rpmbuild" >> ~/.rpmmacros 

Es wäre nicht (nicht) wirklich viel Unterschied machen; da Quellen dort von rpmbuild kopiert werden sollen; dann werden sie gebaut und installiert und verpackt ... Da alle Pfade relativ sein sollen, sollte das Ergebnis dasselbe sein.

PS: Weitere Informationen über die rpm build area PPS: Vor langer Zeit war der Standard build area in/usr/src/Pakete; Aber Sie hatten Berechtigungsprobleme usw.

+0

Es tut mir leid, ich war vorher nicht klar. Bitte beachten Sie meinen Kommentar unter der Frage. –

+0

rpm --macros/Doppelpunkt:/getrennt: Pfade ist eine Möglichkeit, um zu verlagern, welche Makro-Dateien gelesen werden. Es gibt auch eine alte Methode, um die Makropfade innerhalb einer rpmrc-Datei zu überschreiben, die immer noch mit dem rpm.org-Code funktionieren kann (rpmrc.org hat die rpmrc-Dateien als Konfigurationsmittel meistens als zu kompliziert aufgegeben). –

Verwandte Themen