Archive for Linuxine

ITSuivi des mises à jour avec yum-cron

Si, comme moi, vous aimez maintenir votre CentOS à jour, vous serez content de découvrir yum-cron !

Ce petit utilitaire bien pratique permet de créer une tâche cron pour vérifier les updates disponibles. On peut paramétrer s’il doit juste vérifier les update de sécurité, par exemple, et s’il doit les installer ou bien juste en vérifier la présence. Il s’installe facilement… via yum.

# yum install yum-cron

Puis, se configure très facilement via son fichier de configuration. J’ai choisi de ne faire que vérifier la présence de mise à jour, de sécurité uniquement, tous les dimanches, et de recevoir un mail de notification.

# vim /etc/sysconfig/yum-cron

 YUM_PARAMETER="--security"

 CHECK_ONLY=yes 
 CHECK_FIRST=yes 
 DOWNLOAD_ONLY=yes 
 MAILTO=xxx
 DAYS_OF_WEEK="0"

Puis lancer le service :

# service yum-cron start
 # chkconfig yum-cron on

Pour en tester le fonctionnement, vous pouvez exécuter le script 0yum.cron qui a été automatiquement ajouté dans /etc/cron.daily. Pensez à modifier au préalable le paramètre RANDOMWAIT du fichier de configuration cité précédemment, sinon vous devrez attendre 60 minutes avant que le script ne s’exécute !

PhotosI want to ride my bicycle…

Après la trottinette, on passe à la vitesse supérieure ! J’ai investi dans un vélo de ville pour aller à la gare le matin. L’idée serait de déposer Violette à l’école avec, avant de filer à la gare. J’ai opté pour un modèle basique de chez Go Sport. Voici la bête !

Le tour d’essai n’a pas été très concluant, sous la pluie, j’ai déraillé direct après changement de vitesse, et j’ai l’impression qu’un des freins frotte sur la roue avant… Le vendeur avait lourdement insisté sur le fait que c’était “seulement un vélo à 150€”, mais on dirait qu’il s’est employé à démontrer son propos en le montant mal… Il va y avoir des réglages à faire !

Ce matin, je suis donc partie au travail avec, et je l’ai solidement attaché près de la gare, j’espère que je le retrouverai ce soir…

ITMise à jour de Owncloud 8.0 à 8.1

La mise à jour s’est bien passée (mv de l’ancien dossier, dézip du nouveau, récupéreration du config.php et du répertoire data). Mais dans l’interface admin, une erreur étrange “This server has no working Internet connection. “

Cette erreur, qui bloque entre autre l’intégration de Roundcube dans Owncloud – puisqu’il croit qu’il ne peut pas accéder au net !- est due au fait que, pour savoir s’il est connecté à internet, Owncloud tente de faire un curl vers le site Owncloud.org. Déjà, pas top, si leur site est down, donc, le mien va croire que je n’ai plus le net, chouette. Ensuite, je n’ai pas suivi le détail, mais il y avait une histoire de bug dans nss intégré dans le curl utilisé par ma CentOS. Problème : le correctif existe, mais pas dans les version packagées pour ma CentOS. Après avoir farfouillé, j’ai donc pu mettre à jour mon curl avec les commandes suivantes :

# rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel6.noarch.rpm
 # yum update curl
 # yum update libcurl

Puis, parce que je ne tiens pas spécialement à garder ce repo dans ma liste de repo yum, on l’enlève :

# yum remove city-fan.org-release.noarch

Et voilà ! Un Owncloud 8.1 tout neuf !

GeekFlower Power

Depuis que notre lierre en pot est mort, suite à la chaleur de ces dernières semaines, Taz s’inquiète pour la santé de nos plantes vertes. Il a donc eu l’idée de m’offrir l’accessoire indispensable pour que les geeks attrapent la main verte : le Flower Power de Parrot !



