Bonne Année 2019 !!

Je vous souhaite une très bonne année 2019 !
Comme toujours, je me fixe des résolutions mais pour une fois un peu plus folle que d’habitude.
En effet, j’y pense depuis un moment, mais je vais enfin me lancer dans les tutos vidéo.
L’intérêt étant que les tutos vidéo sont souvent plus simple à comprendre qu’un article long à lire. En effet, j’ai bien vu depuis quelques années, avec l’arrivé des vidéos YouTube, que de plus en plus de mes collègues et amis font des recherches directement sur les plateformes de vidéo, plutôt que directement sur les outils de recherches habituels (DuckDuckGo, Google, …).


Not able to execute a .sh file: /bin/bash^M: bad interpreter

Il y a quelques mois (déjà …), alors que je modifiais des scripts Linux d’installation automatique de logiciels, je me suis retrouvé avec le message suivant dans ma console.

Not able to execute a .sh file: /bin/bash^M: bad interpreter

Sur le moment je n’ai pas trop compris d’où venait le problème. Et puis je me suis rendu compte que j’avais effectué des modifications du script depuis une machine Windows et j’avais commit la nouvelle version vers mon Git.

D’où viens le problème ?

En fait, le fichier a été transféré entre des systèmes de types différents avec des conventions de nouvelle ligne différentes.
Les éditeurs de texte Windows auront un caractère de retour chariot spécial (CR + LF) à la fin des lignes pour indiquer un retour de ligne ou une nouvelle ligne, qui sera affiché de manière incorrecte sous Linux (^ M).
Souvent, c’est parce que le fichier est créé ou peut-être même édité sur un ordinateur Microsoft Windows, puis téléchargé ou transféré sur un serveur Linux. Cela se produit généralement lorsqu’un fichier est transféré à partir de MS-DOS (ou MS-Windows) sans mode ASCII ou texte.
Cela peut être difficile à détecter. En effet, certaines applications ou programmes gèrent correctement les caractères de nouvelle ligne alors que d’autres non.
Ainsi, certains services peuvent tomber en panne ou ne pas répondre correctement.

Comment résoudre le problème ?

Il existe plusieurs solutions possible 🙂

  • Le logiciel/paquet dos2unix
dos2unix monfichierAmodifier
  • sed
sed -e "s/\^M//"  monfichierAmodifier  > monfichierModifier 
  • Vim (ma solution préféré mais pas aussi rapide que dos2unix)

Après avoir ouvert le fichier avec Vim taper

:%s/^M//g

Et voilà, vous ne devriez plus avoir de soucis 🙂

Re-génération de la configuration de yunohost (mailman)

Suite à mise à jour d’une plateformes Yunohost (utilisée dans de nombreuses associations) j’ai eu un gros problème. Les configurations des envois sur les listes de diffusion gérer par Yunohost ne fonctionnaient plus.

Après une lecture des logs, je me suis aperçu que les e-mails ne s’envoyer plus à cause d’un problème de droits ….

Du coup, comme ce problème survient suite à une mise à jour, obligation de changer la configuration. Le mieux étant de simplement faire une re-génération de la config.
Néanmoins, en fonction des associations, mes configurations sont gérées de façon différente. Il est donc nécessaire de s’assurer avant toutes manipulations que je ne vais pas perdre des informations sur la modification du fichier.

Pour ce faire, je me connecte au serveur et j’utilise la commande suivante afin d’avoir un retour sur les ajouts (indiqué par un +) et les suppressions (indiqué par un -) par rapport au fichier conf de base :

yunohost service regen-conf --dry-run -d

Une fois les informations récupérées (si nécessaire), il suffit de taper la commande suivante pour re-générer le fichier de configuration :

yunohost service regen-conf 

Et voilà 😉
Dans mon cas ça me règle (en général) tous mes problèmes après une grosse mise à jour.