web-dev-qa-db-fra.com

Comment construire le paquet source avec `pbuilder` pour le téléchargement PPA?

J'essaie d'utiliser pbuilder pour télécharger vers PPA. Le package se construit correctement avec la commande:

Sudo pbuilder build <package>_<version>.dsc

Mais le téléchargement échoue avec une erreur:

Source/binary (i.e. mixed) uploads are not allowed.

On dit que je dois utiliser pdebuild pour construire source package, mais pdebuild ne résout pas les dépendances de génération. Comment puis-je créer ce package pour qu'il puisse enfin être téléchargé? Je ne veux pas installer les dépendances manuellement.

3
anatoly techtonik

La réponse est que non. pbuilder prend le paquet source et construit des binaires. Il peut également prendre le code source sans qu'un paquet source soit construit et créer les binaires que vous hébergeriez vous-même ou que vous ajoutiez à vos propres systèmes de référentiel debian pour héberger vous-même.

Ce n'est pas ce dont vous avez besoin pour un AAE.


Ce que vous voulez faire, et ce que je recommande fortement, c'est que vous suiviez les procédures de conditionnement traditionnelles et que vous exécutiez debuild -S Sur le code, avec le répertoire du package, contenant le code source, le debian/ et tout le reste.

Ensuite, après avoir construit le package source par debuild -S, Vous pouvez ensuite télécharger le fichier .changes Créé dans un répertoire au-dessus du répertoire source vers le PPA via dput. (cette étape est appelée dans les documents d'aide au téléchargement PPA de Launchpad ).

Vous pouvez en théorie utiliser pdebuilder pour garder votre système propre et construire à l'intérieur d'un chroot, mais lisez la suite pour mes déclarations à ce sujet, pour savoir pourquoi il a échoué précédemment pour vous.


D'après les commentaires, vous avez correctement identifié que debhelper est incapable de trouver le plugin autoreconf.

De plus, comme je l'ai dit dans mes commentaires sur cette réponse, pbuilder et pdebuilder ne sont pas assez intelligents pour déterminer les dépendances de debhelper.

Pour résoudre votre problème afin que vos trucs puissent se construire, vous devrez utiliser manuellement pbuilder ou pdebuilder pour vous connecter au chroot. Ensuite, vous devrez installer manuellement dh-autoreconf Dans le chroot, généralement avec apt-get install dh-autoreconf Après vous être connecté au chroot.

Une fois que vous avez fait cela et enregistré l'état du chroot, vous devriez pouvoir pbuilder ou pdebuilder votre package.

(Cependant, je préfère traditionnellement travailler avec des packages, et je me fiche que mon système de build soit entièrement propre ou non, tout ce que je construis vraiment sont des packages source, et les plugins debhelper ne vont pas encombrer mon système aussi mal)

4
Thomas Ward

pbuilder est utilisé pour construire des packages binaires à partir d'un package source. Les PPA construisent également des packages binaires à partir de packages source. Simplement dput le source.changes fichier que vous avez créé lorsque vous avez également créé le <package>_<version>.dsc fichier.

L'un des principaux points de l'utilisation de pbuilder est d'imiter localement l'environnement de chroot propre utilisé pour construire les packages binaires à la fois dans les archives officielles et dans les PPA.

2
andrewsomething