lundi 16 octobre 2017

error: error switching euid to 33 and egid to -1: Invalid argument

I recently encountered the following error (after an upgrade from Debian Jessie to Debian Stretch):

/etc/cron.daily/logrotate:
error: error switching euid to 33 and egid to -1: Invalid argument
run-parts: /etc/cron.daily/logrotate exited with return code 1

It was not so easy to find the cause in the long list of possible offenders in /etc/logrotate.d/ ! In the end, it turned out that the faulty line was:

su www-data

in one of the logrotate configuration files. Indeed, no group was given in addition to the user account, hence the gid set to -1 which is blatanly an incorrect value.

The correct and expected syntax was:

su www-data www-data

dimanche 17 septembre 2017

PG::NotNullViolation error on id column in PostgreSQL

Faced with this error:

PG::NotNullViolation: ERROR:  null value in column "id" violates not-null constraint

it took me some time to realize that my id column was not a serial but a plain integer...

To fix this, just execute:

ALTER TABLE my_table DROP COLUMN id;
ALTER TABLE my_table ADD COLUMN id SERIAL PRIMARY KEY;

samedi 3 juin 2017

Nombre de déclenchements d'un appareil Canon sous Linux avec gphoto2

Si vous êtes l'heureux possesseur d'un appareil photo reflex Canon (et peut-être d'autres marques, je n'ai pas pu tester), vous vous demandez peut-être comment accéder au compteur de déclenchements par exemple pour mesurer le degré d'usure de votre matériel (http://www.olegkikin.com/shutterlife/).

gphoto2 sera votre complice pour cela. Il faut d'abord l'installer avec votre gestionnaire de paquet préféré (ici apt) :

apt install gphoto2

Après avoir branché l'appareil photo en USB sur le PC, on exécute la commande suivante :

gphoto2 --auto-detect

qui doit retourner le type d'appareil photo connecté et reconnu :

Model                          Port                                            
----------------------------------------------------------
Canon EOS 700D                 usb:001,007

Accédons maintenant à l'info souhaitée :

gphoto2 --get-config /main/status/shuttercounter

et voilà :

Label: Shutter Counter                                                         
Type: TEXT
Current: 14611

Get shutter counter for Canon cameras on Linux

It can be useful to know the shutter counter for your Canon reflex camera, for example to compare with the data available here: http://www.olegkikin.com/shutterlife/.

Wait no more, it is easy to access the shutter counter with gphoto2 on Linux.

Let's start with the installation of gphoto2 (replace apt with your favorite package manager):

apt install gphoto2

Then plug the camera to the computer with an USB cable and then:

gphoto2 --auto-detect

It should show something like this:

Model                          Port                                            
----------------------------------------------------------
Canon EOS 700D                 usb:001,007
/// 


Then

gphoto2 --get-config /main/status/shuttercounter


and this is it:

Label: Shutter Counter Type: TEXT Current: 14611 ///

samedi 4 mars 2017

Installer le paquet xlsx pour R sous Debian Stretch

Sous R, le paquet 'xlsx' peut être utilisé pour importer des jeux de données stockées dans des fichiers de la suite Microsoft Office. Mais sous Debian Stretch (instable), l'installation du paquet 'xlsx' est un peu compliquée au moment d'écrire ces lignes.

configure: error: Cannot compile a simple JNI program. See config.log for details.
Make sure you have Java Development Kit installed and correctly registered in R.
If in doubt, re-run "R CMD javareconf" as root.

Et si l'on exécute R CMD javareconf :

conftest.c:1:17: fatal error: jni.h: No such file or directory
 #include <jni.h>

Il semble que cela vienne à la fois d'un mauvais paramétrage de R pour utiliser Java et de l'usage d'une version de Java qui a priori n'est pas compatible avec rJava (incompatibilité rapportée ici).

Utiliser OpenJDK 8 et non 9

Commençons par installer OpenJDK 8 sur l'ordinateur en root ou avec la commande sudo :

apt install openjdk-8-jre openjdk-8-jdk

Puis, toujours en root, faisons pointer JAVA_HOME vers le bon répertoire :

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

javareconf dans R

Et ré-exécutons alors R CMD javareconf. Cette fois, tout doit fonctionner et s'achever par :

Updating Java configuration in /usr/lib/R
Done.

En utilisateur non root, il est alors possible de re-démarrer R et d'exécuter l'installation de rJava :

> install.packages("rJava")

install.packages("xlsx")

Plus rien ne s'oppose à l'installation du paquet xlsx désormais :

> install.packages("xlsx")

dimanche 19 février 2017

Réduire l'empreinte mémoire de GitLab en contrôlant le nombre de processus Sidekiq

Par défaut, GitLab démarre 25 processus Sidekiq pour gérer les travaux de tâche de fond de GitLab. Si ce nombre est justifié sur une instance à fort traffic, il y a fort à parier qu'un bien plus petit nombre de processus suffit pour gérer une instance de GitLab de petit volume.

Le nombre de processus Sidekiq se règle aisément dans le fichier /path/to/gitlab/config/sidekiq_queues.yml par ajout de la ligne suivante :

:concurrency: 2

où l'on remplacera "2" par le nombre de processus souhaités. 2 semble suffisant pour ma petite installation GitLab personnelle et ses quelques utilisateurs et dizaines de projets.

Voilà de quoi optimiser l'empreinte mémoire et processeur de GitLab !

- page 1 de 13