Création d'un paquet Wims pour Debian Stretch, quelques questions

Accueil Forums Gestion d’un serveur WIMS Installation d’un serveur WIMS Création d'un paquet Wims pour Debian Stretch, quelques questions

Ce sujet a 11 réponses, 3 participants et a été mis à jour par  François Lafont, il y a 2 semaines et 5 jours.

  • Auteur
    Messages
  • #4033

    François Lafont
    Participant

    Bonjour à tous,

    Je suis administrateur système pour l’Éducation Nationale et pour l’académie de Versailles en particulier, où il est question de remplacer notre serveur « d’exerciseur » de maths (qui s’appelle Euler) par Wims. Pour l’instant, le projet n’est qu’à ses débuts.

    Je me suis lancé dans l’installation de Wims (que je connais fort mal en tant qu’utilisateur d’ailleurs, pour l’instant je me place côté système forcément ;)) et en fait nous avons besoin d’une version assez proche de la version upstream. C’est pourquoi la version packagée de Debian Stretch (c’est l’OS utilisé ici) ne me convient pas. Mais pour faciliter les mises à jour sur le (futur) serveur de production, je voulais disposer d’un package Debian à partir des sources.

    C’est chose fait avec ceci (sur une Debian Stretch donc) :

    echo ‘deb http://apt.flaf.fr/ misc main’ >/etc/apt/sources.list.d/wims.list
    wget http://apt.flaf.fr/pub-key.gpg -O – | apt-key add –
    apt-get update && apt-get install wims

    Attention, l’url du dépôt est provisoire, à terme je devrais déplacer le dépôt sur un nom de domaine en ac-versailles.fr.

    Normalement, après le apt-get, on a un Wims UP avec Apache2 (l’envoi de mails n’est pas configuré et le fichier wims.conf n’est pas managé par le package, il m’a semblé que ce n’est pas le rôle du package). Tout est installé dans /opt/wims/.

    Déjà, pour commencer, je serais très intéressé par de retours car, comme je le disais, je connais assez mal Wims et en vérité je ne suis pas très à même de vérifier que l’installation est valide à 100%. En fait, en faisant ce package, cela m’a conduit à plusieurs questions qui sont l’objet de ce message.

    1. Je me suis inspiré de cette page http://wiki.wimsedu.info/doku.php?id=installation:debian:manual pour le build. Mais ne manque-t-il pas l’installation de Java (openjdk-8-jdk sur Debian Stretch) ? Sauf erreur, javac est nécessaire pour builder certaines choses, même si, sans lui, la compilation globale se termine sans erreur malgré tout. Du coup, j’ai un doute… 😉

    2. Java est-il nécessaire pour l’exécution de Wims (pas pour le build qui concerne le point 1 dessus mais bien pour l’utilisateur de Wims). Autrement dit, faut-il que openjdk-8-jdk soit une dépendance de mon paquet wims ?

    3. J’ai un aussi doute sur les fichiers/répertoires à inclure (et à ne pas inclure) dans le package. Une fois le ./compile terminé, on est d’accord que je n’ai pas besoin d’inclure ./src/ dans le package, n’est-ce pas ? Et ./tmp/, doit-il être inclus ? On dirait que oui car j’ai vu un fichier /opt/wims/tmp/log/wimslogd.new qui semble important pour wims. Du coup, j’ai inclus dans le package tous les fichiers/répertoires sauf ./src/, j’ai bon ?

    4. Le point le plus important pour moi. Après la compilation, j’ai donc inclus dans le package tous les fichiers/répertoires qui se trouvent à la racine, sauf /src/. Est-ce que j’ai la garantie qu’aucun de ces fichiers ne sera modifié par l’application Wims ? En effet, l’idée de ce package pour moi est de faciliter les mises à jours. Or par défaut, lors d’un upgrade, le traitement d’un fichier du package c’est (en général) :

    a) d’être écrasé
    b) puis remplacé par sa nouvelle version.

    Je ne donc voudrais pas que le package efface des données utilisateur ou de configuration lors des mises jour, bien évidemment. Le but est au contraire de pouvoir faire des mises à jour les plus transparentes possibles.

    5. À quoi correspond le lien wimsdev-latest.zip sur cette page https://sourcesup.renater.fr/frs/?group_id=379 ? Est-ce la dernière release, ie la version 4.15b au moment où ces lignes sont écrites ? Ou bien est-ce un tar.gz de l’état du dépôt SVN suite au dernier commit effectué ?

    6. J’ai constaté que bin/true et bin/false du dépôt SVN plantent sur ma VM 64 bit. Du coup, je les virés et j’ai mis à la place les binaires true et false de mon OS, j’imagine que ce ‘est pas un souci, n’est-ce pas ?

    7. Juste après la compilation, il y a un répertoire __MACOSX/ dans tmp/. On est d’accord que ce n’est pas quelque chose à garder et que c’est juste un résidu qui traîne ?

    8. J’ai constaté un fonctionnement étrange pour le fichier wimslogd. Il est présent juste après l’installation dans tmp/log/wimslogd.new mais dès la première requête Apache, le fichier disparaît de tmp/log/ et semble être déplacé dans bin/. Du coup, est-ce que a) b) c) ci-dessous sont corrects lors d’une mise à jour de Wims (via le package) ?

    a) rm de bin/wimslogd
    b) installation du package nouvelle version de wims avec un « nouveau » tmp/log/wimslogd.new,
    c) restart de apache2.

    9. Par ailleurs, est-ce possible de savoir à quoi sert ce fichier… en gros. Je constate dès la première requête Apache que le fichier bin/wimslogd semble tourner en mode daemon. C’est normal ?

    10. Quand c’est possible, j’aime bien désactiver la prise en charge des .htaccess pour Apache pour améliorer les performances (via AllowOverride None). Mais il semble que wims fait un usage important des .htaccess. Vous me confirmez que mettre AllowOverride None est impossible au niveau du Apache dans le cas de Wims ?

    Voilà. 🙂
    Désolé pour ce message un peu fleuve et merci d’avance pour votre aide.
    François Lafont

  • #4034

    Olivier
    Admin bbPress

    1. Je me suis inspiré de cette page http://wiki.wimsedu.info/doku.php?id=installation:debian:manual pour le build. Mais ne manque-t-il pas l’installation de Java (openjdk-8-jdk sur Debian Stretch) ? Sauf erreur, javac est nécessaire pour builder certaines choses, même si, sans lui, la compilation globale se termine sans erreur malgré tout. Du coup, j’ai un doute… 😉

    En fait, java n’est necessaire que pour la version « développeur » de WIMS. (celle qu’on obtient via SVN)
    Dans la version standard (le tgz), toutes les classes java sont précompilées et incluses dans l’archive.

    2. Java est-il nécessaire pour l’exécution de Wims (pas pour le build qui concerne le point 1 dessus mais bien pour l’utilisateur de Wims). Autrement dit, faut-il que openjdk-8-jdk soit une dépendance de mon paquet wims ?

    Non : pas besoin de Java. seuls certains modules (et de moins en moins) incluent des applets, qui ne seront exécutées que dans le navigateur des utilisateurs

    • Cette réponse a été modifiée le il y a 3 semaines et 2 jours par  Olivier.

    Olivier Bado - Université Nice Sophia Antipolis

  • #4036

    Olivier
    Admin bbPress

    4. Le point le plus important pour moi. Après la compilation, j’ai donc inclus dans le package tous les fichiers/répertoires qui se trouvent à la racine, sauf /src/. Est-ce que j’ai la garantie qu’aucun de ces fichiers ne sera modifié par l’application Wims ? En effet, l’idée de ce package pour moi est de faciliter les mises à jours. Or par défaut, lors d’un upgrade, le traitement d’un fichier du package c’est (en général) :

    a) d’être écrasé
    b) puis remplacé par sa nouvelle version.

    Je ne donc voudrais pas que le package efface des données utilisateur ou de configuration lors des mises jour, bien évidemment. Le but est au contraire de pouvoir faire des mises à jour les plus transparentes possibles.

    Les données utilisateur seront essentiellement stockées dans le répertoire « log ». (oui je sais ca peut sembler étrange 😉 c’est d’ailleurs également ici qu’on retrouve le fichier wims.conf

    Les sessions utilisateurs seront dans les dossiers « sessions » et « s2 »
    et en effet le dossier « tmp » est un dossier de travail.

    Pour ma part, je ne suis pas certain que la construction d’un paquet debian comme vous le décrivez soit une bonne idée. Surtout si la raison est de « faciliter » les mises à jour. En effet : ces dernières sont assez simple :

    http://wiki.wimsedu.info/doku.php?id=installation:debian:debian_upgrade

    Olivier Bado - Université Nice Sophia Antipolis

  • #4040

    François Lafont
    Participant

    Bonsoir,

    Merci beaucoup Olivier pour ces éléments de réponses.

    En effet, la màj ne semble pas être compliquée mais un autre avantage du paquet est aussi qu’on n’a pas à installer toutes les « build-depencencies » sur le serveur cible, mais bon je pinaille. 😉

  • #4041

    Olivier
    Admin bbPress

    En fait, je pense que vous devriez vous rapprocher de Georges Khaznadar. C’est lui qui maintient le paquet WIMS pour Debian.
    Je pense qu’ensemble vous devriez pouvoir rapprocher le paquet de la version « upstream », ce qui me semble préférable à maintenir un dépôt parallèle.

    Olivier Bado - Université Nice Sophia Antipolis

  • #4042

    François Lafont
    Participant

    Hello,

    En fait, je l’avais déjà fait mais c’est ce n’est pas si simple car le package de Georges est respectueux de la Debian Policy ce qui engendre beaucoup de contraintes, de complexités et donc de travail. Le package que j’ai fait est beaucoup simple mais, du coup, pas respectueux pour un sou de la Debian Policy (c’est un paquet qui n’aurait aucune chance d’être accepté dans les dépôts officiels Debian en l’état). C’est vraiment deux mondes différents. Je le sais bien parce que j’ai moi-même déjà eu l’occasion de proposer un package sur les dépôts officiels Debian, package qui a été sponsorisé par Georges justement. 😉

    Je pense qu’en l’état j’ai quelque chose qui fonctionne et, à moins que la méthode de compilation évolue, je ne devrais plus avoir grand chose à changer de ce côté là.

    Juste une chose qui aurait été pratique pour moi, c’est qu’il existe une url « constante » qui pointe toujours faire un .zip ou un .tar.gz du dépôt tel qu’il se se trouve après le dernier commit en date. Github par exemple propose ce genre de chose par défaut et pour faire du packaging upstream c’est assez commode.

    À+

  • #4043

    bernadette
    Admin bbPress

    C’est presque le cas pour les versions release

    https://sourcesup.renater.fr/frs/download.php/latestfile/531/wims-4.15b.tgz

    Il n’y a que le numéro de version à changer (le 531 est stable !)

    Pour le svn, on ne préfère pas, il peut vraiment y avoir des versions boguées
    et c’est déconseillé sur un serveur en production (même si les versions stables
    ne le sont pas toujours !!). Si vous voulez vraiment la version svn pour un serveur de développement, autant faire un svn update tous les matins dans un crontab. Enfin, c’est ce que je fais.

    Bernadette

    • Cette réponse a été modifiée le il y a 2 semaines et 6 jours par  bernadette.
  • #4045

    François Lafont
    Participant

    Hello.

    Merci Bernadette pour ta réponse. Pour les releases, j’utilise cette page :

    https://sourcesup.renater.fr/frs/?group_id=379

    dans laquelle, la dernière release (4.15b) est accessible via ce lien là :

    https://sourcesup.renater.fr/frs/download.php/file/5344/wims-4.15b.tgz

    Mais j’imagine que ça revient au même que le lien que tu as indiqué.

    Sinon, ok pour SVN, je me limiterai à la dernière release c’est plus prudent, et ce sera déjà très bien comme ça. Merci pour l’aide.

  • #4046

    bernadette
    Admin bbPress

    Oui, mais le 5344 varie il me semble. Alors que le 531 ne change pas !
    Il suffit donc d’avoir un paramètre qui est la version de wims.

    A propos, vous vous êtes bien abonné pour avoir le message lors d’une release ?
    Même s’il n’est pas toujours utile de la faire à chaque fois.

    Bernadette

  • #4047

    François Lafont
    Participant

    Pour les liens qui se trouvent sur la « page de releases » (https://sourcesup.renater.fr/frs/?group_id=379), ce n’est pas pas un souci s’ils ne sont pas constants. En effet, pour aller chercher le bon tgz (en fonction du numéro de version), Debian fournit un outil qui s’appelle watch et qui parse le code html de la page de releases afin de trouver automatiquement le lien vers le tgz du code source. Il faut juste fournir à watch une petit regex pour l’aider à trouver le lien. Sur ce point, je ne me suis pas trop cassé la tête, j’ai globalement repris le fichier watch du paquet Debian officiel fait par Georges Khaznadar. 😉

    Sinon, pour la liste, non, je ne suis pas inscrit mais effectivement ça m’intéresserait de l’être afin de savoir quand une nouvelle release est disponible. Où puis-je procéder à l’inscription ?

  • #4048

    Olivier
    Admin bbPress

    Sinon, pour la liste, non, je ne suis pas inscrit mais effectivement ça m’intéresserait de l’être afin de savoir quand une nouvelle release est disponible. Où puis-je procéder à l’inscription ?

    Sur la page des releases; il y a une petite enveloppe : c’est un lien qui permet de « surveiller ce paquet » :

    https://sourcesup.renater.fr/frs/?group_id=379
    (il faut être connecté avant de cliquer sur l’enveloppe)

    • Cette réponse a été modifiée le il y a 2 semaines et 5 jours par  Olivier.

    Olivier Bado - Université Nice Sophia Antipolis

  • #4050

    François Lafont
    Participant

    Ok, je crois c’est bon. Merci Olivier. 😉

Vous devez être connecté pour répondre à ce sujet.