Un Flower Power, qu’est-ce que c’est ? C’est un joli petit capteur à planter en terre ou dans le pot des plantes que l’on veut surveiller. Il fonctionne sur piles, et communique en Bluetooth avec les smartphones ou tablettes sous Android -et aussi sous l’autre OS mobile de la pomme, mais on est entre gens biens sur ce blog, ce n’est donc pas vraiment la peine d’aborder le sujet. 😉

Alors je précise tout de suite que la liste des smartphones compatibles semble assez restreinte : il faut que l’appareil utilise du Bluetooth Smart (ou low energy, ou 4.0). C’est normalement le cas d’à peu près tous les appareils depuis 2010 environ. Mais comme Android avait choisi d’ignorer cette techno dans un premier temps (économiser de l’énergie ? pour quoi faire ?), seules les versions Android 4.3 et plus la supportent. Mon Fairphone, sous Android 4.2, propose du Bluetooth smart, mais comme le Play Store est codé avec les pieds, il se base uniquement sur le numéro de version de l’OS pour m’indiquer que mon appareil n’est pas compatible avec l’application Flower Power… Et je ne parle même pas de ma tablette Samsung qui, elle, n’a même pas le droit de voir l’application dans le Store…

Bref, après avoir tout de même réussi à installer l’appli sur le Nexus de Taz, première étape, l’appareiller avec le Flower Power. Après avoir créé un compte Parrot au préalable, parce qu’apparemment, on ne peut pas communiquer tranquillou avec sa plante en privé chez soi, il faut passer par le cloud…

Une fois le Flower Power appareillé, il faut choisir sa plante dans la base de données. Et là, fausse joie, l’application nous demande de la prendre en photo : je pensais que c’était pour faire une reconnaissance d’image, mais que nenni ! Il m’a donc fallu faire une recherche Google du style “plante verte rayures blanches” qui m’a indiqué que ma plante était un Chlorophytum comosum ou Phalangère. On en apprend tous les jours !

Dès l’appareillage, une fois la plante paramétrée, on peut voir tout de suite les informations en live : température, humidité de la terre, ensoleillement… Par contre, il faut attendre 24h pour que la plante nous indique si elle a soif. Et il faut activer le bluetooth et le réseau, parce qu’elle veut bien dire si elle a soif, mais pas en privé, elle préfère le dire dans le cloud et nous laisser nous y connecter… J’avoue que je suis sceptique sur l’intéret de telles informations dans le cloud, mais je ne doute pas que Parrot arrivera à faire des sous avec les données ainsi collectées !

Mais venons-en au principal : ça marche ! Passé les premieres 24h, et sous réserve de s’approcher régulièrement de la plante à portée de Bluetooth, elle nous informe qu’elle a soif !

Screenshot_2015-08-04-19-53-58

On peut aussi avoir des informations sur la luminosité, sun

et sur la température,temperature

et aussi sur la quantité d’engrais. Bref, ça a l’air assez complet ! Comme vous pouvez le voir, il y a un graphique d’historique pour chaque indicateur. Je ne sais pas encore bien à quoi ils vont me servir, mais ça permet déjà de suivre les variations de température dans la véranda !

Depuis que nous l’avons installé, il y a deux jours, nous avons reçu une alerte par jour indiquant qu’il fallait arroser. Une fois fait, on peut l’indiquer à l’application. Et c’est vrai que depuis, la plante a l’air en meilleur forme… Je dirais donc que le Flower Power rempli bien son office, et je le conseille aux jardiniers étourdis comme moi ; mais pensez à vérifier la compatibilité de votre appareil au préalable !

ITMémo sur Debian

Voici un petit mémo sur les commandes et mécanismes qui sont déroutants sous Debian pour une “redhatienne” comme moi.

J’en profite pour indiquer que j’ai installé le plugin WP-Markdown afin de pouvoir directement écrire en Markdown dans les posts de WordPress, et ça marche plutôt bien ! Fini de se galérer à devoir écrire des balises “code” ! :p

Autojump

Pour que cela fonctionne, il faut ajouter dans bash_profile la ligne suivante :

