2010-12-21 6 views
8

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

Odpowiedz

2

Bardzo często można znaleźć w tarballs katalog o nazwie „debian”, która ma szczególne plików Debiana w nim. Poszedłem tą samą trasą i utworzyłem katalog "archlinux" i umieściłem tam pliki.

Następnie chciałbym kontynuować i umieścić plik README w katalogu archlinux, który wyjaśnia, jak poprawnie używać PKGBUILD.

Jednym z rozwiązań może być napisanie reguły do ​​"pakietu-arch" Makefile, który kopiuje PKGBUILD do katalogu głównego, uruchamia makepkg, a następnie usuwa nadmiarową PKGBUILD.

To jest hackish, więc chciałbym również napisać raport o błędzie dla ludzi Arch, aby naprawić to ograniczenie. Jednak próbowałeś makepkg -p archlinux/PKGBUILD?

+1

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

Powiązane problemy