Pourquoi dh usrlocal envoie une erreur de construction?

j'essaie de compiler un paquet deb pour mon serveur. Quand je vais à construire, tout semble bon jusqu'à ce qu'il arrive à dh_usrlocal la compilation s'arrête et retourne une erreur. Le problème, c'est que j'essaie ça pour la première fois et je ne sais vraiment pas où chercher le problème.

C'est la sortie de mon terminal, j'ai aussi inclus la commande, j'ai couru en bas de la sortie.

make[2]: Leaving directory `/home/ian/Desktop/scst-2.1.0/src'
make[1]: Leaving directory `/home/ian/Desktop/scst-2.1.0'
   dh_install
   dh_installdocs
   dh_installchangelogs
   dh_installexamples
   dh_installman
   dh_installcatalogs
   dh_installcron
   dh_installdebconf
   dh_installemacsen
   dh_installifupdown
   dh_installinfo
   dh_pysupport
   dh_installinit
   dh_installmenu
   dh_installmime
   dh_installmodules
   dh_installlogcheck
   dh_installlogrotate
   dh_installpam
   dh_installppp
   dh_installudev
   dh_installwm
   dh_installxfonts
   dh_bugfiles
   dh_lintian
   dh_gconf
   dh_icons
   dh_perl
   dh_usrlocal
dh_usrlocal: debian/scst/usr/local/include/scst/scst.h is not a directory
dh_usrlocal: debian/scst/usr/local/include/scst/scst_user.h is not a directory
dh_usrlocal: debian/scst/usr/local/include/scst/Module.symvers is not a directory
dh_usrlocal: debian/scst/usr/local/include/scst/scst_debug.h is not a directory
dh_usrlocal: debian/scst/usr/local/include/scst/scst_const.h is not a directory
dh_usrlocal: debian/scst/usr/local/include/scst/scst_sgv.h is not a directory
rmdir: failed to remove `debian/scst/usr/local/include/scst': Directory not empty
dh_usrlocal: rmdir debian/scst/usr/local/include/scst returned exit code 1
make: *** [binary] Error 1
dpkg-buildpackage: error: debian/rules binary gave error exit status 2
ian@vm01:~/Desktop/scst-2.1.0$ sudo dpkg-buildpackage -rfakeroot

Toute aide serait appréciée.

22
demandé sur ianc1215 2011-09-18 09:23:59

3 réponses

vous devriez éviter d'exécuter dh_usrlocal. pour ce faire, il suffit d'ajouter ceci à debian/rules: override_dh_usrlocal:

de manière générale, si vous avez un problème avec une cible spécifique, vous l'annulez simplement en ajoutant override_{target} dans votre debian/rules.

exemple, vous avez un problème avec dh_icons. vous n'avez qu'à ajouter ceci dans votre debian/rules

override_dh_icons:
    {insert your processing commands or do nothing to skip it when building package}
25
répondu elhadi dp ıpɐɥןǝ 2013-01-17 09:38:03

IMPORTANT: cette erreur ne se produit que lorsque vous essayez d'installer /usr/local/

j'ai déplacé mon paquet à installer de /usr/local/lib/python3/dist-packages//usr/lib/python3/dist-packages et l'erreur a disparu. dh_usrlocal semble être cassé ou mon paquet ne respecte pas les règles qu'il attend.


j'ai commencé à avoir l'erreur après avoir ajouté un package.install vers mon paquet debian pour qu'il copie le contenu du paquet dans le système de fichiers. (J'était en train d'installer /usr/local/ à l' temps)

le Contenu de mon fichier d'installation lorsqu'il a échoué:

usr/* usr/

Contenu lorsqu'il fonctionne correctement:

usr/ usr/

structure du paquet debian:

packagename-0.1/
  debian/
  usr/
    local/
      lib/
        python3/
          packagename/

Edit: Cela ne semble fonctionner qu'en copiant les répertoires racine. Une fois que j'ai essayé de spécifier la copie au-delà de usr/, il se casse avec la même erreur. Voir le haut de la réponse pour trouver ma solution.

3
répondu NuclearPeon 2013-09-17 17:53:58

Un paquet Debian correct n'est pas autorisé à générer des trucs là-bas mais des répertoires vides.C'est pourquoi elle se plaint de ne pas pouvoir supprimer le répertoire. Il ne s'attend pas à ce que les fichiers soient là.la seule chose que vous pouvez avoir est un répertoire dans /usr/local et c'est ce que dh_usrlocal essaie de gérer mais vous ne devriez pas avoir de fichiers

les utilisateurs ne mettent les fichiers que dans /usr/local/.

je pense aussi que si vous avez le nom usr / local dans votre chemin de répertoire il causera l'erreur aussi comme même si ce n'est pas le bon usr/local. Un exemple de ce qui pourrait causer le problème. Je pense que le logiciel de construction regex cherche usr / local.

/var/tmp/usr/local/

je sais que c'est un vieux post, mais il est classé #1 sur google donc besoin d'une bonne réponse donc les gens à résoudre ce problème rapidement.

3
répondu Martin Naughton 2016-04-08 20:54:38