benevoles:technique:yunohost_mutu
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
benevoles:technique:yunohost_mutu [2023/01/16 11:24] – [Conflit APT entre mobilizon et onlyoffice] ljf | benevoles:technique:yunohost_mutu [2025/04/13 16:16] (Version actuelle) – gauthier67 | ||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
Sur cette même instance se trouve la carte wifi-with-me dédié à la collecte des données géographique des personnes intéressées par le projet ( wifi.arn-fai.net ) | Sur cette même instance se trouve la carte wifi-with-me dédié à la collecte des données géographique des personnes intéressées par le projet ( wifi.arn-fai.net ) | ||
- | C'est sur cette instance qu'à été bâti le " | + | Aujourd'hui, les services sans-nuage.fr, |
- | ===== Conflit APT entre mobilizon et onlyoffice ===== | + | * les [[https:// |
- | OBSOLETE (mobilizon_ynh utilise maintenant des versions précompilées) | + | * les services réservés aux membres sur sans-nuage.fr |
- | En deux mot : rabbitmq-server dépends de pleins de trucs en erlang (des dépôts debian vanilla) ... et Mobilizon dépends de erlang, mais d'une version | + | ===== Provisionnement |
+ | Voici comment | ||
- | Une explication / solution possible est de bricoler le fichier control du .deb de esl-erlang (voulu par Mobilizon) pour donner des versions explicites aux paquets dans " | + | < |
- | < | + | * Points d' |
- | cd /root/ | + | [https://forum.arn-fai.net/ |
- | mkdir hack_esl_erlang_for_compat_with_rabbitmq | + | |
- | apt download esl-erlang | + | |
- | cp esl-erlang_1%3a23.1-1_amd64.deb esl-erlang_1%3a23.1-1_amd64.deb.original | + | |
- | ar x esl-erlang_1%3a23.1-1_amd64.deb | + | |
- | tar -xvf control.tar.xz | + | |
- | vim ./control | + | |
- | </code> | + | |
- | Dans le fichier, on ajoute " | + | Base de données de MDP (keepassXC ou firefox avec mdp fort) |
- | < | + | Ordi sous linux |
- | Provides: erlang-abi-17.0 (= 1:23.1-1), erlang-base-hipe (= 1:23.1-1), erlang-dev (= 1:23.1-1), erlang-appmon (= 1:23.1-1), erlang-asn1 (= 1:23.1-1), erlang-common-test (= 1:23.1-1), erlang-corba (= 1:23.1-1), erlang-crypto (= 1:23.1-1), erlang-debugger (= 1:23.1-1), erlang-dialyzer (= 1:23.1-1), erlang-docbuilder (= 1:23.1-1), erlang-edoc (= 1:23.1-1), erlang-eldap (= 1:23.1-1), erlang-erl-docgen (= 1:23.1-1), erlang-et (= 1:23.1-1), erlang-eunit (= 1:23.1-1), erlang-gs (= 1:23.1-1), erlang-ic (= 1:23.1-1), erlang-inets (= 1:23.1-1), erlang-inviso (= 1:23.1-1), erlang-megaco (= 1:23.1-1), erlang-mnesia (= 1:23.1-1), erlang-observer (= 1:23.1-1), erlang-odbc (= 1:23.1-1), erlang-os-mon (= 1:23.1-1), erlang-parsetools (= 1:23.1-1), erlang-percept (= 1:23.1-1), erlang-pman (= 1:23.1-1), erlang-public-key (= 1:23.1-1), erlang-reltool (= 1:23.1-1), erlang-runtime-tools (= 1:23.1-1), erlang-snmp (= 1:23.1-1), erlang-ssh (= 1:23.1-1), erlang-ssl (= 1:23.1-1), erlang-syntax-tools (= 1:23.1-1), erlang-test-server (= 1:23.1-1), erlang-toolbar (= 1:23.1-1), erlang-tools (= 1:23.1-1), erlang-tv (= 1:23.1-1), erlang-typer (= 1:23.1-1), erlang-webtool (= 1:23.1-1), erlang-wx (= 1:23.1-1), erlang-xmerl (= 1:23.1-1) | + | |
- | </ | + | |
- | puis mettre à jour le .deb avec le nouveau fichier: | ||
- | < | ||
- | rm -f control.tar control.tar.xz | ||
- | tar -cvf control.tar control | ||
- | xz control.tar | ||
- | ar r esl-erlang_1%3a23.1-1_amd64.deb control.tar.xz | ||
- | </ | ||
- | Et on peut ensuite faire : | + | |
- | <code> | + | * Expliquer l' |
- | dpkg -i esl-erlang_1%3a23.1-1_amd64.deb | + | [https:// |
- | </code> | + | |
+ | * Le serveur sans-nuage qui est une VM YunoHost sur le cluster | ||
+ | * La VM qui héberge le site web COIN (interface utilisateur et administrateur) | ||
+ | |||
+ | |||
+ | * Créer un compte sur le wiki avec des droits user | ||
+ | [https:// | ||
+ | |||
+ | * Donner des droits superutilisateur sur COIN | ||
+ | [https:// | ||
+ | |||
+ | |||
+ | |||
+ | Pour la procédure, il faut : | ||
+ | |||
+ | * Administrateur / Modérateur de COIN | ||
+ | * Gestion d' | ||
+ | |||
+ | |||
+ | ### Provisionnement de compte - Découverte de COIN | ||
+ | |||
+ | * Toute demande de service réalisée depuis l' | ||
+ | * Une notification est envoyée sur le Forum " | ||
+ | * **BUG** : **Le lien de la requête n'est pas cliquable" | ||
+ | * Cliquer sur " | ||
+ | * **BUG** : quand on valide un sous-compte Asso, par défaut le compte prends le nom du groupe | ||
+ | * FEATURE REQUEST : " | ||
+ | * Quand la demande est acceptée, cela créé un abonnement, et démarre donc une facturation (généralement 0€/an, sauf pour le compte asso principal et compte famille supplémentaire). | ||
+ | * Un abonnement créé, créé une configuration de service " | ||
+ | * Aller dans la section " | ||
+ | * Cliquer sur le service lié à l' | ||
+ | * Vérifier les données, surtout que le pseudo ne comporte que des " | ||
+ | * Cela prend un peu de temps en raison d'un timeout qui attend la bonne exécution du script de création d'user dans le serveur sans-nuage.fr (YunoHost) | ||
+ | * **BUG** : Une erreur 504 peut survenir, le lien de redirection ne pointe pas vers le nouveau service provisionné mais vers une URL invalide. Peut-être parce-que le service n'est pas provisionné avant le timout. | ||
+ | * Retourner dans la fiche du service (" | ||
+ | * BUG : le quota nextcloud n'est pas correctement configuré, il faut se rendre sur nextcloud pour le configurer. Voir prochaine section. | ||
+ | * Pour corriger, il faut modifier la commande occ dans le script (post-install) de provisionnement de compte externe sur la VM de COIN (ext) | ||
+ | * FEATURE REQUEST : définir le quota automatiquement en fonction du type d' | ||
+ | * Prévenir sur le forum que le compte a été créé ! | ||
+ | |||
+ | ### | ||
+ | |||
+ | * Aller sur l' | ||
+ | * Cliquer sur le stylo pour modifier | ||
+ | * Le quota par défaut est 1M. Vérifier le quota | ||
+ | * 3GB pour un compte individuel (quota mail + quota nextcloud = 5GB) | ||
+ | * 25GB pour un compte asso | ||
+ | * **ne pas oublier de valider avec la coche à droite** | ||
+ | * FEATURE REQUEST : Modifier le quota nextcloud par défaut à 50M et supprimer l' | ||
+ | |||
+ | |||
+ | ### Modification de compte YunoHost et nom sur Nextcloud - Pistes de debug du provisionnement sans-nuage.fr | ||
+ | * **BUG** : Si les utilisateurs modifient leur "Nom Complet" | ||
+ | * CONTOURNEMENT : Si un Admin modifie le compte YunoHost directement, | ||
+ | * se connecter au serveur sans-nuage.fr (interface administrateur YunoHost) [https:// | ||
+ | * vérifier si l' | ||
+ | * d'ici on peut modifier le quota email, adresse email principale, alias, redirection, | ||
+ | * FEATURE REQUEST : Feature 2) : demander le Nom Complet (Prénom Nom) du compte supplémentaire Asso pour qu'il soit correctement renseigné dans le compte YunoHost dès la création. | ||
+ | |||
+ | |||
+ | ### Modification de mot-de-passe par un administrateur | ||
+ | * FEATURE REQUEST (YunoHost) : Le MDP sans-nuage (compte user YunoHost) ne peut être récupéré en autonomie, | ||
+ | * CONTOURNEMENT : seul un admin peut le modifier et le transmettre de manière sécurisée en suivant cette procédure | ||
+ | |||
+ | * La modification se passe sur https:// | ||
+ | * Et l' | ||
+ | | ||
+ | 2) copier le lien dans le champ commentaire de l' | ||
+ | 3) prévenir la personne par mail où elle peut récupérer son MDP et préciser qu'il faut **IMPERATIVEMENT** qu' | ||
+ | |||
+ | ### Pour séparer/ | ||
+ | |||
+ | * Dans la fiche abonnement sur COIN changer nom de membre et l' | ||
+ | * Dans Yunohost détacher le compte du groupe | ||
+ | * Dans Nextcloud changer le quota si nécessaire | ||
+ | |||
+ | |||
+ | ### Suppression | ||
+ | |||
+ | * Bien s' | ||
+ | * Sur [la fiche du membre dans Yunohost](https:// | ||
+ | * Dans COIN : supprimer l' | ||
+ | | ||
+ | [https:// | ||
+ | |||
+ | ## | ||
+ | 2 possibilités : | ||
+ | - Créer les enregistrements DNS dans l' | ||
+ | - Configurer la zone entière sur nos serveurs DNS | ||
+ | |||
+ | Pour l' | ||
- | ===== Retirer un contenu illégal de lufi ===== | + | Délégation de zone |
+ | * se connecter sur l' | ||
+ | * trouver l' | ||
+ | * primaire : ARN, 89.234.141.65, | ||
+ | * secondaire : Tetaneutral, | ||
+ | * se connecter à ns0.arn-fai.et | ||
+ | * Ajouter la zone dans `/ | ||
+ | * `systemctl reload named` | ||
+ | * créer la zone DNS | ||
+ | ``` | ||
+ | cd / | ||
+ | cp template_dnsperso.tld nomdedomaineacreer.tld | ||
+ | ``` | ||
+ | * Remplacer le nom de domaine dans le fichier créé | ||
+ | * Au besoin, modifier les zones à partir des infos du yunohost '' | ||
+ | * Changer le timestamp et recharger la zone en suivant les [instructions ici](https:// | ||
+ | * `systemctl reload rndc` | ||
+ | * `dig A pekania.fr @127.0.0.1` | ||
+ | </ | ||
+ | ===== Lufi ===== | ||
+ | ==== Retirer un contenu illégal de lufi ==== | ||
* S' | * S' | ||
Ligne 67: | Ligne 163: | ||
Pour faire le ménage: | Pour faire le ménage: | ||
< | < | ||
- | sudo -u nextcloud /usr/bin/php7.3 --define apc.enable_cli=1 / | + | sudo -u nextcloud /usr/bin/php8.2 --define apc.enable_cli=1 / |
</ | </ | ||
Là il faut faire le tris et vérifier celleux qu'il faut supprimer | Là il faut faire le tris et vérifier celleux qu'il faut supprimer | ||
< | < | ||
- | sudo -u nextcloud /usr/bin/php7.3 --define apc.enable_cli=1 / | + | sudo -u nextcloud /usr/bin/php8.2 --define apc.enable_cli=1 / |
</ | </ | ||
Ligne 83: | Ligne 179: | ||
< | < | ||
#!/bin/bash | #!/bin/bash | ||
- | for username in $(yunohost user list --fields username | + | yunohost user list --output-as json | jq -r ' |
- | fullname="$(yunohost user info $username | + | username=$(echo "$line" |
- | | + | fullname=$(echo |
+ | | ||
if [[ " | if [[ " | ||
- | sudo -u nextcloud /usr/bin/php7.3 --define apc.enable_cli=1 / | + | echo $username $fullname |
+ | sudo -u nextcloud /usr/bin/php8.2 --define apc.enable_cli=1 / | ||
fi | fi | ||
done | done | ||
Ligne 102: | Ligne 200: | ||
< | < | ||
12 7 * * * root / | 12 7 * * * root / | ||
+ | </ | ||
+ | |||
+ | ==== Désactiver la possibilitée d' | ||
+ | Editier le fichier / | ||
+ | < | ||
+ | ' | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Etherpad ===== | ||
+ | |||
+ | ==== Diminuer la taille de la base de donnée ==== | ||
+ | Si vous avez un problème de taille de base de données etherpad: https:// | ||
+ | |||
+ | |||
+ | ===== Matrix ===== | ||
+ | ==== Administration ==== | ||
+ | < | ||
+ | Interface CLI [synadm](https:// | ||
+ | * Passer un utilisateur admin dans un salon : | ||
+ | `synadm room make-admin -u @user: | ||
+ | </ | ||
+ | |||
+ | ==== Problème de mot de passe dans Element ==== | ||
+ | |||
+ | < | ||
+ | Une fois connecté sur Element, certaines opérations nécessitent de re-rentrer son mdp. Il semble que cette demande de mdp ne soit pas implémenté en CAS. Du coup le mdp échoue. | ||
+ | |||
+ | Contournement : | ||
+ | * se connecter à synapse-admin, | ||
+ | * Sélectionner l' | ||
+ | * Noter le pseudo, Supprimer CAS | ||
+ | * Dans " | ||
+ | * Demander à l' | ||
+ | * Mets toi en navigation privée sur firefox | ||
+ | * va sur chat.sans-nuage.fr | ||
+ | * cliques sur "mot de passe oublié ?" | ||
+ | * via le mail reçu sur ta boite mail @sans-nuage.fr, | ||
+ | * Et là dans l' | ||
+ | * Remettre CAS avec le pseudo | ||
+ | </ | ||
+ | ==== Nettoyer la base de données ==== | ||
+ | |||
+ | < | ||
+ | Niveau 1 - via l' | ||
+ | * Donner des droits administrateur à votre compte matrix sans-nuage.fr permet de vous connecter à https:// | ||
+ | `su --command=" | ||
+ | * Vous pouvez par exemple supprimer les comptes invité plus vieux qu'une semaine | ||
+ | * Afficher 50 lignes par pages | ||
+ | * Sélectionner tout | ||
+ | * " | ||
+ | |||
+ | Niveau 2 utilisation de l'API d' | ||
+ | * Se connecter en tant que admin_ghentz pour avoir accès à l'API synadm ou configurer son propre path comme suit | ||
+ | * Ensuite aller dans votre client Element pour récupérer un jeton pour l'API synapse | ||
+ | * Tout en bas des paramètres, | ||
+ | * Ajouter les variables suivantes à votre path : | ||
+ | ``` | ||
+ | export SYNAPSE_HS=matrix.sans-nuage.fr | ||
+ | export SYNAPSE_TOKEN=le_jeton_recupere | ||
+ | ``` | ||
+ | |||
+ | Opérations de nettoyage | ||
+ | ``` | ||
+ | \c matrix_synapse | ||
+ | copy (select room_id, count(*) as cnt from events group by room_id order by cnt desc) to '/ | ||
+ | SELECT room_id, stream_ordering, | ||
+ | ``` | ||
+ | |||
+ | ``` | ||
+ | SELECT nspname || ' | ||
+ | pg_size_pretty(pg_total_relation_size(C.oid)) AS " | ||
+ | FROM pg_class C | ||
+ | LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) | ||
+ | WHERE nspname NOT IN (' | ||
+ | AND C.relkind <> ' | ||
+ | AND nspname !~ ' | ||
+ | ORDER BY pg_total_relation_size(C.oid) DESC | ||
+ | LIMIT 20; | ||
+ | ``` | ||
+ | |||
+ | ``` | ||
+ | jq -r ' | ||
+ | ``` | ||
+ | |||
+ | ``` | ||
+ | jq -r ' | ||
+ | ``` | ||
+ | |||
+ | ``` | ||
+ | SELECT * FROM state_groups_state LIMIT 5; | ||
+ | SELECT COUNT(*) as nb FROM state_groups_state LIMIT 5; | ||
+ | SELECT COUNT(*) as nb FROM state_groups_state; | ||
+ | ``` | ||
+ | |||
+ | ``` | ||
+ | REINDEX DATABASE CONCURRENTLY matrix_synapse; | ||
+ | ``` | ||
+ | ou | ||
+ | ``` | ||
+ | REINDEX DATABASE matrix_synapse; | ||
+ | ``` | ||
+ | ``` | ||
+ | VACUUM | ||
+ | ``` | ||
+ | ou | ||
+ | ``` | ||
+ | VACUUM FULL; | ||
+ | ``` | ||
+ | semblent avoir le même résultat | ||
+ | ``` | ||
+ | \q | ||
+ | ``` | ||
+ | |||
+ | Autres commandes utiles : | ||
+ | ``` | ||
+ | su -c / | ||
+ | synadm GET ' | ||
+ | postgres=# SELECT pg_size_pretty( pg_database_size( ' | ||
+ | ``` | ||
+ | |||
+ | full log | ||
+ | ``` | ||
+ | 122 synadm POST " | ||
+ | 123 synadm POST " | ||
+ | 124 df -h | ||
+ | 125 synadm POST " | ||
+ | 126 df -h | ||
+ | 127 synadm POST " | ||
+ | 128 df -h | ||
+ | 129 synadm POST " | ||
+ | 130 df -h | ||
+ | 131 synadm POST " | ||
+ | 132 df -h | ||
+ | 133 synadm POST " | ||
+ | 134 df -h | ||
+ | 135 synadm POST " | ||
+ | 136 df -h | ||
+ | 137 synadm POST " | ||
+ | 138 df -h | ||
+ | 139 synadm POST " | ||
+ | 140 synadm POST " | ||
+ | 141 synadm POST " | ||
+ | 142 df -h | ||
+ | 143 synadm POST " | ||
+ | 144 df -h | ||
+ | 145 synadm GET ' | ||
+ | 146 jq ' | ||
+ | 147 nano rooms.json | ||
+ | 148 jq ' | ||
+ | 149 df -h | ||
+ | 150 synadm GET ' | ||
+ | 151 jq ' | ||
+ | 152 synadm GET ' | ||
+ | 153 jq ' | ||
+ | 154 synadm GET ' | ||
+ | 155 synadm GET ' | ||
+ | 156 synadm GET ' | ||
+ | 157 jq ' | ||
+ | 158 nano rooms.json | ||
+ | 159 jq -r ' | ||
+ | v1/ | ||
+ | 160 synadm POST " | ||
+ | 161 nano rooms.json | ||
+ | 162 sudo su | ||
+ | 163 exit | ||
+ | 164 tmux a | ||
+ | 165 sudo su | ||
+ | 166 df -h | ||
+ | 167 lsblk | ||
+ | 168 fdisk -l | ||
+ | 169 sudo fdisk -l | ||
+ | 170 dfc -Taisob | ||
+ | 185 synadm GET ' | ||
+ | 186 jq ' | ||
+ | 187 nano rooms.json | ||
+ | 188 sudo su | ||
+ | 189 synadm -o json room list -s joined_local_members -r -l 500 | jq -r ' | ||
+ | 0) | .room_id' | ||
+ | 190 synadm POST " | ||
+ | 191 history | grep synadm | ||
+ | 192 synadm GET v2/ | ||
+ | 193 synadm GET ' | ||
+ | 194 nano rooms.json | ||
+ | 195 exit | ||
+ | 196 tmux a | ||
+ | 197 tmux | ||
+ | 198 exit | ||
+ | 199 sudo su | ||
+ | 200 exit | ||
+ | 201 sudo su | ||
+ | 202 jq -r ' | ||
+ | v1/ | ||
+ | 203 source .bashrc | ||
+ | 204 jq -r ' | ||
+ | v1/ | ||
+ | 205 nano .bashrc | ||
+ | 206 source .bashrc | ||
+ | 207 synadm GET v2/ | ||
+ | | ||
+ | | ||
+ | v1/ | ||
+ | 209 nano rooms.json | ||
+ | 210 history | grep synadm | ||
+ | 211 synadm POST " | ||
+ | 212 synadm POST " | ||
+ | 213 synadm POST " | ||
+ | 214 synadm POST " | ||
+ | 215 synadm POST " | ||
+ | 216 synadm POST " | ||
+ | 217 synadm POST " | ||
+ | 218 synadm POST " | ||
+ | 219 synadm POST " | ||
+ | 220 synadm POST " | ||
+ | 221 synadm POST " | ||
+ | 222 synadm POST " | ||
+ | 223 synadm POST " | ||
+ | 224 synadm POST " | ||
+ | 225 synadm GET ' | ||
+ | 226 jq ' | ||
+ | 227 jq ' | ||
+ | 228 jq -r ' | ||
+ | v1/ | ||
+ | 229 xargs --help | ||
+ | 230 jq -r ' | ||
+ | v1/ | ||
+ | 231 history | grep psql | ||
+ | 232 psql | ||
+ | 233 synadm GET ' | ||
+ | 234 nano rooms.json | ||
+ | 235 jq -r ' | ||
+ | adm DELETE ' | ||
+ | 236 nano / | ||
+ | 237 head -n 20 / | ||
+ | " | ||
+ | |||
+ | \q | ||
+ | 238 head -n 20 / | ||
+ | -d '"'"' | ||
+ | 239 nano / | ||
+ | 240 jq -r ' | ||
+ | 241 jq -r ' | ||
+ | 242 jq -r ' | ||
+ | 243 jq -r ' | ||
+ | 244 jq -r ' | ||
+ | SHELL -ic ' | ||
+ | 245 jq -r ' | ||
+ | SHELL -ic " | ||
+ | 246 jq -r ' | ||
+ | SHELL -ic ' | ||
+ | 247 jq -r ' | ||
+ | ELL -ic ' | ||
+ | ``` | ||
+ | |||
+ | |||
+ | </ | ||
+ | ===== Conflit APT entre mobilizon et onlyoffice ===== | ||
+ | OBSOLETE (mobilizon_ynh utilise maintenant des versions précompilées) | ||
+ | |||
+ | En deux mot : rabbitmq-server dépends de pleins de trucs en erlang (des dépôts debian vanilla) ... et Mobilizon dépends de erlang, mais d'une version d'un dépot tier. Le tout résulte en un tas de conflit relou. | ||
+ | |||
+ | Une explication / solution possible est de bricoler le fichier control du .deb de esl-erlang (voulu par Mobilizon) pour donner des versions explicites aux paquets dans " | ||
+ | |||
+ | < | ||
+ | cd /root/ | ||
+ | mkdir hack_esl_erlang_for_compat_with_rabbitmq | ||
+ | apt download esl-erlang | ||
+ | cp esl-erlang_1%3a23.1-1_amd64.deb esl-erlang_1%3a23.1-1_amd64.deb.original | ||
+ | ar x esl-erlang_1%3a23.1-1_amd64.deb | ||
+ | tar -xvf control.tar.xz | ||
+ | vim ./control | ||
+ | </ | ||
+ | |||
+ | Dans le fichier, on ajoute " | ||
+ | |||
+ | < | ||
+ | Provides: erlang-abi-17.0 (= 1:23.1-1), erlang-base-hipe (= 1:23.1-1), erlang-dev (= 1:23.1-1), erlang-appmon (= 1:23.1-1), erlang-asn1 (= 1:23.1-1), erlang-common-test (= 1:23.1-1), erlang-corba (= 1:23.1-1), erlang-crypto (= 1:23.1-1), erlang-debugger (= 1:23.1-1), erlang-dialyzer (= 1:23.1-1), erlang-docbuilder (= 1:23.1-1), erlang-edoc (= 1:23.1-1), erlang-eldap (= 1:23.1-1), erlang-erl-docgen (= 1:23.1-1), erlang-et (= 1:23.1-1), erlang-eunit (= 1:23.1-1), erlang-gs (= 1:23.1-1), erlang-ic (= 1:23.1-1), erlang-inets (= 1:23.1-1), erlang-inviso (= 1:23.1-1), erlang-megaco (= 1:23.1-1), erlang-mnesia (= 1:23.1-1), erlang-observer (= 1:23.1-1), erlang-odbc (= 1:23.1-1), erlang-os-mon (= 1:23.1-1), erlang-parsetools (= 1:23.1-1), erlang-percept (= 1:23.1-1), erlang-pman (= 1:23.1-1), erlang-public-key (= 1:23.1-1), erlang-reltool (= 1:23.1-1), erlang-runtime-tools (= 1:23.1-1), erlang-snmp (= 1:23.1-1), erlang-ssh (= 1:23.1-1), erlang-ssl (= 1:23.1-1), erlang-syntax-tools (= 1:23.1-1), erlang-test-server (= 1:23.1-1), erlang-toolbar (= 1:23.1-1), erlang-tools (= 1:23.1-1), erlang-tv (= 1:23.1-1), erlang-typer (= 1:23.1-1), erlang-webtool (= 1:23.1-1), erlang-wx (= 1:23.1-1), erlang-xmerl (= 1:23.1-1) | ||
+ | </ | ||
+ | |||
+ | puis mettre à jour le .deb avec le nouveau fichier: | ||
+ | < | ||
+ | rm -f control.tar control.tar.xz | ||
+ | tar -cvf control.tar control | ||
+ | xz control.tar | ||
+ | ar r esl-erlang_1%3a23.1-1_amd64.deb control.tar.xz | ||
+ | </ | ||
+ | |||
+ | Et on peut ensuite faire : | ||
+ | < | ||
+ | dpkg -i esl-erlang_1%3a23.1-1_amd64.deb | ||
</ | </ |
benevoles/technique/yunohost_mutu.1673868284.txt.gz · Dernière modification : 2023/01/16 11:24 de ljf