web-dev-qa-db-fra.com

Empaquetage du programme précompilé: liste de fichiers introuvable

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 debianici .

[~ # ~] note [~ # ~] : Ces liens pointent directement vers les archives tar.

3
s3lph

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.

1
dobey

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.

0
landroni