Archives du mot-clé linux

Reblog: Problem with libGL.so on 64-bit Ubuntu

This isn’t a « true » reblog, but I just wanted to say that I had the same problem than the author of the blog post I’m about to link, and that his solution just did the trick for me too, so I thought I would give him full credit for the solution given it just worked completely unaltered in my situation too.

http://techtidings.blogspot.in/2012/01/problem-with-libglso-on-64-bit-ubuntu.html

Lire la suite

Ubuntu, CMake, gdb, Eclipse et… Doctor Who

#RetirezMoiPhotoshop

#RetirezMoiPhotoshop

J’ai rencontré l’autre jour un problème qui s’est avéré assez compliqué alors que je cherchais à faire un truc simple à la base : je voulais ouvrir un projet de code C++ généré par CMake dans l’éditeur Eclipse et pouvoir le déboguer avec le débogueur inclus dans Eclipse. Sauf que bien sûr ça ne fonctionnait pas…

Et je me suis par la suite rendu compte qu’il ne s’agissait pas seulement d’un problème d’Eclipse mais que tous les logiciels utilisés à côté avaient également, à des degrés divers, leur part de responsabilité. Ou quand les logiciels se liguent pour faire chier au maximum !

Cet article est en rédaction depuis un moment, mais quel meilleur moment qu’aujourd’hui pour le publier puisque s’organise ce Dimanche à Lyon le Doctor Who Day ? Considérons donc qu’il s’agira de ma maigre participation vu qu’exceptionnellement, cet article sera narré (à grand renfort de gifs) par des acteurs de la série Doctor Who.

Bon, déjà que c’est un article au sujet extrêmement technique de base, pas sûr que l’on comprenne encore bien le problème de base ou la solution à y apporter, mais au moins une chose est sûre: cet article sera unique. Et c’était très amusant à écrire.

C’est parti. 🙂

Lire la suite

Petit précis du Git pratique

Git est un très bon logiciel de gestion de versions décentralisé qu’on ne présente plus (et pour ceux qui ne connaissent pas, il est toujours temps d’aller découvrir l’abondante documentation du projet), d’ailleurs créé par Linus Torvalds (qu’on ne présente plus non plus) et qui a depuis fait ses preuves pour gérer des projets d’une taille conséquente (comme, on pourrait le deviner, le kernel Linux).

Mais git est avant tout un outil très riche, et il n’est pas évident de maîtriser toutes ses spécificités – encore faut-il savoir qu’elles existent ! Les commandes Git, reposant en soi sur les mêmes principes que la plupart des VCS (ou logiciels de gestion de versions) et a fortiori des DCVS (VCS décentralisés), proposent beaucoup d’options utiles qui peuvent simplifier la vie des utilisateurs et de ceux qui utilisent un dépôt Git avec vous.

Voici donc un petit hall of fame des options que je suis bien content de connaître dans Git.

Lire la suite

Quassel: No DockManager available

quasselIl m’est arrivé un drôle de tour ce matin…

J’utilise Quassel IRC, un client IRC connecté à un serveur distant, ce qui permet notamment d’apparaître connecté et de lire ce qui s’est dit lorsque vous n’êtes pas là.

Le problème du jour n’est pas là : sur ma bonne vieille Ubuntu utilisant sa bonne vieille interface Unity, aujourd’hui, Quassel refuse de démarrer. Enfer et damnation.

Ou plus exactement : il se lance, mais sans fenêtre ! Il apparaît bien dans la liste des processus lancés, mais nulle part sur l’interface graphique, impossible d’interagir avec.

Lorsqu’on lance le programme (quasselclient) en console, une unique ligne cryptique apparaît : « No DockManager available » . Après quelques recherches, j’apprends que c’est un bug connu, mais réputé résolu et datant d’un autre âge… Mais alors quand on y est quand même confronté, que faire ?

Mon salut est tout simplement venu d’un « wipe out » : dans mon cas (Ubuntu), je suis allé dans le dossier de config de Quassel (~/.config/quassel-irc.org), et j’ai effacé tous les fichiers de config de Quassel comme un gros bourrin (rm *) !

