Упаковка программного обеспечения Linux с сохранением разумной файловой структуры

Итак, я создал часть программного обеспечения, которую хочу упаковать и опубликовать в пользовательских репозиториях Arch Linux, AUR, - следует отметить, что я я никогда раньше не упаковывал что-либо для какого-либо дистрибутива - и я также успешно упаковал и установил его на моем собственном компьютере с помощью менеджера пакетов Arch Pacman, но теперь мне интересно, как я буду структурировать папки и файлы?

Обычно когда я писал программное обеспечение, я использовал эту структуру:

build / | src / | makefile

Как минимум, и в случае этого программного обеспечения, make-файл не делает ничего, кроме компиляции файла .cpp из src / в build /. - Следует отметить, что я никогда раньше не упаковывал что-либо для какого-либо дистрибутива - и я также успешно упаковал и установил его на моем собственном компьютере с помощью менеджера пакетов Arch Pacman, но теперь мне интересно, как я буду структурировать папки и файлы?

Обычно, когда я пишу программное обеспечение, я использую такую ​​структуру:

build / | src / | makefile

Как минимум, и в случае этого программного обеспечения make-файл не делает ничего, кроме компиляции файла .cpp из src / в build /. - Следует отметить, что я никогда раньше не упаковывал что-либо для какого-либо дистрибутива - и я также успешно упаковал и установил его на моем собственном компьютере с помощью менеджера пакетов Arch Pacman, но теперь мне интересно, как я буду структурировать папки и файлы?

Обычно, когда я пишу программное обеспечение, я использую такую ​​структуру:

build / | src / | makefile

Как минимум, и в случае этого программного обеспечения make-файл не делает ничего, кроме компиляции файла .cpp из src / в build /.

сборка / | src / | makefile

Как минимум, и в случае этого программного обеспечения make-файл не делает ничего, кроме компиляции файла .cpp из src / в build /.

сборка / | src / | makefile

Как минимум, и в случае этого программного обеспечения, make-файл не делает ничего, кроме компиляции файла .cpp из src / в build /. Чтобы создать пакет Arch, мне также пришлось создать файл .rc, чтобы правильно использовать программу в качестве демона, и файл PKGBUILD, который является файлом, который сообщает программе makepkg, как создать пакет установщика - эти два файла, тем не менее, специфичны для Arch. Если я хочу упаковать программу, скажем, для debian, мне понадобится еще один набор файлов, чтобы сделать это, но эти файлы работают только для debian. Теперь я не могу просто поместить файл .rc и файл PKGBUILD в корневую папку программ, так как это было бы «беспорядком», особенно если бы у меня также были файлы для сборки пакета для debian, но где мне поместить файлы для конкретного дистрибутива? Мне нужно, чтобы он был в корневой папке программ, по крайней мере, чтобы иметь возможность отслеживать его, и моя первоначальная мысль заключалась в том, чтобы использовать такую ​​структуру, как distro / arch / для конкретных файлов Arch Linux, а затем файл PKGBUILD просто запустил make-файл в корневой папке программ и скопировал скомпилированный файл из build / в distro / arch / до того, как он сделал что-нибудь еще, но я обнаружил, что не могу заставить PKGBUILD работать таким образом, и люди из #archlinux на Freenode также сказали, что это не самая лучшая идея.

Итак, где мне разместить файлы, специфичные для дистрибутива? Если бы я знал, что мне нужно предоставить эту программу только для Arch, было бы легко структурировать ее только для Makepkg, но я не хотел бы заключать подобное программное обеспечение в тюрьму, и я мог бы также представить себе предоставление пакетов для других основных дистрибутивов, таких как debian, поэтому как мне добиться этого, сохранив нормальную файловую структуру?

С уважением, Chris Buchholz

8
задан chrisbuchholz 21 December 2010 в 10:14
поделиться