Emballage logiciel Linux tout en conservant une structure de fichier sain d'esprit

StackOverflow https://stackoverflow.com/questions/4498159

  •  12-10-2019
  •  | 
  •  

Question

J'ai donc créé un morceau de logiciel que je veux emballer et après Arch Linux Référentiels utilisateur, AUR, note -should, que je ne l'ai jamais quoi que ce soit emballé pour tout distro avant - et j'ai aussi il emballé et installé sur ma propre machine via le gestionnaire de paquets Arch Pacman avec succès, mais maintenant je me demande comment diable vais-je structurer les dossiers et les fichiers?

Normalement, quand je l'ai écrit logiciel, j'utilise cette structure:

build / | src / | makefile

Au minimum, et dans le cas de ce logiciel, le makefile ne fait que compiler un fichier .cpp de src / à la construction /. Pour l'ensemble Arche, je devais également créer un fichier .rc, d'utiliser correctement le programme en tant que démon et le fichier PKGBUILD, qui est le fichier qui indique au programme makepkg comment construire le programme d'installation-package - ces deux fichiers, cependant, sont spécifiques à Arch. Si je veux emballer le programme pour dire debian, je besoin d'un autre ensemble de fichiers pour le faire aussi, mais ces fichiers ne fonctionnent que pour debian. Maintenant, je ne peux pas mettre le fichier .rc et le fichier PKGBUILD pour les programmes de dossier racine, car cela « un gâchis », surtout si je fichiers avais aussi de construire un paquet debian, mais où je mets le fichiers spécifiques? distro Je dois avoir dans les programmes de dossier racine -at-moins avancés pour être en mesure de garder une trace de celui-ci, et ma pensée initiale était d'aller avec une structure comme distro / arch / pour les fichiers spécifiques d'Arch Linux, puis le fichier PKGBUILD serait tout simplement exécuter le makefile dans les programmes dossier racine et copiez le fichier compilé de build / à distro / arch / avant qu'il ne faisait rien d'autre, mais j'ai découvert que je ne pouvais pas me PKGBUILD à travailler de cette façon, et les gens sur #archlinux sur Freenode aussi a dit qu'il n'a pas été une bonne idée.

Alors, où dois-je mettre les fichiers spécifiques distro? Si je savais que je ne devais fournir ce programme pour Arch, il serait facile de la structure juste seulement pour makepkg, mais je ne aime pas à emprisonner les softwarelike, et je pouvais imaginer aussi fournir des paquets pour d'autres distros maire comme debian, donc comment puis-je parvenir tout en maintenant une structure de fichier sain d'esprit?

Cordialement, Chris Buchholz

Était-ce utile?

La solution

Très souvent, vous trouvez dans tarballs un répertoire appelé « debian » qui a les fichiers spécifiques debian en elle. J'irais la même route et créer un répertoire « archlinux » et mettre les fichiers.

Alors j'aller et mettre un fichier README dans le répertoire archlinux qui explique comment utiliser le PKGBUILD correctement.

Une solution pourrait consister à écrire une règle dans votre «paquet-arc Makefile qui copie le PKGBUILD dans le répertoire racine, fonctionne makepkg, supprime alors le PKGBUILD redondant.

Il est hackish, donc je voudrais aussi écrire un rapport de bogue pour le peuple Arche de fixer cette limitation. Cependant, avez-vous essayé makepkg -p archlinux/PKGBUILD?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top