Also habe ich ein Stück Software erstellt, das ich verpacken und an Arch Linux User Repositories, AUR, posten soll. - Ich muss darauf hinweisen, dass ich noch nie etwas für irgendeine Distribution verpackt habe - und ich habe es auch gepackt und installiert meine eigene Maschine über Archs Paketmanager Pacman erfolgreich, aber jetzt frage ich mich, wie um alles in der Welt soll ich die Ordner und Dateien strukturieren?
Wenn ich Software geschrieben habe, benutze ich normalerweise diese Struktur:
build / | src / | Makefile
Als Minimum, und im Falle dieser Software, erstellt das Makefile lediglich eine .cpp-Datei von src / to build /. Um das Arch-Paket zu erstellen, musste ich auch eine .rc-Datei erstellen, um das Programm ordnungsgemäß als Daemon und die PKGBUILD-Datei zu verwenden, die dem makepkg-Programm sagt, wie das Installer-Paket erstellt wird - diese beiden Dateien, obwohl, sind spezifisch für Arch. Wenn ich das Programm für say debian packen möchte, würde ich auch einen anderen Satz von Dateien benötigen, aber diese Dateien funktionieren nur für Debian. Jetzt kann ich nicht einfach die .rc Datei und die PKGBUILD Datei in den Programmstammordner legen, da das "ein Durcheinander" wäre, besonders wenn ich auch Dateien hätte, um ein Paket für debian zu erstellen, aber wo stelle ich das ein Distro-spezifische Dateien? Ich muss es im Root-Ordner des Programms haben - zumindest - um es verfolgen zu können, und mein erster Gedanke war, mit einer Struktur wie Distro / Arch / für Arch Linux spezifische Dateien und dann der PKGBUILD-Datei zu gehen würde einfach das Makefile im Programmstammordner ausführen und die kompilierte Datei von build / to distro / arch / kopieren, bevor es irgendwas anderes gemacht hat, aber ich habe herausgefunden, dass ich PKGBUILD nicht auf diese Weise und Leute auf #archlinux auf Freenode auch bekommen konnte sagte, es sei keine kluge Idee.
Wo also lege ich die Distro-spezifischen Dateien ab? Wenn ich wüsste, dass ich dieses Programm nur für Arch bereitstellen müsste, wäre es einfach, es nur für Makepkg zu strukturieren, aber ich mag es nicht, die Software so zu sperren, und ich könnte mir auch vorstellen, Pakete für andere Bürgermeisterdistributionen wie debian bereitzustellen Wie erreiche ich das, während ich eine vernünftige Dateistruktur beibehalte?
Grüße, Chris Buchholz
Sehr oft finden Sie in Tarballs ein Verzeichnis namens 'debian', in dem die debian-spezifischen Dateien enthalten sind. Ich würde die gleiche Route gehen und ein Verzeichnis 'Archlinux' erstellen und die Dateien dort ablegen.
Dann würde ich fortfahren und eine Datei README in das Verzeichnis archlinux schreiben, das erklärt, wie man PKGBUILD richtig benutzt.
Eine Lösung könnte darin bestehen, eine Regel in Ihren Makefile 'package-arch' zu schreiben, der PKGBUILD in das Stammverzeichnis kopiert, makepkg ausführt und anschließend den redundanten PKGBUILD löscht.
Es ist hackisch, also würde ich auch einen Fehlerbericht für die Leute von Arch schreiben, um diese Einschränkung zu beheben. Haben Sie jedoch makepkg -p archlinux/PKGBUILD
versucht?