Also habe ich ein Stück Software erstellt, das ich verpacken und an Arch Linux User Repositories, AUR, posten möchte - dass ich noch nie etwas für irgendeine Distribution verpackt habe - und Ich habe es auch verpackt und installiert auf meinem eigenen Rechner über Archs Paketmanager Pacman erfolgreich, aber jetzt frage ich mich, wie um alles in der Welt werde ich die Ordner und Dateien strukturieren?Linux-Software verpacken und dabei eine vernünftige Dateistruktur beibehalten
Normalerweise, wenn ich Software schrieb, verwende ich diese Struktur:
build/| src/| Makefile
Als Minimum, und im Falle dieser Software, das Makefile tut nichts mehr als kompilieren eine .cpp-Datei von src/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 die Erstellung des Installer-Pakets - diese beiden Dateien - mitteilt sind jedoch spezifisch für Arch. Wenn ich das Programm für say debian packen möchte, würde ich eine andere Reihe von Dateien benötigen, um dies zu tun, 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 war keine kluge Idee.
Wo also stelle ich die Distro-spezifischen Dateien? 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 dies, während ich eine vernünftige Dateistruktur beibehalte?
Grüße, Chris Buchholz
Vielen Dank für Ihre Antwort, ypnos. Ich fand es sehr inspirierend, wie ich das Projekt strukturieren würde. Ich entschied, dass ich das Makefile nicht mit Distro-Besonderheiten mischen würde, und der Befehl makepkg -p funktionierte auch nicht. Aber ich fand heraus, dass ich der PKGBUILD-Datei einfach sagen konnte, die Quelldateien von src/zu übernehmen und sie in archlinux/zu kopieren, bevor sie von ihnen abhängig ist und Dinge erstellt, und das funktioniert großartig. – chrisbuchholz