. /usr/share/autojump/autojump.sh

Apt

Pour avoir des infos sur un package :

$ apt-cache show mate-desktop 

Pour faire des update, il faut d’abord updater la liste des packages :

# apt-get update 
 # apt-get install package

Complétion

Par défaut, le fichier known_host de ssh est hashé, donc bash-completion ne peut pas le lire pour compléter les noms d’hôtes.

Pour résoudre le souci, on créé un fichier config dans le dossier .ssh du home de l’utilisateur, avec comme contenu :

host nomdemachine
 user nomuser

Apache

Il ne s’appelle pas httpd. Et rien que ça, c’est super déroutant ! Pas apache non plus, non, ça serait trop simple… A nous deux apache2 !

Pour ajouter un fichier de configuration, il faut ajouter le fichier dans /etc/apache2/sites-available/, puis lancer la commande pour l’activer :

# a2ensite site

Ce qui a pour effet de faire un lien vers le fichier dans /etc/apache2/sites-enabled/.

Pour activer un plugin :

# a2enmod mod_proxy

Pour démarrer le service :

# service apache2 start|stop|graceful-stop|restart|reload|force[ ok ad|start-htcacheclean|stop-htcacheclean|status}

Pour faire pareil + configtest :

# apachectl start|stop|restart|graceful|graceful-stop|configtest|status|fullstatus|help

Installer Flash

