J'essaie de regrouper un ensemble de fichiers binaires déjà compilés, y compris doc, fichiers d'en-tête, exemples d'utilisation, etc ...
L'instruction d'installation des binaires originaux recommande de copier simplement tous les fichiers dans un répertoire ci-dessous /usr
J'ai donc fait ce qui suit debian/install
:
bin/* /usr/tigcc/bin
doc/* /usr/tigcc/doc
examples/* /usr/tigcc/examples
include/* /usr/tigcc/include
lib/* /usr/tigcc/lib
projects/* /usr/tigcc/projects
Maintenant j'utilise debuild -uc -us -sa
pour générer le fichier .deb. Je suis confronté à cette erreur:
dpkg-genchanges -sa >../tigcc_0.95-0ubuntu2_AMD64.changes
dpkg-genchanges: Fehler: Dateienliste-Datei kann nicht gelesen werden: Datei oder Verzeichnis nicht gefunden
#translation: error: couldn't read file list file: File or directory not found
Pourquoi ai-je cette erreur? Qu'est-ce que je fais mal?
Modifier : debian/règles
#!/usr/bin/make -f
# -*- makefile -*-
export DH_VERBOSE=1
%:
dh $@
(par défaut à partir d'un guide d'emballage)
Modifier : ls -lhR debian
debian:
total 36K
-rw-rw-r-- 1 sebastian sebastian 147 Feb 22 15:45 changelog
-rw-rw-r-- 1 sebastian sebastian 2 Feb 21 23:46 compat
-rw-rw-r-- 1 sebastian sebastian 454 Feb 23 12:43 control
-rw-rw-r-- 1 sebastian sebastian 1.2K Feb 23 12:19 copyright
-rw-rw-r-- 1 sebastian sebastian 148 Feb 26 21:39 install
-rw-rw-r-- 1 sebastian sebastian 102 Feb 23 12:13 postinst
-rw-rw-r-- 1 sebastian sebastian 79 Feb 23 12:13 preinst
-rwxr-xr-x 1 sebastian sebastian 85 Feb 26 21:39 rules
drwxrwxr-x 2 sebastian sebastian 4.0K Feb 21 23:11 source
debian/source:
total 4.0K
-rw-rw-r-- 1 sebastian sebastian 12 Feb 21 23:11 format
[~ # ~] modifier [~ # ~] : J'ai essayé de créer un fichier debian/files
, juste parce que je pensais que ça pourrait aider. L'erreur a disparu, mais debuild
vient de dire "rien à construire" à quelques reprises et a fini sans générer de paquet du tout.
Edit : Suite à la demande d'une des personnes essayant de m'aider, je fournis maintenant des liens vers les fichiers utilisés.
Les binaires originaux peuvent être trouvés ici , les trucs ci-dessous debian
ici .
[~ # ~] note [~ # ~] : Ces liens pointent directement vers les archives tar.
Supprimer le précédent /
caractère dans le /usr/tigcc/…
instructions dans le fichier d'installation.
En outre, vous devez soit le faire opt/tigcc/…
ou supprimez le bit tigcc
et installez-les correctement intégrés dans les chemins d'accès standard FHS, en fonction de ce à quoi les binaires sont compilés pour s'attendre exactement.
Ajoutez également --fail-missing
comme argument pour dh, comme:
%: dh $ @ --fail-missing
Cela entraînera l'échec de la génération lorsque les fichiers installés ne sont pas inclus dans le package.
OK, je proposerai une solution de contournement hack. Faites une sauvegarde, puis supprimez install
, postinstall
, preinstall
. Puis dans rules
ajoutez ce qui suit à la fin du fichier:
override_dh_auto_install:
dh_auto_install
mkdir debian/packagename
mv bin/* debian/packagename/usr/tigcc/bin
mv doc/* debian/packagename/usr/tigcc/doc
mv examples/* debian/packagename/usr/tigcc/examples
mv include/* debian/packagename/usr/tigcc/include
mv lib/* debian/packagename/usr/tigcc/lib
mv projects/* debian/packagename/usr/tigcc/projects
Ensuite, faites une copie du répertoire entier contenant le dossier debian
et le reste des binaires précompilés, et essayez de construire des binaires en utilisant debuild -b -us -uc
. Je soupçonne que cela devrait fonctionner, mais assurez-vous que tous les chemins sont corrects et que toutes les opérations de déplacement de fichiers se déroulent comme prévu.
[~ # ~] mise à jour [~ # ~] :
J'ai joué avec les binaires liés et debian
dir. J'ai dû ajuster les noms de fichiers, la structure des dossiers et les directives control
et rules
.
Pour reproduire le .deb
, vous devez décompresser l'archive binaire, décompresser le répertoire debian dans le répertoire tigcc
extrait, puis exécuter debuild -b -us -uc
à partir du dossier debian
. Placez les deux archives dans un dossier temporaire, puis:
bzip2 -d -c "tigcc-0.95_orig.tar.bz2" | tar -xf -
cd tigcc/
tar -zxf "../tigcc-debian.tar.gz"
cd debian/
debuild -b -us -uc
ls -l ../../*deb
À moins que vous ayez des dépendances manquantes, je ne vois pas pourquoi cela ne fonctionnerait pas.