Paquet Debian Fichier de contrôle Question
-
22-09-2019 - |
Question
Je suis en train de créer un paquet Debian pour une application Java.
Dans mon paquet il y a un fichier .jar
qui est exécutable, un script qui exécutera ce fichier jar et un fichier .so
pour fmod.
J'ai lu ce tutoriel.
Dans le fichier de contrôle il y a un champ « Depends » qui décrit essentiellement les paquets qui doivent être installés afin d'installer mon application. Ma question est, comment puis-je trouver les paquets qui sont nécessaires à ma demande? J'ai suivi les instructions du didacticiel pour l'un des fichiers .so, et a obtenu ceci:
$ dpkg -S libfmodex64-4.28.09.so
dpkg: *libfmodex64-4.28.09.so* not found.
En outre, mon application nécessite Java 1.5 à installer pour que son exécution. Comment puis-je préciser dans mon paquet debian?
La solution
Je recommande fortement la construction de votre paquet de la source dans l'infrastructure des paquets Debian. Tout sera à peu près effectuent automatiquement si vous utilisez la classe Ant CDBS.
Si vous insistez sur l'assemblage d'un .deb
binaire uniquement, equivs est beaucoup moins hackish que la méthode décrit par le document.
Autres conseils
Vous voulez obtenir le nom canonique de votre bibliothèque:
apt-cache search libname
Prenez soin de noter la nomenclature à la fin du paquet. Vous ne voulez pas spécifier un spécifique version dans le fichier de contrôle, juste la première version de la bibliothèque qui convient à votre application.
Vous pouvez ensuite utiliser canonical_libname >= major.minor
, ce qui permet au système de décider si vous avez (ou pouvez mettre à jour) la version de la bibliothèque qui peut appuyer votre demande. Si vous sculptez cela en temps, à savoir préciser la version complète de votre bibliothèque actuelle, vous cassez à l'avenir.
Par exemple, si vous spécifiez libfoo-1.2.34
et les futures versions de Debian libfoo-2.3.45
navire, votre colis ne sera pas installer, car il pense que vous avez une version incompatible de libfoo.