Comment mettre à jour Rhasspy

Mettre à jour Rhasspy via Docker

Là encore, Docker brille par son efficacité dans la mise à jour d’une image. Il suffit juste d’exécuter cette ligne de commande :

docker pull rhasspy/rhasspy

Attention, si tu as installé Rhasspy via Docker sur un pi 0, alors il faudra préciser l’architecture en modifiant la ligne comme ceci :

docker pull --platform linux/arm/v6 rhasspy/rhasspy

Une fois la mise à jour faite, nous allons arrêter le conteneur et le supprimer pour qu’un nouveau conteneur soit créé, basé sur l’image mise à jour.

Pour rappel, l’image, c’est un peu comme le document original que l’on met dans le scanner alors que le conteneur, c’est la photocopie.

docker stop rhasspy
docker rm rhasspy

Il ne nous reste plus qu’à recréer notre nouveau conteneur :

docker run -p 12101:12101 \
      -v "$HOME/.config/rhasspy/profiles:/profiles" \
      -v "/etc/localtime:/etc/localtime:ro" \
      -d --restart unless-stopped \
      --name rhasspy \
      --device /dev/snd:/dev/snd \
      rhasspy/rhasspy \
      --user-profiles /profiles \
      --profile fr

Si on veut se simplifier la vie, autant mettre tout ça dans un script qu’on appellera pour faire toutes ces actions en une commande.

touch /home/pi/mis_a_jour_rhasspy.sh
chmod +x /home/pi/mis_a_jour_rhasspy.sh
nano /home/pi/mis_a_jour_rhasspy.sh

Et on y colle les lignes ci-dessous

# Mise à jour de l'image
docker pull rhasspy/rhasspy

# Arret et suppression du conteneur
docker stop rhasspy
docker rm rhasspy

# Lancement d'un nouveau conteneur mis à jour
docker run -p 12101:12101 \
      -v "$HOME/.config/rhasspy/profiles:/profiles" \
      -v "/etc/localtime:/etc/localtime:ro" \
      -d --restart unless-stopped \
      --device /dev/snd:/dev/snd \
      rhasspy/rhasspy \
      --user-profiles /profiles \
      --profile fr

Et voilà, quand tu voudras mettre à jour Rhasspy, il te suffira lancer la commande suivante :

/home/pi/mis_a_jour_rhasspy.sh

7 Comments

  1. Bonjour,
    Je suis passé en environnement virtuel.
    Sur mon satellite j’ai réussi à faire la mise à jour en 2.5.8 sans soucis avec le tuto,
    mais pour le master maj retour l’erreur suivante:

    /bin/bash: ligne 0 : cd: /home/rhasspypi/rhasspy/rhasspy-tts-larynx-hermes/larynx/TTS: Aucun fichier ou dossier de ce type
    make: *** [Makefile:168: install-rhasspy] Error 1

    J’ai essayé avec et sans update on sais jamais mais rien et j’utilse pas larynx.

    Merci de tes lumières…(surtout de tes connaissances) 🙂

    • Bonjour Hervé,

      Effectivement, Larynx pose soucis. Comme nous ne l’utilisons pas, voici le contournement :
      ./configure RHASSPY_LANGUAGE=fr \
      --disable-speech-to-text \
      RHASSPY_WAKE_SYSTEM=snowboy \
      --enable-in-place \
      --disable-larynx

      J’en ai profité pour mettre à jour l’article 😉

      Bon dimanche !

      Ced

  2. Re Ced

    Effectivement maintenant ça fonctionne ! 🙂
    Je viens de me rendre compte en refaisant la procédure que j’avais tout bonnement oublier d’arrêter le conteneur au moment de la mise en place du script car avant ces 2 tutos mon conteneur ne démarré pas automatique et je pensais à l’arrêter pour entrer les commandes en console.
    Là je suis entrain d’essayer de faire fonctionner mes commandes avec jeeRhasppy et après je tenterai la mise en place d’un satellite et peut-être un MQTT;
    Espoir 🙂

    Encore merci

  3. Bonjour Cedox,

    Je fait suite à mon dernier message.
    Le soucis doit venir du fait que j’ai modifié l’utilisateur par défaut dés le début avant toute installation et j’ai bien fait attention de modifier les chemins d’accés lors de l’installation mais l’exécution de la mise à jour me renvoi comme quoi il ne trouve pas le contener rhasspy:

    sudo /home/rhasspypi/./mis_a_jour_rhasspy.sh

    /home/rhasspypi/mis_a_jour_rhasspy.sh
    Using default tag: latest
    latest: Pulling from rhasspy/rhasspy
    Digest: sha256:885580155f24e4e91e9eca43e32e1c4223486278e45284911fd57fe4478b9a83
    Status: Image is up to date for rhasspy/rhasspy:latest
    docker.io/rhasspy/rhasspy:latest
    Error response from daemon: No such container: rhasspy
    Error: No such container: rhasspy
    6ab197eb41bf7ebe78f7c29de08f1bc3950403ac822097acbd0cde3457e060c5
    docker: Error response from daemon: driver failed programming external connectivity on endpoint magical_rhodes (fbdce718afbf7335eed28c6b290fc300ff7c9287fbbf47bd0b716e41c24f4ac3): Bind for 0.0.0.0:12101 failed: port is already allocated.

    Enfin je pense que ça viens de là

    Hervé

    • Bonjour Hervé,

      Le problème semble être que tu n’as pas nommé ton conteneur. Pour corriger ça :
      $ docker container ls
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      5c79353b0837 rhasspy/rhasspy "bash /usr/lib/rhass…" 5 minutes ago Up 36 seconds 0.0.0.0:12101->12101/tcp affectionate_wilson

      Là tu as le nom du container (aléatoire) : affectionate_wilson
      Ensuite tu arrêtes et supprimes ce conteneur
      $ docker stop affectionate_wilson
      $ docker rm affectionate_wilson

      Ensuite tu relances avec la commande “docker run [blabla]” qui est dans l’article et qui a le paramètre “–name” et qui nomme ton conteneur rhasspy.
      Normalement, après le script devrait marcher 😉

      Ced

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*


Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.