Fedora-Fr - Communauté francophone Fedora - Linux

Communauté francophone des utilisateurs de la distribution Linux Fedora.

  

Dernière news : Représenter Fedora au Capitole du Libre 2019

#1 12/12/2016 18:44:49

RPMnoobs
Membre
Inscription : 12/12/2016
Messages : 20

[Résolu] Mise à jour partielle avec RPM

Bonjour,

Après des jours de recherche et d'essais non validés, je décide donc de demander un grand HELP sur ce forum..
Alors voilà, je dois créer un paquet RPM pour une application complexe développée par l'entreprise où je travaille (je suis apprenti).
Je réussi sans problème à installer l'application avec un paquet rpm, avec l'arborescence que je veux. Je bloque sur les mises à jours..
En effet, lorsque je veux mettre à jour l'application (prenons l'exemple qu'un seul fichier ai été changé), RPM supprime l'ancienne release et ne me garde que les changements effectués.

J'aimerai que RPM remplace que les fichiers modifiés, sans avoir à mettre dans le paquet RPM toutes les sources, même celles non modifiées..

En gros, j'ai un paquet avec 3 fichiers (toto.conf, toto.e et toto.doc).
Pour une première installation et pour un changement de version, j’intègre dans mon paquet l'ensemble des fichiers.

Par contre, si je ne veux changer que toto.conf par exemple, j'aimerai juste envoyer un paquet rpm avec ce seul fichier modifié, sans avoir à envoyer toutes les sources, où à les décupler sur mon pc pour créer un patch.

En effet, l'application est tellement lourde qu'il  vaudrait mieux éviter..

Je vous remercie d'avance pour vos réponses..


PS : Si quelqu'un pourrait aussi me dire la technique pour intégrer un script interactif dans la post-installation.. ça serai génial!

Cordialement,
Théo

Hors ligne

#2 12/12/2016 19:06:53

nouvo09
Accro à Fedo !
Lieu : Paris
Inscription : 22/09/2005
Messages : 21 853

Re : [Résolu] Mise à jour partielle avec RPM

Regarde si ça peut t'être utile:

https://www.filedesc.com/fr/file/drpm


C'est pas parce que c'est difficile qu'on n'ose pas,
c'est parce qu'on ose pas que c'est difficile !

#3 12/12/2016 20:27:36

RPMnoobs
Membre
Inscription : 12/12/2016
Messages : 20

Re : [Résolu] Mise à jour partielle avec RPM

Merci pour ta réponse nouvo09 !

Je vais creuser sur ces .drpm !

Je te tiens au courant de mon avancée smile

Hors ligne

#4 12/12/2016 23:15:20

antbel
Membre
Inscription : 03/12/2007
Messages : 727

Re : [Résolu] Mise à jour partielle avec RPM

man createrepo avec option --deltas

Tells createrepo to generate deltarpms and the delta metadata


https://fedorahosted.org/spacewalk/wiki/DeltaRpmSupport

https://admin.fedoraproject.org/pkgdb/p … /deltarpm/

Dernière modification par antbel (12/12/2016 23:27:20)


Cicéron c'est Poincaré

Hors ligne

#5 14/12/2016 09:18:22

RPMnoobs
Membre
Inscription : 12/12/2016
Messages : 20

Re : [Résolu] Mise à jour partielle avec RPM

Bonjour,

Après avoir creusé sur les .drpm et createrepo, j'ai réussi à installer des révisions avec uniquement les changements en utilisant l'utilitaire yum.

Cependant cela pose encore des problèmes : en effet cela suppose que le client devrait installer createrepo, mettre en place un repo et créer une configuration locale de yum (ce qui n'est pas difficile je vous l'accorde).

De plus, l'update marche uniquement avec le premier deltarpm qu'on lui passe dans le repo, mais lorsque le deuxième arrive, yum m'indique des erreurs communes comme "No parckages marked" ou "no more mirror to try"

Je vais essayer de creuser encore plus sur ces deltas, mais si vous voyez ou même entrevoyez une solution intermédiaire je suis prenant..
Merci d'avance !

Hors ligne

#6 14/12/2016 09:48:15

RPMnoobs
Membre
Inscription : 12/12/2016
Messages : 20

Re : [Résolu] Mise à jour partielle avec RPM

Lorsque je crée un .drpm

$ makedeltarpm old.rpm new.rpm delta.drpm

Dans "new.rpm" ne se trouve que le fichier ayant été modifié par rapport à old.rpm.
Je rajoute ensuite le delta.drpm dans mon dépôt yum, puis je mets à jour.

$ yum update 

Mon paquet se met bien à jour. Cependant il écrase tout les fichiers et ne conserve que le fichier changé!
Comme RPM fait lorsqu'il efface complètement l'ancienne version..

Lorsque je crée un .drpm à partir d'un new.rpm complet, le delta est aussi lourd que ce dernier, je n'y vois donc plus l'utilité..

Hors ligne

#7 14/12/2016 15:16:39

RPMnoobs
Membre
Inscription : 12/12/2016
Messages : 20

Re : [Résolu] Mise à jour partielle avec RPM

Je cherche de nouvelles solutions..

Je viens de faire la découverte de %posttrans et %pretrans, mais ils sont malheureusement très mal documentés..

A quoi servent ces deux sections ?

D'avance merci..

Hors ligne

#8 15/12/2016 10:19:15

RPMnoobs
Membre
Inscription : 12/12/2016
Messages : 20

Re : [Résolu] Mise à jour partielle avec RPM

Bien, j'ai enfin trouvé la solution à mon problème.
Elle est bizarre, mais la voici :

Pour une première installation, et/ou un changement de version j'utilise -Uvh, ce qui va me supprimer tout mes anciens paquets et les mettre à jour à la nouvelle version.

Pour des petits correctifs, et afin de ne pas renvoyer les sources entières à chaque fois, j'utilise rpm -ivh.
De plus, on pourra voir toutes les releases effectuées entre deux versions dans la base de donnée.

Je n'y vois pour l'instant aucun inconvénient d'utiliser cette technique à part surcharger la db si un nombre trop important de correctifs est envoyé.
Si vous y voyez un inconvénient, ça serait gentil de m'en faire part.

En attendant je mets ce sujet en résolu.

Hors ligne

#9 15/12/2016 10:21:17

Sifo-Dyas
Membre
Inscription : 14/12/2006
Messages : 160

Re : [Résolu] Mise à jour partielle avec RPM

RPMnoobs a écrit :

Je vais essayer de creuser encore plus sur ces deltas, mais si vous voyez ou même entrevoyez une solution intermédiaire je suis prenant..
Merci d'avance !

Bonjour,

C'est peut-être hors sujet, mais tu peux peut-être découper ton rpm, par exemple en 1 rpm applicatif, 1 rpm de config, 1 rpm de doc.

Hors ligne

Pied de page des forums