Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[HS?] packaging debian best practice

3 réponses
Avatar
jerome moliere
Bonjour =E0 tous,toutes,
je veux bien parler de debian mais l=E0 c'est sp=E9cifique =E0 du packaging
alors HS ou pas ?
Je suis en train de travailler sur mon premier paquet et dans le
budget de coller aux besoins de mon client je dois livrer des fichiers
de conf dans une arbo qui serait :
/opt/preprod/monfic.txt ou /opt:prod/monfic.txt suivant l'environnement cib=
le

Quelle est la bonne pratique en la mati=E8re ?
je pensais a 2 solutions:
- copier le fichier dans le temp et ensuite dans le postinst le
recopier vers le r=E9pertoire idoine
- utiliser le preinst et faire en gros la meme chose

Mais ceci a un inconvenient peut-=EAtre vis =E0 vis de la suppression non?
bref je ne sais pas trop comment faire propre

Merci
Jerome

--=20
Jerome Moliere - Mentor/J
http://romjethoughts.blogspot.com/
auteur Eyrolles

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/AANLkTi=NwWz6TCzKyAMTZdMaQ9NDFzPfpHDBZHJsfbDX@mail.gmail.com

3 réponses

Avatar
Xavier Oswald
On 13:34 Tue 10 Aug , jerome moliere wrote:
Bonjour à tous,toutes,
je veux bien parler de debian mais là c'est spécifique à du packaging
alors HS ou pas ?



J'ai tendance à dire oui, HS, car nous avons une liste debian-devel-fr

Je suis en train de travailler sur mon premier paquet et dans le
budget de coller aux besoins de mon client je dois livrer des fichiers
de conf dans une arbo qui serait :
/opt/preprod/monfic.txt ou /opt:prod/monfic.txt suivant l'environnement cible

Quelle est la bonne pratique en la matière ?
je pensais a 2 solutions:
- copier le fichier dans le temp et ensuite dans le postinst le
recopier vers le répertoire idoine
- utiliser le preinst et faire en gros la meme chose

Mais ceci a un inconvenient peut-être vis à vis de la suppression non?
bref je ne sais pas trop comment faire propre



Le plus simple, si tu as par exemple

mon_prog/conf1
mon_prog/conf2
mon_prog/debian/*

tu peux faire un fichier de type
mon_prog/debian/install

qui contient :
conf1 /opt/preprod/conf1
conf2 /opt/preprod/conf2

Cela si tu connais ton environnement.

Maintenant si tu ne sais pas à l'avance, je te conseille dans un fichier
postinst de faire la détection de l'env et de traiter les cas nécessaires.

Après pour une question d'update, tu peux traiter certains cas dans le postinst
afin de ne pas supprimer la config. Ou simplement utiliser debconf pour demander
à l'administrateur de la machine s'il veut garder la version présente ou
remettre celle par défaut. A toi de voir ce que tu veux...

Après pour la suppression, tu peux traiter des choses par le postrm et le prerm.

Cordialement,
--
Xavier Oswald
GNU/Linux Debian Developer - http://www.debian.org/
GPG key IDs: 0x88BBB51E, 0x464B8DE3

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
jerome moliere
Merci pour la précision de ta réponse..
En fait faut pas le dire , mais je veux faire un paquet se substituant
au boulot qu'aurait pu (et du) faire un puppet intégré à un SVN
seulement voilà séparation des réseaux entre le dev et la prod (et pr é
prod) donc je veux faire un paquet qui embarque un peu d'intelligence
pour m'installer dans l'environnement cible les choses au bon endroit
(je ne vise pas du tout de déployer ceci sur un dépôt public)

Le plus simple, si tu as par exemple

mon_prog/conf1
mon_prog/conf2
mon_prog/debian/*

tu peux faire un fichier de type
mon_prog/debian/install

qui contient :
conf1 /opt/preprod/conf1
conf2 /opt/preprod/conf2

Cela si tu connais ton environnement.

Maintenant si tu ne sais pas à l'avance, je te conseille dans un fichie r
postinst de faire la détection de l'env et de traiter les cas nécessa ires.




c'est en effet mon cas
Après pour une question d'update, tu peux traiter certains cas dans le postinst
afin de ne pas supprimer la config. Ou simplement utiliser debconf pour d emander
à l'administrateur de la machine s'il veut garder la version présente ou
remettre celle par défaut. A toi de voir ce que tu veux...



puis je insister sur ce point, comment choisir entre debconf et
travail manuel ?
ou reformulée autrement, quand est ce que debconf va se déclencher ?
et comment le paramétrer?

Après pour la suppression, tu peux traiter des choses par le postrm et le prerm.





merci encore
jerome
--
Jerome Moliere - Mentor/J
http://romjethoughts.blogspot.com/
auteur Eyrolles

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Xavier Oswald
On 15:21 Tue 10 Aug , jerome moliere wrote:
> Après pour une question d'update, tu peux traiter certains cas dans le postinst
> afin de ne pas supprimer la config. Ou simplement utiliser debconf pour demander
> à l'administrateur de la machine s'il veut garder la version présente ou
> remettre celle par défaut. A toi de voir ce que tu veux...

puis je insister sur ce point, comment choisir entre debconf et
travail manuel ?
ou reformulée autrement, quand est ce que debconf va se déclencher ?
et comment le paramétrer?




Tu as tout le détail dans le paquet debconf-doc et man debconf-devel (7). Il y a
des exemples avec.

Le mieu est de regarder comment font d'autres paquets pour avoir une idée du
potentiel.


Je pense que tu devrais détecter ton env et faire ton install. Ainsi que avoir
une détection si les fichiers de confs sont présents et s'il le sont, lancer
debconf et demander ce qu'il faut faire avec les fichiers de conf. Je ferai
quelque chose comme ca je pense. De plus debconf te permet d'internationnaliser
tes chaines.

Donc un truc comme ca:
===================== Si les fichiers sont absent
Copier les fichiers
Sinon
Lancer debconf template
Si remplacer les fichiers selectionnés
Ecraser les fichiers avec ceux du paquet
Sinon
Ne rien faire.
Fin

> Après pour la suppression, tu peux traiter des choses par le postrm et le prerm.
>

merci encore



Pas de soucis.

Cordialement,
--
Xavier Oswald
GNU/Linux Debian Developer - http://www.debian.org/
GPG key IDs: 0x88BBB51E, 0x464B8DE3

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/