Re: Editar arxius al postinst d'un paquet debian
Hola, Daniel > No recordo de on vaig agafar la recepte, però els paquets els > faig directament amb fakeroot dpkg --build CARPETA, on tinc ja > creada la estructura del paquet, un directori DEBIAN, amb els > conffiles, config, control i postinst..., i els etc i usr que > corresponguin al paquet. Fent-ho d'aquesta manera et perds una part important de les eines i utilitats que ajuden a fer i comprovar que els paquets estan ben fets. No és que estigui malament, és una drecera que té alguns avantatges i alguns inconvenients. L'inconvenient més destacable potser és el fet que no pots personalitzar els paquets com a tu t'agradaria i per això acabes fent-ho al postinst. > Normalment es un script bash o un conjunt de script, que no em > cal compilar ni fer res especial a banda de configurar usuari, > paths Per això feia servir el script postinst. Configurar els usuaris és una tasca habitual al postinst però què configures dels paths? Ho pregunto per entendre millor el que necessites. > En temps d'instal·lació vull personalitzar les rutes. Pots posar un exemple? > El problema es, per exemple, editar la llista d'arxius a fer > backup. Es una llista variable i amb debconf no he trobat la > manera. No crec que debconf sigui l'eina adequada per això. La forma habitual seria que el paquet incorpori un exemple de configuració o una configuració mínima i després permetés personalitzar-la, però després d'haver acabat la instal·lació del paquet. Si la llista d'arxius és molt gran (de l'ordre de desenes o centenars de directoris), no seria gaire pràctic introduir-los o seleccionar-los via debconf. És més interessant poder generar aquesta configuració a posteriori (no em refereixo al postinst). > Abans ho solucionava directament amb vi /etc/configuracio/ > llista.conf, però a part de ser una mica cafre, no es > compatible amb ansible i es aquí on volia trobar la manera > "elegant" de fer-ho. Jo faria un paquet amb una configuració mínima, comú a tots els servidors, i que l'ansible instal·li a posteriori la llista.conf on toca i amb el contingut personalitzat segons una plantilla, com fem aquí: https://gitlab.com/caliu-cat/masovers/ansible/-/blob/main/roles/base/tasks/main.yml Salut, Alex -- ⢀⣴⠾⠻⢶⣦⠀ ⣾⠁⢠⠒⠀⣿⡁ Alex Muntada ⢿⡄⠘⠷⠚⠋ Debian Developer log.alexm.org ⠈⠳⣄ signature.asc Description: PGP signature
Re: Editar arxius al postinst d'un paquet debian
Gràcies per les respostes, encara estic llegint els enllaços del Narcís, No recordo de on vaig agafar la recepte, però els paquets els faig directament amb fakeroot dpkg --build CARPETA, on tinc ja creada la estructura del paquet, un directori DEBIAN, amb els conffiles, config, control i postinst..., i els etc i usr que corresponguin al paquet. Normalment es un script bash o un conjunt de script, que no em cal compilar ni fer res especial a banda de configurar usuari, paths Per això feia servir el script postinst. En temps d'instal·lació vull personalitzar les rutes. Si es una variable no n'hi ha problema. He trobat la solució amb debconf. El problema es, per exemple, editar la llista d'arxius a fer backup. Es una llista variable i amb debconf no he trobat la manera. Abans ho solucionava directament amb vi /etc/configuracio/llista.conf, però a part de ser una mica cafre, no es compatible amb ansible i es aquí on volia trobar la manera "elegant" de fer-ho. Trobo que fer-ho amb makefiles es complicar massa la cosa, però potser es la única manera. Salut i agraït per qualsevol idea, Daniel El 22/6/21 a les 14:11, Alex Muntada ha escrit: Hola, Daniel Mirant-me una mica més la documentació he començat a fer servir debconf i els templates per demanar els paràmetres, però no trobo cap manera fàcil quan tinc que modificar un arxiu sencer. Em sembla intuir que el que vols és parametritzar l'execució de l'script segons l'entorn en què es trobi, però em falta context. Podries explicar amb més detall el problema que vols resoldre? No acabo d'entendre per què el postinst hauria de modificar un fitxer sencer que ja vingui empaquetat. Amb un exemple senzill d'un dels scripts serà suficient. Quina es la forma elegant de fer-ho? O alguna guia una mica avançada de crear paquets debs per scripts (només he trobat per crear paquets compilats, i les que estan orientades a fer-ho de manera manual son molt bàsiques) Si el codi té un Makefile, en general és força senzill fer un paquet que l'utilitzi per instal·lar el resultat d'executar «make && make install». A la wiki https://wiki.debian.org/Packaging/Intro tens un exemple basat en codi compilat però fer-ho per un script seria encara més fàcil perquè la part del «make» segurament no haurà de fer res. Salut, Alex -- ⢀⣴⠾⠻⢶⣦⠀ ⣾⠁⢠⠒⠀⣿⡁ Alex Muntada ⢿⡄⠘⠷⠚⠋ Debian Developer log.alexm.org ⠈⠳⣄
Re: Editar arxius al postinst d'un paquet debian
2021-06-21, 20:04 (+0200); Daniel escriu: > Quina es la forma elegant de fer-ho? O alguna guia una mica avançada > de crear paquets debs per scripts (només he trobat per crear paquets > compilats, i les que estan orientades a fer-ho de manera manual son > molt bàsiques) No tinc gaire experiència en això, però jo crec que l'estratègia més habitual és utilitzar un makefile, tant si és un script com un programa compilat. Llavors els scripts que construeixen el paquet Debian simplement fan make & make install i empaqueten el resultat. L'únic que has de fer és crear el fitxer control i changelog, que són els únics específics per al teu paquet, la resta tenen un contingut genèric i pots re-ciclar els d'altres paquets. Et poso un exemple d'un paquet que instal·la un script shell, tot i que no sé et servirà gaire perquè també compila i instal·la uns mòduls, però si elimines el directori module/ i els fitxers guile.am, pre-inst-env.in, i edites el configure.ac per eliminar les referències a GUILE i als fitxers que has eliminat, hauria de quedar un paquet amb un simple script: https://github.com/nfdisco/csv2sc Salutacions.
Re: Editar arxius al postinst d'un paquet debian
Hola, Daniel > Mirant-me una mica més la documentació he començat a fer servir > debconf i els templates per demanar els paràmetres, però no > trobo cap manera fàcil quan tinc que modificar un arxiu sencer. Em sembla intuir que el que vols és parametritzar l'execució de l'script segons l'entorn en què es trobi, però em falta context. Podries explicar amb més detall el problema que vols resoldre? No acabo d'entendre per què el postinst hauria de modificar un fitxer sencer que ja vingui empaquetat. Amb un exemple senzill d'un dels scripts serà suficient. > Quina es la forma elegant de fer-ho? O alguna guia una mica > avançada de crear paquets debs per scripts (només he trobat per > crear paquets compilats, i les que estan orientades a fer-ho de > manera manual son molt bàsiques) Si el codi té un Makefile, en general és força senzill fer un paquet que l'utilitzi per instal·lar el resultat d'executar «make && make install». A la wiki https://wiki.debian.org/Packaging/Intro tens un exemple basat en codi compilat però fer-ho per un script seria encara més fàcil perquè la part del «make» segurament no haurà de fer res. Salut, Alex -- ⢀⣴⠾⠻⢶⣦⠀ ⣾⠁⢠⠒⠀⣿⡁ Alex Muntada ⢿⡄⠘⠷⠚⠋ Debian Developer log.alexm.org ⠈⠳⣄ signature.asc Description: PGP signature
Re: Editar arxius al postinst d'un paquet debian
Aquí he trobat una pàgina sobre el tema: https://wiki.debian.org/Packaging També t'adjunto un paquet com l'havia fet jo per a un programet (xhash en ShellScript), i el programet que feia servir per a descarregar del repositori Git i empaquetar (git-to-deb). Allò que contenia el repositori Git es pot reconstruir a partir del contingut del paquet .deb i algun dels retocs que fa l'empaquetador. Narcis Garcia __ I'm using this dedicated address because personal addresses aren't masked enough at this mail public archive. Public archive administrator should fix this against automated addresses collectors. El 21/6/21 a les 20:04, Daniel ha escrit: > Hola, > > Habitualment empaqueto els meus scripts en .deb per ús intern. Son > bastant xapucilles però fan la feina. Per configurar-ho anava a saco i > al postinst feia, si calia, un vi del .conf. A part de saltar-me > qualsevol protocol de debian, falla quan s'instal·la en mode no > interactiu com per exemple amb ansible. > > Mirant-me una mica més la documentació he començat a fer servir debconf > i els templates per demanar els paràmetres, però no trobo cap manera > fàcil quan tinc que modificar un arxiu sencer. Quina es la forma elegant > de fer-ho? O alguna guia una mica avançada de crear paquets debs per > scripts (només he trobat per crear paquets compilats, i les que estan > orientades a fer-ho de manera manual son molt bàsiques) > > Gràcies per endavant, > > Daniel > > xhash_1.2.2_all.deb Description: application/vnd.debian.binary-package git-to-deb.sh Description: application/shellscript
Editar arxius al postinst d'un paquet debian
Hola, Habitualment empaqueto els meus scripts en .deb per ús intern. Son bastant xapucilles però fan la feina. Per configurar-ho anava a saco i al postinst feia, si calia, un vi del .conf. A part de saltar-me qualsevol protocol de debian, falla quan s'instal·la en mode no interactiu com per exemple amb ansible. Mirant-me una mica més la documentació he començat a fer servir debconf i els templates per demanar els paràmetres, però no trobo cap manera fàcil quan tinc que modificar un arxiu sencer. Quina es la forma elegant de fer-ho? O alguna guia una mica avançada de crear paquets debs per scripts (només he trobat per crear paquets compilats, i les que estan orientades a fer-ho de manera manual son molt bàsiques) Gràcies per endavant, Daniel