Pour utiliser l’alternative non libre (voir ici pour les repos : https://wiki.debian.org/FlashPlayer):

# apt-get install flashplugin-nonfree

Ensuite, pour updater flash :

# update-flashplugin-nonfree --install

Comme il y a des problèmes de sécurité avec le Flash d’Adobe et que les mises à jour Debian tardent, je suis passée à gnash, pour GNU Flash movie player. Dans mon cas, il était déjà installé, restait à l’utiliser en utilisant update-alternatives :

# update-alternatives --display flash-mozilla.so
flash-mozilla.so - auto mode
  link currently points to /usr/lib/flashplugin-nonfree/libflashplayer.so
/usr/lib/flashplugin-nonfree/libflashplayer.so - priority 50
/usr/lib/gnash/libgnashplugin.so - priority 10
Current 'best' version is '/usr/lib/flashplugin-nonfree/libflashplayer.so'.

# update-alternatives --config flash-mozilla.so
There are 2 choices for the alternative flash-mozilla.so (providing /usr/lib/mozilla/plugins/flash-mozilla.so).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
* 0            /usr/lib/flashplugin-nonfree/libflashplayer.so   50        auto mode
  1            /usr/lib/flashplugin-nonfree/libflashplayer.so   50        manual mode
  2            /usr/lib/gnash/libgnashplugin.so                 10        manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/gnash/libgnashplugin.so to provide /usr/lib/mozilla/plugins/flash-mozilla.so (flash-mozilla.so) in manual mode

Installer Spotify

Le client packagé sur un repo Debian demande des lib trop récentes. Il faut downgrader en installant une version plus ancienne : https://github.com/olejon/spotcommander/wiki/DowngradeSpotify (prendre par ex la Spotify 0.9.4 64-bit)

# dpk -i spotify-client_0.9.4.183.g644e24e.428-1_amd64.deb

Il faut également installer une version plus ancienne de Openssl : https://support.rstudio.com/hc/en-us/articles/202094776-Installing-OpenSSL-0-9-8-on-Debian-7-Wheezy

$ wget http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl0.9.8_0.9.8o-4squeeze14_amd64.deb
$ sudo dpkg -i libssl0.9.8_0.9.8o-4squeeze14_amd64.deb

Services

Pour vérifier qu’un service sera lancé au démarrage :

#  ls /etc/rc3.d/S*

Si on veut en ajouter un (ici MySQL)

# update-rc.d mysql defaults

ITOwncloud “app does not provide info.xml”

Après une upgrade d’Owncloud, il faut réactiver à la main les apps ; et depuis quelques temps, cela échoue avec le message d’erreur

Apps does not provide info.xml

Ce qui est faux et n’a rien à voir avec le fichier info.xml de l’application, mais à priori est lié à un problème de vérification ssl.
Pour ne plus avoir l’erreur, il faut ajouter dans data/lib/private/httphelper.php, à la ligne 73, la ligne en gras :

curl_setopt($curl, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

 

Reférence : https://github.com/owncloud/core/issues/14840#issuecomment-78648121

GeekNouveau thème pour mon Piwigo

Après avoir revu le thème mobile, et l’avoir trouvé plus sympa que le thème actuel, j’ai décidé de changer le look de mon Piwigo avec une nouvelle skin, Modus. C’est joli et moderne je trouve ! Pour la voir, c’est toujours ici. piwigo Attention pour les inscrits, maintenant pour se loguer, il faut cliquer sur le menu en haut à droite “Login” ; je sens déjà qu’il y en a qui vont être perdus :p

GeekSauvez les liens !

Ça parait fou, mais il y a en ce moment des débats au Parlement Européen sur l’opportunité de taxer les liens sur Internet. Oui, oui, vous avez bien lu, le fait de mettre un lien dans un post/chat/tweet pourrait dans le futur être payant. Les liens étant la base même du net, qui pourrait avoir cette idée saugrenue, me direz-vous ? Toujours les mêmes, les “ayant-droit” et autres majors qui ne veulent pas s’adapter au nouveaux modèles économiques du Net, et préfèrent se plaindre à leurs amis politiques pour qu’ils ajoutent des taxes plutôt que de faire l’effort de s’adapter… En tête de pont de ces lobbyistes, et c’est bien décevant, on trouve Jean-Marie Cavada, maintenant député Européen.

J’ai découvert avec effarement qu’en Espagne, par exemple, Google a du fermer son service d’agrégation d’actualité Google News, car une nouvelle loi impose qu’il paye pour chaque lien vers un site de presse… Alors même que Google ne diffuse pas de publicité sur ce portail, contrairement aux sites qu’il référence !

Je n’ai pas besoin de vous expliquer plus en détail comme ces idées sont dangereuses et contre productives, et comment cela pourrait entrainer la mort du Net tel que nous le connaissons. Je ne pourrais même pas continuer à tenir ce blog : comme vous pouvez voir sur le widget sur la droite, il contient de nombreux liens !

Je vous invite à aller sur le site très bien fait d’OpenMedia, Save The Link, pour avoir tous les détails et savoir comment vous pouvez prendre part à la protestation. Et faites passer le mot !

ITWP Video Posts : corriger le problème des vidéos non chargées

J’utilise le plugin WP Video Posts sur un de mes blogs. Il sert à encoder directement des vidéos pour les inclure dans des posts, et il inclus aussi le player video.js qui marche plutôt bien. Mais il y avait un souci avec ce player : bizarrement, sur la page d’accueil de mon blog, seules les premières vidéos étaient bien gérées par le player. Les vidéos suivantes n’apparaissaient pas dans un lecteur, on voyait juste l’image de splash et on pouvait uniquement les lancer via le lecteur embarqué du navigateur (sans contrôles, donc, et puis bon, il fallait savoir que c’était des vidéos du coup !).

Le souci n’apparaissait pas non plus lorsqu’on affichait un post seul. Après investigation (merci mon coeur !), il s’agissait d’un souci de délai : la page d’accueil du blog est un peu lente à se charger, un peu à cause des photos embarquées du site de photo Piwigo. Résultat, le plugin trouvait les premières vidéos de la page, les intégrait dans le lecteur et zou, il ignorait gentiment tout le reste de la page et donc toutes les vidéos suivantes.

Pour corriger ça, il faut ajouter dans le ficher wp-video-posts/inc/video-js/video.js, vers la ligne 8558, le code suivant (en gras):

// Run Auto-load players
// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)
if (jQuery)
        jQuery(document).ready(vjs.autoSetup);
else 
        vjs.autoSetupTimeout(1);

Et hop ! Toutes les vidéos de ma page d’accueil sont maintenant correctement gérées.

GeekNotifications email dans le calendrier Owncloud

Continuant toujours sur mon objectif “se passer de Google mais avoir des applis open source équivalentes”, j’ai décidé de zapper Google Calendar. J’avais tout d’abord pensé au plugin calendar de mon Roundcube. Problème : ce dernier est plutôt “fermé”, il est sensé offrir un lien format ical pour l’intégrer à d’autres applications de calendrier, comme Thunderbird avec Lightning, mais je n’ai pas réussi à les faire fonctionner.

Je me suis alors rappelée que Owncloud propose une app “calendar”, qui elle supporte le protocole caldav. Après avoir installé DavDroid sur mon Fairphone, ô joie, mon calendrier Owncloud se synchronise avec mon smartphone ! Restait un petit inconvénient : pour le moment, pas de possibilité de notifications (email ou popup) dans ce calendrier. Il y a bien un patch en revue sur leur github, mais il est en cours depuis plus d’un an et toujours pas mergé… En attendant que cela soit intégré, j’ai donc concocté deux petits scripts bash qui permettent de faire des notifications email.

Récapitulatif des rv du jour :

#!/bin/bash
#Recuperation des ID des calendriers avec evenements ce jour

mysql_args="MYSQL CONNEXION INFO"
callist=$(mysql  ${mysql_args} -NBe "select distinct calendarid from oc_clndr_objects where date(startdate) = curdate();")

for cal in $callist
do
  userlist=$(mysql  ${mysql_args} -NBe "select distinct userid from oc_clndr_calendars where id = ${cal};")
  for user in $userlist
  do
    #email à contacter
    email=$(mysql ${mysql_args} -NBe "select configvalue from oc_preferences where  configkey ='email' and userid='${user}';")
    #message de recap
    tmpfile=$(mktemp recap.XXXXX)
    echo "Bonjour ${user}" > "${tmpfile}"
    echo >> "${tmpfile}"
    echo "Voici votre programme de la journée:" >> "${tmpfile}"
    mysql ${mysql_args} -te "select summary as Resume ,time(startdate) as Heure from oc_clndr_objects where date(startdate)=curdate() and calendarid=$cal;" | sed 's/\r//' >> "${tmpfile}"
    #envoi du mail
    mail -s "Récapitulatif du $(date +%F)" -r user@domain $email< "${tmpfile}"
    rm -f "$tmpfile"
    done
done

Rappel avant rendez-vous :

#!/bin/bash

#Recuperation des ID des events a venir
mysql_args="MYSQL CONNEXION INFO"

#Gestion du decalage horaire de 2h du calendrier owncloud
idlist=$(mysql ${mysql_args} -NBe "select id from oc_clndr_objects where timestampdiff(minute, NOW(), convert_tz(startdate, '+00:00', '+02:00')) BETWEEN 0 and 10;")

export LANG=fr_FR.UTF-8

for id in $idlist
do
  title=$(mysql ${mysql_args} -NBe "select summary from oc_clndr_objects where id=$id;")
  date=$(mysql ${mysql_args} -NBe "select date_add(startdate, interval 2 hour) from oc_clndr_objects where id=$id;")
  #email à contacter
  user=$(mysql ${mysql_args} -NBe "select oc_preferences.configvalue from oc_preferences join oc_clndr_calendars on oc_preferences.userid=oc_clndr_calendars.userid join oc_clndr_objects on oc_clndr_objects.calendarid = oc_clndr_calendars.id where configkey='email' and oc_clndr_objects.id=$id;")
  #email à envoyer
  echo -e "----------------\nTitre : $title\nDate: $date\n---------------\n"| mail -s "Rappel : $title" -r user@domain "$user"
done

Il doit y avoir moyen de faire mieux, surtout au niveau de la présentation du mail, alors, j'attends vos code review ! 😉