web-dev-qa-db-fra.com

erreur debian / rules "Pas de règle pour faire la cible"

j'ai des problèmes pour créer un fichier .deb avec debuild

avant de lire certains tutoriels, j'ai réussi à créer le fichier mais j'obtiens toujours cette erreur:

    make: *** No rule to make target «build». Stop.
    dpkg-buildpackage: failure: debian/rules build gave error exit status 2
    debuild: fatal error at line 1329:
    dpkg-buildpackage -rfakeroot -D -us -uc -b failed

De l'aide??

Voici mon fichier de règles Debian:

    #!/usr/bin/make -f
    # -*- makefile -*-
    # Sample debian/rules that uses debhelper.
    # This file was originally written by Joey Hess and Craig Small.
    # As a special exception, when this file is copied by dh-make into a
    # dh-make output file, you may use that output file without restriction.
    # This special exception was added by Craig Small in version 0.37 of dh-make.

    # Uncomment this to turn on verbose mode.
    #export DH_VERBOSE=1

    build-stamp: configure-stamp 
        dh_testdir
        touch build-stamp

    clean:
        dh_testdir
        dh_testroot
        rm -f build-stamp configure-stamp
        dh_clean

    install: build
        dh_testdir
        dh_testroot
        dh_clean -k 
        dh_installdirs
        $(MAKE) install DESTDIR=$(CURDIR)/debian/pycounter
        mkdir -p $(CURDIR)/debian/pycounter

        # Copy .py files
        cp pycounter.py $(CURDIR)/debian/pycounter/opt/extras.ubuntu.com/pycounter/pycounter.py
        cp prefs.py $(CURDIR)/debian/pycounter/opt/extras.ubuntu.com/pycounter/prefs.py

        # desktop copyright and others (not complete, check)
        cp extras-pycounter.desktop $(CURDIR)/debian/pycounter/usr/share/applications/extras-pycounter.desktop
1
Hairo

Comme l'indique le message d'erreur, il n'y a pas de cible build dans votre fichier de règles. Votre cible install la répertorie comme exigence. debian/rules les fichiers sont des Makefiles. Vous voudrez peut-être les lire un peu.

Mais vous pourriez beaucoup simplifier cela en utilisant le simple helper dh. Votre fichier de règles ressemblerait à quelque chose comme:

#!/usr/bin/make -f

%:
        dh $@

override_dh_auto_install:
    # Copy .py files
    cp pycounter.py $(CURDIR)/debian/pycounter/opt/extras.ubuntu.com/pycounter/pycounter.py
    cp prefs.py $(CURDIR)/debian/pycounter/opt/extras.ubuntu.com/pycounter/prefs.py

    # desktop copyright and others (not complete, check)
    cp extras-pycounter.desktop $(CURDIR)/debian/pycounter/usr/share/applications/extras-pycounter.desktop
    dh_auto_install

Je suggère également d'étudier l'utilisation de dh_install plutôt que cp C'est-à-dire:

dh_install prefs.py /opt/extras.ubuntu.com/pycounter/

Voir à la fois la page de manuel pour la commande dh Manpage icon et le page de manuel pour le dh_install commande Manpage icon

2
andrewsomething