Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/02/2009, à 12:49

Kyoaku

[Résolu]Comment déterminer le répertoire d'installation d'un .deb?

Bonjour à tous. Voila je suis etudiant en bts informatique, et je m'interesse à la création de paquet, car je trouve ce système vraiment sympa.

j'ai donc suivi ce tuto http://www.sukria.net/fr/libreast/ pour comprende comment sont crées les paquets, car celui proposé dans la doc est un peut complèxe et je me perds dans les manipulations.

Jai donc utilisé debhelper, mais arrivé au moment de choisir le répertoire d'installation du paquet, j'obtient cette erreur:

 fakeroot debian/rules binary
dh_testdir
dh_testroot
dh_clean -k 
dh_installdirs
DESTDIR=
BINDIR=/usr/bin
install -d -m 0755 -o root -g root //usr/bin
install    -m 0755 -o root -g root hello //usr/bin
install: ne peut évaluer `hello': Aucun fichier ou dossier de ce type
make: *** [install] Erreur 1
dpkg-buildpackage: échec: fakeroot debian/rules binary a produit une erreur de sortie de type 2

voici le code correspondant dans me fichier rules

DESTDIR=
BINDIR=/usr/bin

install: build
	dh_testdir
	dh_testroot
	dh_clean -k 
	dh_installdirs

	install -d -m 0755 -o root -g root $(DESTDIR)/$(BINDIR)
	install    -m 0755 -o root -g root hello $(DESTDIR)/$(BINDIR)

	# Add here commands to install the package into debian/hello.
	$(MAKE) install DESTDIR=$(CURDIR)/debian/hello

Ou plus simplement je voudrais savoir comment modifier le fichier rules généré par debhelper pour changer le repertoir cible dans lequel le paquet s'installera.

Merci d'avance pour votre aide.

Dernière modification par Kyoaku (Le 27/02/2009, à 11:09)

Hors ligne

#2 Le 15/02/2009, à 15:28

olivierb2

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

Es-tu sur que tu as quelque chose a compilé qui va te créer un fichier de destination hello?

Olivier.


Serveurs linux complet clef en main à prix mini : http://ishare.iabsis.com

Hors ligne

#3 Le 15/02/2009, à 16:23

Kyoaku

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

Non, justement j'ai comenté la ligne servant a compiler car c'est juste un script bash (.sh) qui doit etre empaqueté (juste histoire de voir le principe en fait)

Hors ligne

#4 Le 16/02/2009, à 07:31

gpocentek

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

Les deux lignes 'install blabla' de ton debian/rules posent problème. DESTDIR est vide, donc tu essaies d'installer directement sur le système. Ca ne fonctionne pas puisque tu n'as pas les droits.

Définis DESTDIR correctement et ça fonctionnera.

Par ailleurs, pourquoi installer manuellement (avec install), puis refaire la même chose juste en dessous via un Makefile ? Il y a un truc qui cloche.

Hors ligne

#5 Le 16/02/2009, à 10:35

olivierb2

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

Si tu n'as rien à compiler, tu dois quand même copier quelque chose dans ton $(DESTDIR). Ton scripte indique que tu veux installer un hello, donc tu dois avoir un hello dans ton $(CURDIR).


Serveurs linux complet clef en main à prix mini : http://ishare.iabsis.com

Hors ligne

#6 Le 16/02/2009, à 20:15

Kyoaku

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

Ah ok, donc donc j'ai essayé  de suivre vos conseils, et mon code donne ceci:

DESTDIR=/usr/share/hello
	BINDIR=/usr/bin

	#install -d -m 0755 -o root -g root $(DESTDIR)/$(BINDIR)
	#install    -m 0755 -o root -g root hello $(DESTDIR)/$(BINDIR)


	# Add here commands to install the package into debian/hello.
	$(MAKE) install DESTDIR=$(CURDIR)/debian/hello

et là une autre erreur apparait : "make[1]: *** Pas de règle pour fabriquer la cible « install ». Arrêt."

mais je viens de remarquer que j'ai la même erreur avec le clean :

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

	# Add here commands to clean up after the build process.
	-$(MAKE) clean

	dh_clean

qui me donne la même erreur : "make[1]: *** Pas de règle pour fabriquer la cible « clean ». Arrêt."
mais aparament cela ne le gène pas puisqu'il continue...
(je pense que je ferais mieux de me familiariser avec les makefiles avant de vouloir m'attaquer à un plus gros morceau hmm)

Hors ligne

#7 Le 16/02/2009, à 20:27

olivierb2

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

Si tu n'a rien a compiler, tu dois simplement commenter la ligne make et utiliser par exemple cp pour copier ton script vers (DESTDIR)


Serveurs linux complet clef en main à prix mini : http://ishare.iabsis.com

Hors ligne

#8 Le 16/02/2009, à 21:00

Kyoaku

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

big_smile Effectivement c'est magique, j'ai remplacé

$(MAKE) install DESTDIR=$(CURDIR)/debian/hello

par

cp -r $(CURDIR)/debian DESTDIR

et j'ai ajouté "usr/share/hello" dans le fichier dirs

Merci beaucoup pour votre aide olivierb2 et gpocentek wink

Hors ligne

#9 Le 16/02/2009, à 21:36

mr_pouit

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

Bonsoir,

Kyoaku a écrit :
cp -r $(CURDIR)/debian DESTDIR

Ça ne me paraît pas correct du tout : cette commande a créé un dossier nommé DESTDIR (et non la valeur de $(DESTDIR)) qui contient tout ton arbre debian (qui n'a rien à faire dans un paquet binaire soit dit en passant).

Pour reprendre ce que dit gpocentek, il suffit de mettre ton $(DESTDIR) à une valeur correcte, par exemple $(CURDIR)/debian/hello. wink

Hors ligne

#10 Le 17/02/2009, à 09:44

Kyoaku

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

Ah ok, suite à une install  du paquet, j'ai constaté que tout le répertoire  avait été  copié  mais l'exécutable était absent lol , donc après avoir modifié  mon DESTDIR, j'ai toujours le même message d'erreur... hmm

Hors ligne

#11 Le 20/02/2009, à 12:02

mr_pouit

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

Peux-tu copier ton debian/rules ? (et pour connaître le contenu d'un paquet, pas besoin de l'installer, tu peux faire "dpkg -c ton-paquet.deb")

Hors ligne

#12 Le 20/02/2009, à 22:36

Kyoaku

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

Ah ok merci pour l'info ^^
debian/rules :

#!/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

configure: configure-stamp
configure-stamp:
	dh_testdir
	# Add here commands to configure the package.

	touch configure-stamp


build: build-stamp

build-stamp: configure-stamp 
	dh_testdir

	# Add here commands to compile the package.
	#$(MAKE)
	#docbook-to-man debian/hello.sgml > hello.1

	touch build-stamp

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

	# Add here commands to clean up after the build process.
	-$(MAKE) clean

	dh_clean 

install: build
	dh_testdir
	dh_testroot
	dh_clean -k 
	dh_installdirs

	DESTDIR=/home/kyo/hello
	BINDIR=home/kyo/usr/bin

	#install -d -m 0755 -o root -g root $(DESTDIR)/$(BINDIR)
	#install    -m 0755 -o root -g root hello $(DESTDIR)/$(BINDIR)


	# Add here commands to install the package into debian/hello.
	#$(MAKE) install DESTDIR=$(CURDIR)/debian/hello
	cp -r $(CURDIR)/debian /home/kyo/hello

# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs 
	dh_installdocs
	dh_installexamples
#	dh_install
#	dh_installmenu
#	dh_installdebconf	
#	dh_installlogrotate
#	dh_installemacsen
#	dh_installpam
#	dh_installmime
#	dh_python
#	dh_installinit
#	dh_installcron
#	dh_installinfo
	dh_installman
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
#	dh_perl
#	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install configure

Hors ligne

#13 Le 20/02/2009, à 23:16

mr_pouit

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

	DESTDIR=/home/kyo/hello
	BINDIR=home/kyo/usr/bin

	#install -d -m 0755 -o root -g root $(DESTDIR)/$(BINDIR)
	#install    -m 0755 -o root -g root hello $(DESTDIR)/$(BINDIR)

Si je regarde bien le didacticiel que tu as suivi, il fallait mettre ces lignes dans le Makefile du programme (hello-1.0/Makefile) et non dans ton debian/rules.

Ensuite, $BINDIR et $DESTDIR sont incorrects : $BINDIR doit être un chemin absolu (par exemple /usr/bin), c'est là où le binaire sera sur le système ; $DESTDIR doit être relatif à ton packaging (car il est utilisé uniquement lors de la construction du paquet).

Une fois que c'est corrigé, il suffira de supprimer le cp -r blabla et de décommenter la ligne contenant la commande $(MAKE) pour que ça marche.

	# Add here commands to install the package into debian/hello.
	#$(MAKE) install DESTDIR=$(CURDIR)/debian/hello
	cp -r $(CURDIR)/debian /home/kyo/hello

Si tu veux plus de documentation, je te conseille de lire http://doc.ubuntu-fr.org/projets/ecole/paquets.

Hors ligne

#14 Le 24/02/2009, à 11:58

Kyoaku

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

ok, mais il se trouve que lors de la création du dossier debian, debhelper aurait dut me creer un fichier makefile (si j'ai bien tout suivi...), or je n'en ai aucun. Ca doit etre cela la souce de mon problème...:/

Hors ligne

#15 Le 24/02/2009, à 12:02

gpocentek

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

debhelper utilise les Makefile existants si tu lui dit de le faire. Il ne crée jamais de Makefile par lui même.

Hors ligne

#16 Le 24/02/2009, à 12:59

Kyoaku

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

Donc si je comprends bien je dois créer un fichier Makefile et insérer

 DESTDIR=
    BINDIR=usr/bin

    #install -d -m 0755 -o root -g root $(DESTDIR)/$(BINDIR)
    #install    -m 0755 -o root -g root hello $(DESTDIR)/$(BINDIR)

Hors ligne

#17 Le 24/02/2009, à 13:07

gpocentek

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

Oui, comme mr_pouit l'a dit plus haut.

Hors ligne

#18 Le 27/02/2009, à 11:09

Kyoaku

Re : [Résolu]Comment déterminer le répertoire d'installation d'un .deb?

Voila, après avoir suivi vos conseils, j'ai enfin réussi, je vous remerci tous pour votre aide et surtout votre patience lol.Maintenant je vais faire un petit pdf de cette page et recomencer en essayant de comprendre mes erreurs.

Encore merci wink

Hors ligne