Et là, pif paf pouf, après ça mon Quassel a remarché. Comme par magie. Bon évidemment je n’avais rien de très important dans ce dossier, mais n’oubliez pas de faire une sauvegarde ailleurs si vous essayez.

À bon entendeur…

Les fichiers temporaires, ces red shirts de la programmation

enlist-red-shirt2Dans la série télévisée Star Trek, les agents de sécurité sont reconnaissables à leur gilet rouges, c’est pour cela qu’on les appelle couramment les red shirts. Le souci avec ces personnages, c’est qu’ils ont une fâcheuse tendance à mourir dès leurs premières minutes à l’écran (pour une raison différente à chaque épisode), ainsi, les personnages principaux (récurrents) se rendent compte du danger imminent sans subir eux-mêmes de dommages (pratique, scénaristiquement, non ?). Il s’agit souvent de leur unique rôle dans l’épisode, et on ne connaît parfois même pas leur nom.

De manière assez inattendue, on peut trouver des similitudes entre un redshirt de Star Trek et un fichier temporaire en programmation : on en a besoin dans un contexte particulier, son nom ne nous intéresse parfois même pas, et il se doit d’être détruit à la fin, lorsqu’on en a plus besoin.

Cette fois, je vas parler des fichiers temporaires, d’une astuce et de quelques fonctions pour les gérer facilement en C. Notez bien: on est en environnement Linux. Il n’est pas garanti que ça marche (voire même c’est sûr, certaines choses ne marcheront pas) sur Windows ou ailleurs.

Lire la suite

Installer la bibliothèque Google Test sur Ubuntu

Hello,

aujourd’hui j’ai voulu essayer d’installer la bibliothèque de tests unitaires produite par Google, googletest.

J’ai donc installé l’archive disponible sur leur page Google Code, et ai tenté de lancer la version Makefile de l’installation (étant sur Ubuntu)…

Et là, quelle ne fut pas ma surprise en voyant une flopée d’erreurs sortir de g++:

/home/baron_a/gtest-1.6.0/make/../include/gtest/internal/gtest-port.h:1379: undefined reference to `pthread_setspecific’
collect2: error: ld returned 1 exit status

Heureusement, cela semble être un problème bien connu et la résolution est simple: dans le Makefile de gtest il faut remplacer dans la (les?) ligne(s):

sample1_unittest : sample1.o sample1_unittest.o gtest_main.a
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $@

l’option -lpthread par l’option -pthread (retirer le petit L au début, quoi, en gros), et voilà ça fonctionne ! \o/ Je me demande si ils le corrigeront un jour… Notez d’ailleurs qu’il y a d’autres moyens d’installation fournis, comme un CMakeLists.txt pour utiliser CMake.

J’ai également vu qu’il y avait un paquet nommé libgtest-dev dans Aptitude, mais je ne l’ai pas installé pour essayer.

For the World Is Hollow and I Have Touched the Skype (Ubuntu 13.04)

(Pour le coup, ce n’est pas vraiment la faute d’Ubuntu)

Aujourd’hui, un nouveau billet dans la catégorie « les petits problèmes de la vie de tous les jours sous Ubuntu »…

Cette fois-ci avec Skype, le célèbre logiciel de messagerie instantanée. J’ai d’abord eu des difficultés pour l’installer sur Ubuntu 13.04, pour ensuite me rendre compte que les notifications marchaient pas. Comment résoudre ces problèmes ? La réponse dans la suite !

Lire la suite

« E: Encountered a section with no Package: header »

Aujourd’ hui encore, j’ ai eu affaire à une « Ubunturie« , comprendre, un truc qui se casse tout seul et qui du coup se met à afficher des gros messages d’erreur rouges un peu partout sans qu’on puisse faire grand chose à part envoyer un rapport d’erreur (oui, Rhythmbox et son process rhythmbox-metadata qui crash à chaque fois qu’on importe des nouveaux morceaux, c’est aussi de toi que je parle !).

Bon là c’est pas Rhythmbox mais Apt ou aptitude, le gestionnaire de mises à jour d’Ubuntu, historiquement hérité de Debian.

Lire la suite