Stworzyłem więc oprogramowanie, które chcę spakować i opublikować w repozytoriach użytkowników Arch Linux, AUR, - należy pamiętać, że nigdy wcześniej nie pakowałem żadnych dystrybucji dla żadnego distro - i Dostałem go również zapakowany i zainstalowany na mojej własnej maszynie przez menedżera pakietów Archa Pacmana z powodzeniem, ale teraz zastanawiam się, w jaki sposób mam opracować strukturę folderów i plików?Pakowanie oprogramowania dla systemu Linux przy zachowaniu zdrowej struktury plików
Normalnie kiedy pisałem oprogramowanie, używam tej struktury:
build/| src/| makefile
Co najmniej, w przypadku tego fragmentu oprogramowania, plik Makefile wykonuje jedynie plik .cpp z src/to build /. Aby utworzyć pakiet Arch, musiałem również utworzyć plik .rc, aby poprawnie używać programu jako demona i pliku PKGBUILD, który jest plikiem, który mówi programowi makepkg, jak zbudować pakiet instalacyjny - te dwa pliki , są jednak specyficzne dla Arch. Jeśli chcę pakietować program, powiedzmy debiana, potrzebowałbym innego zestawu plików, aby to zrobić, ale te pliki działają tylko dla debiana. Teraz nie mogę po prostu umieścić pliku .rc i pliku PKGBUILD w folderze głównym programów, ponieważ byłby to "bałagan", szczególnie gdybym miał również pliki do zbudowania pakietu dla debiana, ale gdzie umieścić pliki specyficzne dla dystrybucji? Muszę go mieć w folderze głównym programu - przynajmniej - aby móc go śledzić, a moją początkową myślą było stworzenie takiej struktury jak distro/arch/dla specyficznych plików Arch Linux, a następnie pliku PKGBUILD wystarczy uruchomić plik Makefile w folderze głównym programów i skopiować skompilowany plik z kompilacji/do dystrybucji/arch/zanim zrobi cokolwiek innego, ale odkryłem, że nie mogłem uzyskać PKGBUILD do pracy w ten sposób, a ludzie na #archlinux na Freenode również powiedział, że to nie był mądry pomysł.
Więc gdzie umieścić konkretne pliki dystrybucji? Gdybym wiedział, że muszę tylko zapewnić ten program dla Arch, łatwo byłoby po prostu skonstruować go tylko dla Makepkg, ale nie lubię uwięzić takiego oprogramowania, a także mogę sobie wyobrazić dostarczanie paczek dla innych dystrybucji burmistrza, takich jak debian, więc jak to osiągnąć, zachowując przy tym rozsądną strukturę plików?
Pozdrawiam, Chris Buchholz
Dziękuję bardzo za odpowiedź, ypnos. Odkryłem, że to bardzo inspirujące, w jaki sposób zorganizowałbym projekt. Postanowiłem, że nie zmiksuję pliku makefile z dystrybucją, a komenda makepkg -p też nie działa. Ale dowiedziałem się, że mogę po prostu powiedzieć plikowi PKGBUILD, aby zmapować pliki źródłowe z src/i skopiować je do archlinux/zanim zacznie na nich polegać i budować rzeczy, a to działa świetnie. – chrisbuchholz