Re: Fichiers install et postinst
Bonjour à tous, Raphael Hertzog a écrit : > Bonjour, [...] >> Je ne sais pas où mettre mon script.sh dans l'arborescence du source de >> paquet > > Peu importe. Le source du paquet c'est toi qui en est le maître. Il faut > juste que les chemins correspondent avec ceux que tu vas employer dans > debian/rules ou debian/install selon le cas. [...] > Tu mélanges allègrement l'étape de compilation du paquet source ("le . du > paquet source") et l'étape d'installation du paquet binaire ("le > postinst"). Tu ne peux pas accéder au paquet source depuis le postinst. Oui, j'espèrais un peu dessus, je m'imaginais un espace temporaire créé par l'outil de paquet lors de l'installation. Je vais faire comme c'est indiqué ci-dessous. > Il faut placer ton script dans le paquet binaire d'une manière ou d'une > autre (avec dh_install par exemple) a priori dans un répertoire > /usr/share//. Ensuite tu peux effectivement > utiliser debconf dans le postinst et le prerm pour obtenir le choix d'un > répertoire par l'utilisateur et faire en sorte que le postinst copie > /usr/share// vers le répertoire choisi. > > Mais debconf n'est pas forcément facile d'emploi et En fait il n'est pas forcement compliqué une fois qu'on a un peu tripatouillé dedans. Et puis quelques paquets sources permettent de voir la mécanique. [...] Merci Raphaël et Ludovic pour vos réponse. -- David -- Ce courrier électronique a été vérifié et est exempt de virus connus à ce jour. Contactez votre administrateur pour plus de renseignement. [EMAIL PROTECTED] -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: Fichiers install et postinst
Le 14.09.2007, à 15:50:23, David Dumortier a écrit: > Bonjour à tous, Bonjour, Le dimanche 16 septembre 2007, Ludovic Rousseau a écrit : > Bonjour, [...] > installer le script dans /usr/share/mon_paquet et faire > un lien symbolique depuis le répertoire choisi > postinst crée le lien, prerm l'enlève Tout pareil que L. Rousseau et R. Hertzog. Si le chemin doit être demandé à la configuration, c'est qu'une autre application l'utilise ? Dans ce cas, AMHA il serait sage de faire un paquet avec cette dernière en la patchant si nécessaire afin de fixer l'emplacement du script. C'est toujours mieux de bien ranger les choses, cela évite de perdre du temps à chercher ou est truc et machin pour trouver finalement le chemin d'accès à chose... (En plus j'aime pas quand l'installeur me pose plein de question auxquelle je n'ai pas envie de répondre dans n'importe quel ordre) Sinon, si le script est appelé directement par l'utilisateur et/ou l'admin, adapter l'utilisateur est je pense mieux que d'adapter le paquet : Soit c'est dispo direct en ligne de commande (accessible via /usr/bin par exemple), soit c'est dans le dpkg -L paquet et dans ce cas je m'attends assez à le touver dans /usr/share/... > > Pour précision, ce script est déstiné à de la maintenance locale > > (/usr/local/monrep) il n'a pas les contraintes fortes Debian [...]. Personnellement, je réserve local à tout ce qui n'est pas en paquet. Donc tout ce que j'empaquette sort de local pour aller dans l'arborescence qui me parait la plus pertinente : /usr/share/, /usr/bin et autres. Et ce même pour des trucs « super locaux/spécifiques ». Comme cela je sais que ce qui traîne dans local est « tout pourrit », mal maintenu et qu'il serait temps de songer à le « packager ». PS: Pour faire clairement la différence entre mes paquets « locaux » et les autres, je les préfixe (ou suffixe). PPS: pour répondre directement à la question, je ferai un lien symbolique de /usr/share/leboscript-moi/script.pl vers l'endroit posé par une question debconf dans le script « config », avec les vérifications d'usage... Mais ceci pose quelques problèmes : - il faut faire attention à ce qu'il pourrait écraser (ce serait dommage de remplacer /etc/passwd...) - il faut vérifier qu'une version antérieure n'existe pas et la supprimer le cas échéant (cas du dpkg-reconfigure) - il ne faut pas poser la question que lorsque c'est pertinent (pas à l'upgrade par exemple) - il faut le supprimer dans le postrm (apt-get remove) - il faut vérifier que l'emplacement est pertinent dans le cas ou le script est appelé par une application tierce : est-elle installée, etc... Cordialement, -- Eric DÉCORNOD
Re: Fichiers install et postinst
Bonjour, On Fri, 14 Sep 2007, David Dumortier wrote: > je souhaite faire un paquet fournissant un script dans un répertoire > choisi au moment de la configuration de mon paquet. Jusque là je > recopiais mon script dans le fichier install et le configurais dans le > postinst en m'appuyant sur un chemin codé en dur, mais je souhaite > rendre celà plus propre et plus générique (et aussi en apprendre un peu > plus sur la "mécanique"). Il faudrait détailler quelques peu le pourquoi de ta demande... parce que sans détails, je ne vois pas l'intérêt de placer un script à un endroit pour finalement le rendre accessible par ailleurs. Dans l'absolu, la solution qui t'a été suggéré doit fonctionner mais si cela se trouve, il y a peut-être mieux pour répondre à ta problématique réelle. > Je ne sais pas où mettre mon script.sh dans l'arborescence du source de > paquet Peu importe. Le source du paquet c'est toi qui en est le maître. Il faut juste que les chemins correspondent avec ceux que tu vas employer dans debian/rules ou debian/install selon le cas. > et je ne sais pas comment faire pour le recopier au bon endroit > en m'assurant qu'il sera enlevé proprement à la dés-installation. Si tu le recopies grâce à une commande du postinst, il faudra prévoir le nettoyage correspondant dans le prerm. > Mon idée soumise à votre jugement expert : > - abandonner le install Si tu parles de debian/install il faudra bien un moyen de mettre le script dans le paquet binaire... parce que sinon tu n'as rien à copier au bon endroit. > - obtenir mon parametre de construction du chemin final dans debconf > - copier d'un endroit x (le . du paquet source) vers mon répertoire > construit dans le postinst > - détruire le fichier dans le pre|postrm > Qu'en pensez vous ? Tu mélanges allègrement l'étape de compilation du paquet source ("le . du paquet source") et l'étape d'installation du paquet binaire ("le postinst"). Tu ne peux pas accéder au paquet source depuis le postinst. Il faut placer ton script dans le paquet binaire d'une manière ou d'une autre (avec dh_install par exemple) a priori dans un répertoire /usr/share//. Ensuite tu peux effectivement utiliser debconf dans le postinst et le prerm pour obtenir le choix d'un répertoire par l'utilisateur et faire en sorte que le postinst copie /usr/share// vers le répertoire choisi. Mais debconf n'est pas forcément facile d'emploi et > Pour précision, ce script est déstiné à de la maintenance locale > (/usr/local/monrep) il n'a pas les contraintes fortes Debian, et je ne > suis pas inscrit à la liste, si vous pouviez me CC les réponse. Pourquoi ne pas installer directement ton script dans /usr/bin ou /usr/local/bin ? A+ -- Raphaël Hertzog Premier livre français sur Debian GNU/Linux : http://www.ouaza.com/livre/admin-debian/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: Fichiers install et postinst
Le 14.09.2007, à 15:50:23, David Dumortier a écrit: > Bonjour à tous, Bonjour, > je souhaite faire un paquet fournissant un script dans un répertoire > choisi au moment de la configuration de mon paquet. Jusque là je > recopiais mon script dans le fichier install et le configurais dans le > postinst en m'appuyant sur un chemin codé en dur, mais je souhaite > rendre celà plus propre et plus générique (et aussi en apprendre un peu > plus sur la "mécanique"). > Je ne sais pas où mettre mon script.sh dans l'arborescence du source de > paquet et je ne sais pas comment faire pour le recopier au bon endroit > en m'assurant qu'il sera enlevé proprement à la dés-installation. > Mon idée soumise à votre jugement expert : > - abandonner le install > - obtenir mon parametre de construction du chemin final dans debconf > - copier d'un endroit x (le . du paquet source) vers mon répertoire > construit dans le postinst > - détruire le fichier dans le pre|postrm > Qu'en pensez vous ? Pourquoi ne pas installer le script dans /usr/share/mon_paquet et faire un lien symbolique depuis le répertoire choisi ? postinst crée le lien prerm l'enlève > Pour précision, ce script est déstiné à de la maintenance locale > (/usr/local/monrep) il n'a pas les contraintes fortes Debian, et je ne > suis pas inscrit à la liste, si vous pouviez me CC les réponse. À+ -- Dr. Ludovic Rousseau[EMAIL PROTECTED] -- Normaliser Unix c'est comme pasteuriser le camembert, L.R. -- -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]