J'ai téléchargé la source dans un paquet en utilisant:
$ apt-get source gkrellweather
Je me suis également assuré d'avoir les dépendances de compilation:
$ Sudo apt-get build-dep gkrellweather
Et j'ai testé qu'il pourrait bien se construire:
$ cd gkrellweather-2.0.8
$ debuild
Il a construit un paquetage .deb
dans le dossier ci-dessus, que je pouvais installer en utilisant:
$ Sudo dpkg -i ../gkrellweather*.deb
OK alors tout est en place. Commençons!
J'ai ouvert le code source dans Vim et apporté les modifications souhaitées. Puis j'ai essayé de reconstruire:
$ debuild
Mais j'ai eu l'erreur suivante:
...
dh_clean: Compatibility levels before 5 are deprecated (level 4 in use)
dpkg-source -b gkrellweather-2.0.8
dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1)
dpkg-source: info: using source format `1.0'
dpkg-source: info: building gkrellweather using existing gkrellweather_2.0.8.orig.tar.gz
dpkg-source: info: building gkrellweather in gkrellweather_2.0.8-2.diff.gz
dpkg-source: error: cannot represent change to gkrellweather-2.0.8/.gkrellweather.c.swp: binary file contents changed
dpkg-source: warning: the diff modifies the following upstream files:
GrabWeather
Makefile
gkrellweather.c
dpkg-source: info: use the '3.0 (quilt)' format to have separate and documented changes to upstream files, see dpkg-source(1)
dpkg-source: unrepresentable changes to source
dpkg-buildpackage: error: dpkg-source -b gkrellweather-2.0.8 gave error exit status 1
debuild: fatal error at line 1357:
dpkg-buildpackage -rfakeroot -D -us -uc failed
Pourquoi?
Merci à la réponse de joeytwiddle car elle m’a offert un excellent point de départ pour trouver une solution à ce problème.
Dans mon projet Python pour lequel j'ai tenté de créer un paquet debian, j'utilise:
git crée un répertoire .git
, pybuild crée un répertoire .pybuild
et PyCharm crée un répertoire .idea
à la racine de mon projet.
Parce que joeytwiddle a mentionné que debuild n’aimait pas un certain fichier (dans son cas, un fichier swp), j’ai eu l’impression que cela avait probablement un rapport avec les répertoires cachés. J'ai découvert que pour git, vous pouvez faire: debuild -i
et il ignore les répertoires de contrôle de version, comme pour les répertoires pybuild et idea, je n'ai pas encore trouvé d'autre option. Donc pour ma solution, j'ai copié mon projet dans un répertoire vide, supprimé les répertoires .git
, .idea
et .pybuild
et succès!
Cela m'a fait trébucher plus d'une fois auparavant. Parfois, je pensais que la raison des erreurs debuild après le changement de source était qu’après que la source a été modifiée, la signature du responsable du package (signature) n’est plus valide pour cette source.
Mais en réalité, dans ce cas, la réponse était simple:
dpkg-source: error: cannot represent change to gkrellweather-2.0.8/.gkrellweather.c.swp: binary file contents changed
Le problème est que Vim avait créé un fichier swafile, et debuild
n'aimait pas ça!
La solution était simple: supprimez le fichier d'échange, puis la construction peut fonctionner:
$ rm ./.gkrellweather.c.swp
$ debuild