IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Conseils pour un programme de mise à jour des programmes


Sujet :

Python

  1. #1
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut Conseils pour un programme de mise à jour des programmes
    Bonjour,

    Certains de mes programmes sont utilisés par des membres d'une association, et j'aimerais créer un logiciel de mise à jour de ces programmes. A noter que ces programmes distribués (sous Windows) n'ont pas besoin d'être "installés" (=> cx_freeze ou Python portable).

    Je dispose d'un serveur ftp internet dans lequel je pourrais mettre la nouvelle version du programme utilisateur.

    Au lancement du programme par l'utilisateur, ce logiciel pourrait tester la présence d'une mise à jour, la proposer et si ok la charger et l'installer.

    Je connais les techniques de base Python pour ça (ftplib, zipfile, hashlib, etc...) mais je n'ai jamais fait un tel logiciel: quelqu'un qui en a l'expérience peut-il me conseiller?

    Merci d'avance!

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut tyrtamos,

    J'utilise cette méthode pour la mise à jour de la doc d'Oqapy.

    La doc, en deux langues actuellement, est susceptible de mise-à-jour indépendamment du programme.

    Sur mon serveur, j'ai un fichier dont le nom, et a fortiori l'url, ne change jamais. L'application le télécharge lors de l'usage de la doc par l'utilisateur. Ce fichier, au format json, donne un dictionnaire de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    {
        "en_UK": {
            "lang": "English",
            "md5": "54da0e96afc89887d012b2ff043e37f2eca1bb87fb38c4f5d042a545",
            "pack": "oqapyDoc-en_UK.1.0.tar.gz",
            "size": 2330086,
            "version": "1.0"
        },
        "fr_FR": {
            "lang": "Fran\u00e7ais",
            "md5": "463b3ed9de090a8761d012edb843acd4c0a52ac8625dae0aa1a72735",
            "pack": "oqapyDoc-fr_FR.1.0.tar.gz",
            "size": 2331491,
            "version": "1.0"
        }
    }
    La clef "version" est la dernière version disponible et sera donc comparée à celle installée.

    En cas de nouvelle version disponible, une boîte de dialogue propose à l'utilisateur de l'installer.

    Le nom du package à installer est décrit avec la clef "pack" il suffit d'ajouter l'adresse du serveur pour reconstituer son url.

    J'ai même ajouté le md5 du paquet pour vérifier son intégrité.

    Dans ton cas, comme il s'agit du logiciel lui-même, il faudra proposer à l'utilisateur de redémarrer le programme.

  3. #3
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Merci VinsS! C'est bien le type de conseils que je souhaitais recevoir!

    Je pensais faire ça en comparant simplement les dates des fichiers, mais je craignais ce faisant les mauvaises configurations d'horloge des PC des utilisateurs. Le suivi des versions est bien meilleur. Et rien n'empêche de faire une copie réduite aux fichiers qui ont été effectivement modifiés (je préfère sha256 au MD5 pour limiter les risques de collision) si les fichiers à copier sont de grande taille.

    Ça résout mon problème de mise à jour de programme, objet du présent fil, mais pas la mise à jour d'une base de données pour laquelle je n'ai pas de gestion de version. Il faudra probablement que le logiciel de mise à jour en analyse le contenu pour savoir s'il faut la moderniser.

    Je laisse le fil de discussion encore ouvert un moment au cas où il y aurait d'autres contributions...

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/01/2011, 21h12
  2. Programme de mise à jour pour OpenBSD
    Par Olivier Regnier dans le forum C
    Réponses: 2
    Dernier message: 31/03/2008, 10h21
  3. Programmer la mise à jour des tables attachées
    Par _developpeur_ dans le forum Access
    Réponses: 3
    Dernier message: 02/12/2005, 20h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo