Mise en place de Blacklight : comment ?

Nous avons choisi Blacklight comme interface publique pour notre catalogue. Voici comment nous avons procédé pour indexer les données de notre SIGB et comment nous allons intégrer d’autres données (revues et livres électroniques).

Pour faire fonctionner Blacklight en mode OPAC de nouvelle génération d’abord, il a fallu répondre à 3 questions :

  1. comment importer toutes les notices du SIGB dans l’index Solr ?
  2. comment obtenir les données d’exemplaires (donner la disponibilité) ?
  3. comment gérer les services et l’accès au dossier lecteur ?

Paramétrage de l’index Solr et procédure d’import

Blacklight n’est à proprement parler que l’interface qui permet de gérer l’affichage des données et les services au lecteur. Celui qui fait tout le boulot de traitement des données, c’est le moteur Solr. Il s’agit donc de lui faire avaler des données au format MARC ISO2709 afin qu’il puisse les indexer et les proposer sous forme de facettes, par exemple.

Indexation

La version standard de Blacklight proposée en téléchargement fournit une configuration de base opérationnelle. Mais comme c’est un produit développé aux États-Unis, le format par défaut est le MARC21. Donc, au minimum, pour une BU française, le travail consiste à remplacer les étiquettes de champs MARC21 par des étiquettes UNIMARC. Plutôt facile de mettre 200 là où on trouve 245 ! Mais quand on aborde les notions d’auteurs secondaires ou de titres complémentaires, on se rend compte que les deux formats ont une manière de voir les choses bien différente.

Pour obtenir des facettes intéressantes, il faut réaliser des mappings comme celui-ci, qui concerne le type de document :

# format mapping
# leader 06-07
map.format.aa = Article ou communication
map.format.ai = Ressource à mises à jour
map.format.ac = Recueil
map.format.am = Livre
map.format.as = Revue
map.format.lm = Ressource électronique
# leader 06
map.format.b = Texte
map.format.b = Manuscrit
map.format.c = Partition musicale
map.format.d = Partition musicale
map.format.e = Carte ou plan
map.format.f = Carte ou plan
map.format.g = Vidéo
map.format.i = Enregistrement sonore non musical
map.format.j = Enregistrement musical
map.format.k = Image
map.format.l = Support informatique
map.format.m = Ressource multimédia
# 007[0] when it doesn't clash with above
#map.format.h = Microforme
#map.format.q = Partition musicale
# none of the above
map.format = Indéterminé

Pour la facette « Sujets », nous avons utilisé les mots-clés RAMEAU en séparant les subdivisions : tout ce qu’on trouve en $a ou $x constitue une vedette « thème » tandis que les $y et $z sont distribués « région » et « période ».

Importation automatique

Comme on veut disposer de données bibliographiques à jour, il faut mettre en place deux procédures automatiques : une pour exporter la base catalographique du SIGB, une autre pour importer les données dans l’index Solr.

Nous avons demandé à notre fournisseur de SIGB (GFI) de créer une procédure d’export de toutes les notices au format ISO2709. Donc, tous les jours, l’ensemble du catalogue est mis à jour.

Ensuite, nous avons développé un script shell qui permet, toutes les nuits, d’effacer l’index et d’importer le fichier ISO généré par AbsysNET. Après avoir longtemps buté sur la question des notices supprimées dans le SIGB, nous avons en effet choisi d’effacer tout l’index avant import. Cela permet de ne pas avoir à gérer d’import différentiel (i.e. seulement les nouvelles notices) ni d’avoir à retraiter les notices modifiées ou supprimées. En effet, il nous a semblé impossible d’extraire des indicateurs fiables pour identifier les notices à traiter : pas de données dans le label de notice UNIMARC (position 5 concernant le statut de la notice).

Connexions pour les données d’exemplaire et du lecteur

AbsysNET comprend un serveur Z3950 qui permet d’interroger la base Oracle. C’est sur ce serveur que l’on s’appuie pour interroger en temps réel la base des exemplaires et connaître leur disponibilité.

La page Blacklight qui affiche la notice détaillée d’un document intègre une requête Z3950. Le serveur Z3950 d’AbsysNET renvoie une réponse XML qu’il suffit de mettre en forme à sa guise. Nous affichons donc les données d’exemplaires en tableau et indiquons par une icône rouge ou verte si le document est disponible, c’est-à-dire non emprunté, dans telle ou telle bibliothèque du réseau.

Notice détaillée avec disponibilité
Notice détaillée avec disponibilité des exemplaires

En ce qui concerne le dossier lecteur et les services associés, nous utilisons un connecteur développé par GFI. Connu sous le nom de zabnetarch (car conçu pour fonctionner avec les portails Archimed), ce connecteur permet d’interroger les données du fichier lecteur et d’interagir avec les services permis par les politiques de prêt.

Notice détaillée avec service
Notice détaillée avec bouton de communication

On peut ainsi intégrer des boutons pour demander un prêt (et générer l’impression d’un bulletin), réserver un exemplaire, prolonger un emprunt et fédérer toutes les informations dans une page « mon compte ».

Personnalisation de l’interface

Nous n’avons pas passé de temps sur la partie graphique du catalogue. Nous nous sommes contentés pour le moment d’utiliser le thème standard de Blacklight. La mise en forme nous a semblé bonne et nous n’avons pas fait de cet aspect du projet une priorité.

Nous avons travaillé essentiellement à la traduction de l’interface et des libellés, avec le souci de sortir du jargon bibliothéconomique. Ce n’est pas toujours facile d’y parvenir… Ce même souci de lisibilité nous a conduits à simplifier autant que possible la lecture des notices. Il a fallu faire des choix quant aux champs à afficher. La tension est forte entre la clarté de la présentation et l’exhaustivité de l’information donnée. Compte tenu des remarques des uns et des autres, ce travail se poursuit, d’ailleurs.

Pour illustrer le catalogue, nous avons utilisé les API Google Books qui permettent d’afficher les vignettes de couverture des ouvrages. Après quelques déboires dus à la requête sur l’ISBN (Google digère mal les tirets), nous avons traité les notices de manière à obtenir systématiquement un EAN. Le taux d’affichage des vignettes s’en est trouvé amélioré. Mais c’est encore insuffisant. Notre catalogue est peu illustré, nous le voyons bien avec notre page d’accueil qui recense les nouveautés.

Faute d’un taux de couverture suffisant, nous avons provisoirement affiché nos titres dans un cadre représentant un livre. Nous obtiendrions certainement de meilleurs résultats si on utilisait les API d’Amazon. Mais ici comme ailleurs, le débat reste vif entre les tenants de l’efficacité (plus de vignettes grâce aux API Amazon) et les défenseurs du petit commerce (non à la publicité pour le géant d’internet). Il faudra bientôt trancher.

Configuration de Solr

Dès les premiers tests, il est apparu que les résultats donnés par Solr ne nous convenaient pas. Il a fallu bien se documenter sur son fonctionnement avant d’en saisir les mécanismes et de pouvoir agir sur le calcul de pertinence.

Le plus difficile pour un bibliothécaire est de rompre avec la rigidité des sacro-saints opérateurs booléens. Certes, ils sont utilisés par le moteur mais pas seulement. C’est tout un système de pondération qui peut être paramétré. Le moteur est tendu vers un objectif : donner des résultats. Il n’aime donc pas répondre qu’il ne trouve rien.

Tout l’équilibre réside dans le fait de trouver les termes demandés tout en suggérant d’autres pistes. Solr donne la priorité aux premiers termes saisis et à leur place dans la notice. Le premier résultat de la liste sera toujours la notice qui contient tous les mots saisis dans son titre. Si ce n’est pas le cas, alors le moteur revoit ses exigences à la baisse : des mots placés dans le corps de la notice, moins de mots retrouvés, etc. Et puis si vraiment il n’y a aucune concordance possible, Solr fait des suggestions.

Là encore, les mécanismes sont complexes et tout est différent d’une langue à l’autre. Solr doit être paramétré pour le français afin qu’il puisse analyser les structures de mots pour corriger une faute d’orthographe ou étendre ses recherches à une famille de mots.

Nous avons beaucoup de connaissances à acquérir dans ce domaine pour optimiser le comportement du moteur.

Et maintenant ?

Notre catalogue est en place, sur un mode OPAC de nouvelle génération puisqu’il n’intègre que les ressources imprimées gérées par le SIGB. Il s’agit maintenant de travailler à l’indexation de nos ressources électroniques. Certaines sont déjà présentes : les livres électroniques pour lesquels nous disposons de fichier de notices au format ISO2709 sont indexés directement par import.

Mais le gros des ressources devra faire l’objet d’autres traitements. La base de connaissance SFX pourrait être importée au format CSV et fonctionnerait avec des liens open url. D’autres ressources dont les éditeurs proposent des échanges via le protocole OAI-PMH nécessiteront le développement d’un moissonneur.

Bref, nous avons du pain sur la planche !

Garder sa distribution GNU/Linux propre comme un sou neuf (deuxième partie)

Vous qui lisez ce blog régulièrement, vous vous rappellerez sans doute qu’il y a déjà quelques mois je m’étais intéressé à différentes méthodes visant à maintenir propre et net son système GNU/Linux… C’était dans ce billet et il n’y était guère question que de lignes de commandes.

Nous allons cette fois-ci et comme promis en conclusion du précédent article, nous orienter vers les applications graphiques. Comme toujours ce sont les distributions Debian/Ubuntu qui ont mes faveurs mais la plupart de ces outils sont présents ou installables sur bon nombre de systèmes Linux.

L’avantage de ces outils graphiques réside essentiellement dans leur ergonomie, qui leur permet de gérer simultanément une grande quantité de paramètres, mais comme toujours ils peuvent être utilisables eux-même en ligne de commande ou n’être simplement qu’une interface graphique à une ou plusieurs commandes préexistantes, comme l’est par exemple Gtkorphan pour deborphan

Suppression des fichiers de configuration dans Synaptic
Suppression des fichiers de configuration dans Synaptic

Tout nettoyage efficace commence par la purge des paquets obsolètes ou superflus et l’on dispose pour cela de synaptic et computer-janitor ; certes ce dernier n’est plus installé automatiquement sur les dernières versions d’Ubuntu, mais il n’en reste pas moins dans les dépots…

Le bouton État de Synaptic est particulièrement intéressant au sens ou il permet de connaitre immédiatement le statut des paquets et partant de faire des suppressions plutôt « intelligentes » notamment pour les paquets « pouvant être supprimés » (orphelins) ou encore les « résidus de configurations » . Il faut toujours garder à l’esprit que Synaptic est une GUI (Graphic User Interface) pour apt-get et que tout comme cette commande il ne gère pas la suppression automatique des dépendances ; de même pour obtenir l’équivalent de l’option purge il faudra sélectionner les paquets « pour une suppression complète » et il se chargera alors d’éliminer également les fichiers de configuration…

Nettoyage du système
Nettoyage du système 

D’une façon un peu plus automatique mais aussi plus opaque à l’utilisateur on peut également utiliser l’application identifiée par Nettoyage du système alias computer-janitor dans le menu administration…

Cette application traquera pour vous dans les confins du système tout à la fois les paquets inutiles, les fichiers de configurations orphelins et les anciens noyaux…

Petite limite selon moi à son intérêt et à son utilisation (ce qui explique certainement son retrait des applications installées automatiquement par le système), l’impossibilité pour l’utilisateur d’intervenir sur son mode de sélection ou son paramétrage, hormis la liste finale…

Nettoyage des librairies orphelines
Nettoyage des librairies orphelines

Un autre de ces outils fort utiles pour débarrasser son système des paquets superflus est Gtkorphan, GUI de la commande deborphan, permettant d’indiquer facilement via un menu le type de fichiers ou de bibliothèques orphelines que l’on souhaite effacer.

Ce n’est d’ailleurs pas la sa seule qualité, car l’éventail et la modularité des options est particulièrement riche. On peut spécifier en effet si l’on souhaite rechercher là encore les fichiers de configuration non effacés par une suppression de paquet ou choisir le type de librairies orphelines à enlever, de celles relatives à python, à perl, etc,  jusqu’à la totalité, soit l’équivalent d’un deborphan –guess-all en ligne de commande.

Par ailleurs, puisque l’on fait le ménage dans le système de paquetage logiciel, il est de bon ton de vider son cache ce qui peut faire gagner à terme quelques centaines de méga-octets d’espace disque. Synaptic peut le faire si on le lui spécifie dans ses options mais d’autres outils à vocation plus générale le font également : c’est ceux-ci que nous allons aborder à présent.

Nettoyage avec Bleachbit
Nettoyage avec Bleachbit

Bleachbit est ce que l’on pourrait qualifier de nettoyeur à tout faire, s’agissant des historiques, caches et répertoires temporaires divers. A noter que deux modes de fonctionnement sont possibles : un mode utilisateur plutôt orienté vidage de caches et un mode root plus ciblé sur le nettoyage système (cache des paquets, vidage de /tmp et des journaux système, traductions inutiles, etc) et toutes choses requérant les attributions de l’administrateur. Ce dernier mode est particulièrement efficace pour se défaire des fichiers d’internationalisation non supprimés par localepurge, avec une fois de plus à la clé une quantité notable d’espace disque récupéré.

Fslint
Recherche de fichiers temporaires avec Fslint

 

Dans un registre un peu plus technique vient Fslint, utilisable également en ligne de commande.

Cet outil au demeurant hautement paramétrable et donc extrêmement polyvalent va quant à lui permettre de rechercher d’abord dans son home directory mais à priori partout où on le lui spécifiera les fichiers dupliqués, les répertoires vides, les fichiers temporaires ou encore les liens symboliques erronés… Le site doc.ubuntu-fr.org qualifie Fslint de couteau suisse et je partage amplement cet avis.

Enfin, pour conclure ce rapide tour d’horizon (non exhaustif) des outils graphiques, je vais simplement présenter deux applications disponibles uniquement sur Ubuntu que sont Ubuntu Tweak et Ailurus, encore que ce dernier fonctionne également sous Fedora. Ces deux utilitaires sont de véritables postes de commandes du système à la vocation beaucoup plus large que le simple nettoyage du système, même si elles intègrent en effet cette fonctionnalité. Dans les deux cas ces applications ne se trouvent pas sur les dépôts officiels et il faudra donc télécharger les .deb correspondant à sa version de distribution ainsi qu’à son architecture. D’une façon plus cohérente dans la mesure où on peut les trouver via launchpad on installera leur dépôt ppa au moyen de la commande add-apt-repository ce qui permettra des mises à jours et des suppressions aisées.

Il serait trop long et un peu vain de détailler ici le fonctionnement de ces deux applications dont le but est de paramétrer son système avec finesse ; les essayer est un bien meilleur révélateur. En guise de conclusion, quelques copies d’écran qui je l’espère vous donneront envie de le faire…

Nettoyage avec Ubuntu Tweak
Nettoyage avec Ubuntu Tweak

Ubuntu Tweak fait la part belle à la gestion des paquets, y compris les ppa et facilite la gestion des sources. Dans ses versions pour des distributions récentes, les fonctions de nettoyage s’étendent également aux caches des navigateurs, entre autres…
Il ne faut cependant pas négliger le reste de ses fonctionnalités, qui permettent d’accéder facilement à nombre de paramètres peu accessibles du système.

Fonctionnalité "ordinateur médecin" dans Ailurus.
Fonctionnalité « ordinateur médecin » dans Ailurus.

Ailurus est peu ou prou équivalent à Ubuntu Tweak sur bien des points, mais se veut néanmoins plus didactique dans son approche au sens où toutes les modifications effectuées sur le système sont explicitement décrites avec la ligne de commande correspondante.

Note : pour aller plus loin avec Ubuntu Tweak et Ailurus, je vous invite à consulter les pages consacrées à ces applications sur le site doc.ubuntu-fr.org.
Et toujours dans la catégorie bonnes lectures, je vous invite à consulter une série d’articles rédigés par Raphaël Herzog, par ailleurs auteur des Cahiers de l’Admin Debian, sur son blog :

Enfin, et j’en terminerai la dessus, maintenir un système en bon ordre de marche résulte nécessairement d’une démarche volontaire et de l’utilisation conjointe d’un certain nombre d’outils, graphiques ou non, et pour certains partiellement automatiques, mais toujours sans perdre de vue que c’est vous qui êtes aux commandes…

Blacklight, troisième partie : les services au lecteur

La série avait commencé par une présentation introductive puis par ce billet consacré aux données d’exemplaires, voyons dès à présent le problème des services aux lecteurs : renouvellement, liste des prêts en cours, demande de communication et réservation. Comment intégrer ces nouvelles possibilités à Blacklight (BL) ?

Serveur en tenue - Par telomi sur Flickr - Licence CC BY-NC-ND 2.0
Serveur en tenue – Par telomi sur Flickr – Licence CC BY-NC-ND 2.0

Appelons cela un problème, car la solution n’est pas totalement dans les mains de BL qui ne fournit pas d’outils pour se connecter à un catalogue. Pour bénéficier de toutes ces fonctionnalités utiles aux lecteurs, il faut un préalable évident : le SIGB interrogé doit proposer une interface permettant d’interroger ses services par des applications externes comme BL. Ce n’est pas toujours le cas et, pour nous, Absysnet ne dispose pas, par défaut, de telles interfaces. Heureusement, nous avons sous la main un programme répondant au doux nom de « zabnetarch », ajouté il y a quelques années à Absysnet par le prestataire pour l’intégration à notre défunt et regretté portail Archimed.

Ce programme est interrogeable via une connexion réseau simple TCP/IP. Nous lui passons des ordres rudimentaires du type : « donne moi les informations du lecteur possédant tel identifiant » ou encore « réserve cet exemplaire pour tel lecteur », et « zabnetarch » répond en XML en fournissant les données souhaitées ou un code explicite indiquant l’échec ou la réussite de la commande.

Quelques lignes de code pour finir

Une fois pris en main le fonctionnement de cette « API» minimaliste, il ne reste plus qu’à l’intégrer à BL. Avec Ruby On Rails, le principe est simple, il suffit d’ajouter un fichier avec des instructions en ruby dans le répertoire « models » de l’application. Pour chaque service (renouvellement, réservation, etc.) on ajoute une fonction dédiée dans notre fichier qui pourra être appelée par le programme qui gère l’utilisateur authentifié, offrant ainsi de nouveaux usages à l’intention du lecteur.

Désormais, nous avons intégré les données d’exemplaires, les services aux lecteurs fonctionnent, notre nouvel OPAC est presque prêt. La prochaine étape sera de déployer Blacklight sur son serveur définitif. Au menu, il sera question de capistrano, git, passenger mais nous verrons cela dans un prochain billet…

Série de l’été : Un succès, un regret, un projet (7)

A l’instar de mes collègues, j’apporte ma contribution à la saga de cet été en relatant mes impressions sur cette année écoulée.

Un succès…Il n’est certes pas aisé de changer de service après avoir été 20 ans à la disposition du lecteur, mais je pense m’en être sortie sans trop de problème, et ceci pour moi est un vrai succès personnel. De plus contribuer au développement de la bibliothèque numérique de Clermont-Ferrand me permet d’apporter ma propre pierre à cet édifice, à mon niveau.

Le service numérisation demande des compétences qui m’étaient totalement étrangères, cependant j’ai su m’adapter rapidement et acquérir ces compétences qui me manquaient afin d’être autonome le plus rapidement possible.

Un regret…J’aurais pu acquérir plus rapidement cette autonomie à l’aide d’une formation basée sur la numérisation en amont. Pour plusieurs problèmes, il n’a pas été possible de me dispenser cette formation et je me suis retrouvée plongée corps et âme dans un nouvel univers que je ne connaissais guère.

Un projet …Pour les temps qui viennent je souhaiterais approfondir mes connaissances sur la numérisation et être plus à l’aise dans les démonstrations du banc de numérisation.

En finalité, je suis satisfaite d’avoir atteint mon objectif personnel en m’intégrant avec succès dans ce nouveau service que ce soit sur le plan humain ou sur le plan professionnel.

Un portail de briques

Le 21 juin dernier, nous avons été invités par l’ADBS Auvergne à une après-midi d’étude sur les portails de bibliothèques à l’Institut National de Recherche en Sciences et Technologies pour l’Environnement et l’Agriculture (IRSTEA) d’Aubières, à deux pelouses de nos bureaux.

Marc Maisonneuve, formateur chez Tosca Consultants, était aussi convié pour faire le point sur la notion de portail documentaire et présenter l’offre de logiciel.  Nous sommes ensuite intervenus pour présenter le portail de la BCU. Colette Cadiou, responsable du service IST de l’IRSTEA a pris la parole à son tour pour présenter les portails Cemadoc et ist.irstea.fr, le tout nouveau portail de l’IRSTEA dédié à l’IST qui venait juste d’être mis en ligne, pour l’occasion.

Que retenir de cette après-midi de travail et d’échanges ?
D’abord des éclaircissements, salutaires, sur la notion de portail, qui nous apparaissait, à bien des égards, confuse, ambiguë, et polémique, tant et si bien que dans l’équipe, on rechignait parfois à employer ce mot, lui préférant celui, plus consensuel, de site web.
Marc Maisonneuve se donnait pour tâche de démêler cet embrouillamini. L’expression portail de bibliothèque n’est-elle pas employée à toutes les sauces? Tantôt on parle de portail pour parler de site web, tantôt de catalogue, tantôt d’outil de recherche fédérée, tantôt d’OPAC nouvelle génération… Il faut dire que même le JISC (Joint Information Systems Comittee) entretient cette confusion, en parlant de « service réseau », de point d’accès, où l’information, en ses différentes sources, se présente et se recherche par différents moyens, par l’entremise de technologies variées, pour se retrouver, sous forme de résultat, uniformisée, fusionnée, et affichée dans un format unifié. Si l’idée de portail y est, elle pourrait s’exprimer de façon plus limpide. Marc Maisonneuve la passe au crible et en extrait l’essence : le portail, c’est un « outil permettant de réaliser tout ou partie d’un site web, point d’accès unique à de multiples ressources documentaires, services et contenus. »
On perçoit mieux la différence entre portail et site web. Si le portail peut effectivement être un site web, il peut aussi n’en être qu’une composante, la composante-outil, en l’occurrence, pour rechercher des ressources documentaires, bénéficier des services en ligne de la bibliothèque, et, accessoirement, accéder aux contenus proposés par le bibliothèque. Cela ne veut pas dire que les contenus sont accessoires, bien au contraire, simplement qu’ils peuvent être dissociés du portail comme outil, en demeurant par exemple sur un site à part, comme celui de l’institution à laquelle appartient la bibliothèque.

Le portail peut se résumer à un seul outil, mais il en intègre souvent plusieurs. Marc Maisonneuve le qualifie à juste titre d’« outil composite ». Idéalement, le portail doit répondre à toutes les attentes des usagers. La typologie présentée des logiciels métiers recense tous les logiciels conçus pour répondre à ces attentes.
Le degré zéro du portail de bibliothèque, c’est le catalogue bien sur, avec pour corolaire en terme de logiciels, le SIGB et l’OPAC. Difficile en effet d’imaginer une bibliothèque sans catalogue. Ensuite, bien sur, c’est l’accès aux ressources numériques qui prime, avec pour corolaire les outils de signalement (liste AZ, résolveur, recherche fédérée etc.) On peut envisager, aussi, d’intégrer au portail une bibliothèque numérique, pour accéder aux documents primaires, sans oublier qu’il s’agit là juste d’un autre site que le portail interrogera, et non d’un élément charnière structurant. Le système de gestion de contenu, permettant d’éditer les contenus relatifs à la bibliothèque peut être une autre brique du portail.

Des briques très chics
Les briques très chic (upper level) par fallentoato flickr (CC BY-NC-SA 2.0)

Un portail de bibliothèque, ce sont des briques agrégées. Comment les agréger ? C’est l’architecture du portail qui sera décisive. Marc Maisonneuve présente plusieurs cas de figure. Le must, c’est d’ajouter à ces briques essentielles un opac de nouvelle génération, pour interroger de façon unifiée les métadonnées de toutes les ressources. C’est là un vrai service. Ce que n’est pas la recherche fédérée, qui interrogeant séparément les ressources de la bibliothèque apparaît beaucoup trop complexe et difficile à prendre en main pour les usagers.
L’architecture idéale ? Elle allie SIGB, catalogue, annuaire LDAP, CMS, base de données, et un OPAC de nouvelle génération pour chercher au sein de toutes ces ressources de façon unifiée via des métadonnées rassemblées, unifiées et enrichies.
Une fois définie l’architecture, il est nécessaire de mettre en œuvre une stratégie conforme à ses moyens pour réaliser le portail, en commençant par la brique la plus essentielle, le SIGB, puis le CMS, enfin les autres briques complémentaires qui ajoutent de la valeur à l’ensemble. Marc Maisonneuve nous met en garde vis à vis des produits tout en un, conçus pour répondre à toutes les fonctions. Cette ambition les dessert, le risque guettant de faire tout à peu près, comme le défunt jubil, comme notre ancien portail Archimed. Ces solutions tout en un sont envisageables pour les bibliothèques démunies, qui manquent de moyens et de compétences pour réaliser et mettre en oeuvre des outils libres, pouvant s’interfacer les uns les autres.

L’intervention de Marc Maisonneuve éclairait sous un nouveau jour notre propre démarche de construction de portail. Rétro-éclairage, pourrait-on dire, car le même Marc Maisonneuve était déjà intervenu à la BCU, en 2009,  à un moment où la BCU était encore BCIU pour donner une formation sur les portails documentaires, et faire le diagnostic de l’existant Archimed : cet ancien portail ne convenait plus en terme de positionnement, étant destiné à la fois aux usagers des bibliothèques communautaires et universitaires. Il était cher, peu ergonomique, et rigide, puisque la moindre modification supposait une intervention facturée du prestataire. La seule issue possible était de se donner les moyens de créer un nouveau portail. Comment ? En renforçant l’équipe de la bibnum. C’est ainsi que Mathieu et moi-même furent recrutés, que Raphaële et Karine intégrèrent à plein temps l’équipe, qu’Olivier prit les rennes du service. La BCU disposait déjà d’un SIGB et d’un opac absysnet. L’urgence était de concevoir et de construire le site. Nous nous y attelâmes. Les bibliothécaires des sections purent gérer comme ils le souhaitaient leurs contenus en ligne. Après l’évaluation du site, nous sommes à même de proposer bientôt une nouvelle mouture. Un résolveur de lien a été mis en place. Nous avons mis en oeuvre notre première bibliothèque virtuelle avec les carnets géologiques de Philippe Glangeaud. L’OPAC de nouvelle génération sera bientôt en ligne. Les archives ouvertes institutionnelles ont été développées. Demain, un nouveau SIGB s’imbriquera sans doute.

De briques en briques, le portail se façonne, avec des outils libres. Les briques s’interfacent, s’interposent, communiquent entre elles, pour un accès unifié aux résultats des recherches documentaires.

Portails de bibliothèques et centres de documentation : Présentation de l’offre de logiciels par Marc Maisonneuve Tosca Consultant, Aubière 21 Juin 2012 14h à 15h 30

Le portail de la BCU : retour d’expérience, par Olivier Legendre, Camille Meyer, Mathieu Bacault, Aubière 21 Juin 2012, 15h30 à 16h30

Blacklight, deuxième partie : les données d’exemplaires

Quand l'eau se fait RUBIS -Par CHRIS230*** - Licence CC BY-NC-SA 2.0 - Sur Flickr
Quand l’eau se fait RUBIS -Par CHRIS230*** – Licence CC BY-NC-SA 2.0 – Sur Flickr

Suite de notre série de billets sur Blacklight, commencée par une présentation générale.
La question qui nous intéresse désormais est de savoir comment connecter Blacklight à un SIGB. À priori, les nouvelles sont peu réjouissantes car Blacklight ne connait ni le z3950, ni OAI-PMH, ni aucun autre protocole pour interroger directement un catalogue. On peut l’alimenter d’une seule manière par défaut : en lisant des données au format Marc en XML ou ISO2709. Cependant, on peut le faire communiquer avec un catalogue, via z3950 notamment, sans devoir reprogrammer entièrement un client dédié. Si z3950 ne peut pas servir a récupérer un catalogue entier il peut être utile en revanche pour récupérer des informations en direct, comme les données d’exemplaires.

Nous allons utiliser ruby-zoom, une bibliothèque écrite en ruby et interrogeant ZOOM, une API disponible pour développer des services autour de z3950 (ce composant existe aussi pour PHP et C).
Pour l’installer sur un serveur Debian disposant d’un environnement Ruby, cette commande suffit :

[sourcecode language= »bash » gutter= »false »]$ apt-get install yaz libyaz4-dev[/sourcecode]

Ensuite, dans le fichier Gemfile de BL, ajoutons la ligne :

[sourcecode language= »ruby » gutter= »false »]gem ‘zoom’, :git => ‘https://github.com/bricestacey/ruby-zoom.git'[/sourcecode]

puis, dans le répertoire de BL, exécutons la commande suivante pour terminer l’installation de ruby-zoom (il sera compilé puis installé dans ruby on rails) :

[sourcecode language= »ruby » gutter= »false »]$ bundle install[/sourcecode]

Quelques lignes de code pour finir

À cette étape, il faut mettre la main à la pâte et programmer en Ruby. Le plus simple est de créer un nouveau modèle dans le framework Ruby on rails de BL dédié à la connexion z3950. Voici un exemple utilisant les fonctionnalités de ZOOM.

[sourcecode language= »ruby »]

class Z3950
attr_reader :ip, :base, :port, :url
attr_accessor :keyword

def initialize(ip, base, port)
@ip = ip
@base = base
@port = port
@url = @ip + ‘:’ + @port + ‘/’ + @base
end

def search
resultats =  »
begin
ZOOM::Connection.open(url) do |conn|
rset = conn.search(@keyword)
rset.each_record do |record|
resultats += record.xml
end
end
resultats.force_encoding(« ISO-8859-1 »).encode(« UTF-8″)
rescue
nil
end
end

def get_localisations(resultats= »)
doc = REXML::Document.new(resultats)
resultats = []
root = doc.root

if root.respond_to?(‘elements’)
#parcours des champs 998
root.elements.each(« datafield[@tag=’998′] ») do |element|
resultab = {}
#pour chaque element fils on récupère les informations d’exemplaire (localisation, salle, cote, empruntable ou non)
element.each do |field|
if field.respond_to?(‘elements’)
resultab[:localisation] = field.elements[« [@code=’b’] »].text if !field.elements[« [@code=’b’] »].nil?
resultab[:salle] = field.elements[« [@code=’c’] »].text if !field.elements[« [@code=’c’] »].nil?
resultab[:cote] = field.elements[« [@code=’e’] »].text if !field.elements[« [@code=’e’] »].nil?
if !field.elements[« [@code=’h’] »].nil?
if field.elements[« [@code=’h’] »].text ==  ‘ ‘
resultab[:empruntable] = nil
else
resultab[:empruntable] = field.elements[« [@code=’h’] »].text
end
end
end
end
resultats << resultab
end
end
resultats
end
end

[/sourcecode]

La méthode search définie ici s’occupe de la connexion au serveur z3950 et la méthode get_localisations récupère et traite la réponse XML du serveur pour obtenir les données d’exemplaire.
Il reste à ajouter quelques lignes de code dans le fichier catalog_controller.rb ou  l’on utilise les deux méthodes précédemment créées, puis dans le fichier show.html.erb pour afficher les résultats obtenus. Voici le résultat sur notre serveur de test, suivi des quelques lignes de code adéquates dans la vue et le contrôleur.

Affichage des données d’exemplaire dans BL

Le code à ajouter dans le fichier catalog_controller.rb :

[sourcecode language= »ruby »]
# surcharge de la méthode show du module catalog de blacklight
def show
@response, @document = get_solr_response_for_doc_id
connexion_z3950 = Z3950.new(‘X.X.X.X’, ‘base’, ‘port’)
connexion_z3950.keyword = @document.id
resultats = connexion_z3950.search
@localisations = connexion_z3950.get_localisations(resultats)

respond_to do |format|
format.html {setup_next_and_previous_documents}

# Add all dynamically added (such as by document extensions)
# export formats.
@document.export_formats.each_key do | format_name |
# It’s important that the argument to send be a symbol;
# if it’s a string, it makes Rails unhappy for unclear reasons.
format.send(format_name.to_sym) { render :text => @document.export_as(format_name), :layout => false }
end

end
end
[/sourcecode]

Et dans la vue (le fichier show.html.erb)

[sourcecode language= »html »]<p>
<table>
<tr>
<td>Disponibilité</td>
<td>Localisation</td>
<td>Salle</td>
<td>Cote</td>
</tr>
<% @localisations.each do |loc| %>
<tr>
<td><%= render_bouton_empruntable loc[:empruntable] %></td>
<td><%= loc[:localisation]%></td>
<td><%= loc[:salle]%></td>
<td><%= loc[:cote]%></td>
</tr>
<% end %>
</table>
</p>

[/sourcecode]

Garder sa distribution GNU/Linux propre comme un sou neuf (première partie)

Bien que la robustesse des systèmes de fichiers les plus fréquemment utilisés sous GNU/Linux et leur capacité intrinsèque à ne pas se fragmenter à l’utilisation ne soit plus à démontrer, force est de constater que la fréquence des mise à jour, quand ce n’est pas la succession d’installations/désinstallations de programmes contribuent néanmoins à encombrer inutilement le système de paquets obsolètes voire orphelins.
De même l’utilisation fréquente des applications de messagerie ou de navigation sur le web se traduit inévitablement par la mise en cache d’un grand nombre de fichiers temporaires, qui s’ils ne sont pas purgés périodiquement contribuent eux aussi à « l’encrassement » général du système…

Sans prétendre à l’exhaustivité, cet article se veut être un recueil de bonnes pratiques visant à maintenir son système GNU/Linux aussi propre que possible.

Comme d’habitude, nous nous intéresserons plus particulièrement aux distributions de type Debian/Ubuntu et dérivées, et dans ce premier article nous aborderons les outils disponibles en ligne de commande. Il en existe évidemment d’autres en mode graphique qui leur sont complémentaires ou qui permettent d’aller plus loin, aussi je leur consacrerai un prochain billet sur ce blog.

A chaque installation ou mise à jour d’un paquet logiciel, ce dernier est  téléchargé depuis les dépôts avant installation, puis est conservé en cache pour pouvoir être rapidement réinstallé, le cas échéant.
Si cette politique est tout à fait louable pour économiser de la bande passante et gagner du temps sur le téléchargement, on se retrouve très rapidement avec un cache de paquets de plusieurs giga-octets dont on peut facilement venir à bout :

sudo aptitude clean && sudo aptitude autoclean

Si l’on gagne ainsi un espace disque non négligeable, on peut cependant faire mieux. Chaque désinstallation de logiciel laisse en général (sauf si l’on a pris soin d’utiliser l’option –purge) des fichiers de configurations dont on peut se débarrasser facilement :

sudo aptitude purge ~c

Au reste, on peut sans forcément le savoir conserver au sein du système de nombreux paquets devenus obsolètes au fil des mise à jour que l’on éliminera comme suit :

sudo aptitude purge ~o

Sans faire preuve de frilosité outre mesure, on peut tout à fait préférer vérifier ce que l’on s’apprête à supprimer. Il suffira pour cela de remplacer dans ce qui précède l’argument purge par search, tout simplement…

A ce stade, vous aurez remarqué que j’utilise le gestionnaire de paquet aptitude au lieu d’apt-get qui est plus volontiers invoqué dans la documentation. De mon point de vue, étayé par cet article ou encore celui-ci, aptitude est à la fois plus souple et plus puissant qu’apt-get, et avant tout gère mieux les dépendances, y compris et surtout pour les mises à niveau de distributions. C’est également une habitude que j’ai prise depuis la Debian 3.1 « Sarge » et dont je n’ai pas envie de me défaire…

Maintenir propre sa base de paquets est une bonne chose, mais on peut cependant aller plus loin et débarrasser son système de nombre de fichiers inutiles, à commencer par les bibliothèques orphelines ou les fichiers de traduction dans les langues autres que la sienne. Pour cela on va se servir de deux programmes extrêmement utiles et efficaces que sont deborphan et localepurge. Installons-les pour commencer :

sudo aptitude install -r deborphan localepurge

deborphan (et son pendant graphique gtkorphan) repère les bibliothèques orphelines i.e. les composants de programmes rendus inutiles par désinstallation mais non supprimés par la gestion automatique des dépendances. Invoqué sans plus d’arguments à la ligne de commande, deborphan dresse la liste des « orphelins ». On l’utilise en général combiné à d’autre programmes, voire au sein de scripts shells :

deborphan | xargs sudo aptitude -y purge

supprimera les orphelins mais si l’on veut supprimer les paquets -dev devenus inutiles il suffira de faire :

deborphan --guess-dev | xargs sudo aptitude -y purge

Enfin, si l’on a pas froid aux yeux (et fait quelques vérifications préalables) on peut aussi procéder à un nettoyage radical avec :

deborphan --guess-all | xargs sudo aptitude -y purge

Pour en terminer avec la suppression des paquets inutilisés, voici un exemple de script de nettoyage permettant d’automatiser ce genre de tâche :

[sourcecode language= »bash » highlight= »3,31″]
#!/bin/zsh
echo « liste des paquets inutilisés : »
deborphan
echo « nettoyer? o/n »
read netdeb
if [[ $netdeb == o ]]
then
apt-get remove –purge `deborphan`
fi
echo « paquets desinstallés avec fichiers de config présents »
dpkg -l |grep « rc   » | awk ‘{ print $1″: »$2 }’ > liste_nom
for i in `more liste_nom`
do
echo $i > temp_verif
verif=`awk -F ‘:’ ‘{ print $1 }’ temp_verif`
if [[ $verif == « rc » ]]
then
paquet=`awk -F ‘:’ ‘{ print $2 }’ temp_verif`
echo « purger le paquet : » $paquet « ?  o/n »
read netconf
if [[ $netconf == « o » ]]
then
dpkg –purge $paquet
fi
fi
done
# nettoyage fichiers temporaires
rm liste_nom temp_verif
[/sourcecode]

Par ailleurs, l’internationalisation toujours plus poussée amène avec elle un inconvénient de taille, si l’on peut dire, sous la forme des traductions des pages de man. Hormis l’anglais qui est la langue native du système et le français la langue d’usage il est inutile de conserver l’ensemble des traductions et pour cela localepurge est notre ami. A l’installation, il suffit de cocher les cases en, fr et fr_FR :

configuration de localepurge
Configuration de localepurge.

Quant à l’usage on peut invoquer directement localepurge dans un terminal pour constater immédiatement son action, cependant c’est également sur le long terme que son action est efficace puisqu’il entre en action à la moindre installation de paquet afin de ne conserver que les traductions voulues.

Résultat
Résultat

Le seul reproche que l’on peut adresser à localepurge, c’est de ne pas éliminer toutes les traductions, notamment les fichiers d’internationalisation de l’interface graphique.
Voilà la transition toute trouvée pour aborder le thème de mon prochain article, car c’est précisément une situation à laquelle on remédiera en utilisant d’autres outils, graphiques cette fois.

D’ici quelques jours, je vous proposerai donc d’examiner plus avant le fonctionnement de Synaptic, Computer Janitor pour la gestion des paquets, BleachBit et Fslint pour le nettoyage sans oublier, mais cette fois-ci uniquement pour Ubuntu, cet outil fort pratique qu’est Ubuntu Tweak…

Présentation de Blacklight

Total solar eclipse solaire 1999 – Luc Latour sur Flickr – licence CC BY-SA 2.0
Total solar eclipse solaire 1999 – Luc Latour sur Flickr – licence CC BY-SA 2.0 

À la recherche d’une nouvelle interface de consultation de notre catalogue, nous testons actuellement un logiciel développé par plusieurs universités américaines : Blacklight (BL). Ce logiciel présenté lors d’une journée d’étude Couperin sur les discovery tools libres propose via une interface sobre et claire, une recherche par facette hautement configurable. Plusieurs exemples sont proposés sur le site du projet. Voyons son fonctionnement plus en détail.

À proprement parler, ce n’est pas BL qui fournit une recherche par facette mais un de ces composants : Solr, le moteur de la fondation Apache. BL est configuré pour l’interroger au mieux et avec des formats de données connus des bibliothèques. En l’occurrence, BL a été développé pour MARC mais on peut l’adapter pour d’autres formats. Par défaut, il propose différents champs : (titre, sous-titre, auteur, date de publication, sujets, format, localisation, etc.) que l’on retrouve dans les facettes sur la gauche (copie d’écran ci-dessous), ou en coulisses dans l’index de Solr. On peut bien sûr les modifier, en enlever ou en ajouter d’autres.

Blacklight à l'universite de Stanford
Blacklight à l’universite de Stanford

À ce jour, le seul moyen d’alimenter Blacklight fonctionne par Solr. Ce dernier dispose d’un certains nombres de connecteurs pour l’alimenter depuis une base de données, un fichier texte ou des notices en MARC via le programme Solrmarc, intégré par défaut à BL. Un fichier de configuration fait la correspondance entre les champs de BL et ceux des notices. À l’origine, ce mapping est prêt pour le MARC mais on peut l’adapter pour l’UNIMARC. La tâche est a priori aisée pour une correspondance directe de champs mais elle se complique quand il s’agit de les apparier, d’enlever une ponctuation inappropriée, de mettre une phrase en minuscule, etc. Dans ce cas, il est nécessaire de faire appel à des fonctions de traitement existantes ou à redéfinir en JAVA.

Une notice de Blacklight
Une notice de Blacklight

À l’usage, l’import de notices se fait très rapidement même pour un grand nombre d’enregistrements et BL est presque utilisable en l’état. On pourra configurer l’affichage des champs des notices ou des facettes à loisir dans un simple fichier de configuration. Cependant, si on opte pour l’UNIMARC, il reste un problème d’encodage pour les différents formats d’export de notice proposé par BL (en copie d’écran jointe). L’adaptation est délicate car elle nécessite de redéfinir des fonctions du cœur du programme en ruby.

Pour résumer, BL est relativement facile à prendre en main, à installer et à alimenter même quand on ne connait pas bien le fonctionnement de Ruby On Rails, le framework sur lequel il s’appuie. La tâche se complique pour le passer en UNIMARC ou pour des fonctionnalités plus personnalisées comme la connexion à un SIGB. Mais cela fera l’objet d’autres billets dans l’alambic…

Ouvrez vos Fenêtres® sur le monde (du logiciel) libre…

Tux
Tux

Le mail est arrivé lorsque j’étais absorbé par la lecture du précédent article de ce blog, Ma première install-party… Mon chef vénéré, mais chef néanmoins, me rappelait avec bienveillance que je n’avais encore pas apporté ma contribution aux parutions hebdomadaires de notre blog. Fort de cette pression amicale et encore tout imprégné de ma lecture, je vous propose donc une tribune –libre, cela va de soi– où il sera tour à tour question, un peu en vrac je le concède, d’install-party, de choix cornéliens, de cyberespace et de manchots paradoxaux…

En passant par l’install party
Olivier l’ayant très bien décrit dans son article, je ne m’attarderai pas davantage sur cet évènement sinon pour dire que c’était une première pour moi aussi, et que j’ai beaucoup appris de cette expérience, à laquelle j’ai été ravi d’apporter ce que je n’aurais pas l’outrecuidance d’appeler « expertise » mais plus modestement de « savoir-faire ». Il me semble plus à propos de formuler la chose ainsi, l’idée même d’une install-party étant justement l’occasion de transformer le savoir-faire en faire-savoir… N’étant pas prosélyte et encore moins rhéteur,  je ne saurais convertir autrui aux logiciels libres par de longs discours, fussent-ils pertinents et techniquement étayés. En outre, je reste persuadé qu’il n’y a en la matière qu’une seule vertu : celle de l’exemple.
Néanmoins pour celles et ceux qui voudraient mettre en place un atelier semblable, je ne saurais trop conseiller que d’avoir sous la main un serveur DHCP, pour s’éviter une phase de configuration du réseau aussi fastidieuse qu’inutile (au sens où il faudra détruire cette configuration à l’issue de l’installation), l’attribution dynamique d’adresses IP étant en outre un standard de fait dès lors que l’on est connecté à une box ou un point d’accès wifi… Un équipement réseau gigabit accélèrera certainement le téléchargement des paquets logiciels, surtout s’il est couplé à miroir local des dépôts de la distribution GNU/Linux que l’on veut installer (quitte à devoir reconfigurer après coup les sources de logiciels pour l’utilisation dans le domaine public)…
Si j’insiste sur ces quelques améliorations visant à réduire la durée d’installation, c’est que le temps passe très vite quand on s’amuse et bien que l’on puisse faire profiter les participants de quelques digressions sur la généalogie des systèmes UNIX ou la philosophie de la licence GPL durant les phases de téléchargement et d’installation du système, il est finalement un peu frustrant de les lâcher au moment où cela devient vraiment intéressant, c’est à dire lorsque l’on a entre les mains un système GNU/Linux à s’approprier et à configurer…

De l’art de faire des choix
Une des questions centrales à ne pas éluder reste le choix de la distribution. De ce point de vue, l’offre est devenue en l’espace de quelques années réellement pléthorique et l’observatoire du libre qu’est le site http://distrowatch.com/ vous en convaincra mieux que moi. Passés les nombreuses distributions spécialisées servant à créer des pare-feu, des routeurs, des serveurs NAS et j’en passe, que reste-t-il donc ? Largement de quoi s’y perdre, je vous l’assure, ce qui ne contribue finalement pas à la dissémination des systèmes libres, mais je reviendrais plus tard sur ce point…
Choisir une distribution linux est finalement tout sauf neutre, car ce choix suppose une profonde adéquation entre les besoins et/ou les capacités de l’utilisateur et la philosophie portée par le système. L’agilité des systèmes GNU/Linux n’étant plus à démontrer, il faut tout simplement que l’utilisateur se sente à l’aise avec son système.
En ce qui concerne notre install-party, j’ai arbitrairement décidé d’installer Ubuntu et assumé ce choix, alors même que cette distribution malgré son réel succès est loin de faire l’unanimité parmi les utilisateurs de systèmes libres…
De mon point de vue, Ubuntu ne peut être mauvais, puisqu’il y a quand même de gros morceaux de Debian dedans. Par ailleurs, s’adressant à des utilisateurs novices (mais motivés) venus de Windows, le choix d’une distribution ouvertement tournée vers l’utilisateur et donc facile de prise en main était simplement évident, preuve aussi que les interfaces utilisateurs trop souvent jugées (à tort) frustes ou indigentes ont depuis longtemps laissé place à de magnifiques cliquodromes aux effets visuels propres à faire pâlir de jalousie le plus enragé des windowsiens intégristes !

Piégé dans le cyberespace ?
C’est d’ailleurs l’omniprésence (omnipotence ?) de Windows dans le monde de l’informatique personnelle et professionnelle qui m’a remis en mémoire un article de Roberto Di Cosmo intitulé Piège dans le Cyberespace (que je vous invite vivement à consulter si vous ne le connaissez déjà). Je l’ai lu pour la première fois il y a une bonne douzaine d’années, au tournant de l’an deux-mille (l’article en question date du 17 mars 1998, soit près de quatorze ans maintenant).
Et si j’insiste tant sur les dates, c’est que pour l’avoir relu avant d’écrire ces lignes, je reste frappé par le caractère actuel du propos… Il suffit de remplacer dans le texte orignal Windows 95 par Windows 7, Office 97 par Office 2010 pour avoir sous les yeux la peinture hyperréaliste du paysage informatique actuel, ce qui est finalement presque un constat d’échec quant à l’évolution sur près d’une décennie et demi pour le logiciel libre !
Cependant la situation a néanmoins beaucoup évolué et les applications open-source conquièrent progressivement la place occupée jadis par les seules applications Microsoft : Firefox ou Chrome pour les navigateurs, Thunderbird pour la messagerie, OpenOffice ou LibreOffice pour la bureautique pour ne citer que celles-ci…
C’est que faute d’avoir investi massivement le poste de travail d’utilisateurs finalement peu enclins au changement lorsqu’ils ne sont pas maintenus captifs des solutions proposées (imposées ?) par les éditeurs de logiciels commerciaux, les systèmes libres ont heureusement progressé sur d’autres terrains comme celui des consoles de jeux (Nintendo Wii) ou encore dans le domaines des terminaux mobiles, smartphones et tablettes (Androïd, et bientôt Chrome OS ?). En tant que telle, la diversification du champ d’application de l’informatique est en elle-même porteuse d’espoir, d’autant qu’elle est en adéquation avec la vitalité des communautés open-source.

Le paradoxe du manchot
Je l’évoquais plus haut, mais paradoxalement l’évidente fécondité de la communauté de l’open source, a tout pour désorienter le béotien, et partant freiner la dissémination du libre. Trop d’offre tuerait donc l’offre ?
Un autre facteur est aussi la versatilité : divergence d’opinion entre développeurs, choix d’un mode de licence, changement de partenariat, il n’en faut parfois pas plus pour qu’un projet forke, qu’OpenOffice diverge en LibreOffice, que Firefox soit rebaptisé Iceweasel (sur Debian)…
Face à ces monolithes que sont Windows et dans une moindre mesure MacOS, les systèmes GNU/Linux vivent clairement sur les marges, portés par une minorité agissante d’inconditionnels et d’enthousiasmes qui paradoxalement voient parfois d’un mauvais œil les efforts de démocratisation consentis par des sociétés commerciales (Oracle, Cannonical…) même si ceux-ci semblent aller dans le bon sens…
Que manque-t-il aux systèmes libres pour qu’ils atteignent enfin la place qui leur revient (quand on sait que ces mêmes systèmes UNIX / Linux sont présents sur près de 70 % des infrastructures de l’Internet) ? Un partenariat avec un grand constructeur d’ordinateur qui distribuerait ses machines dotées d’un systèmes GNU/Linux préinstallé comme l’ont tenté Ubuntu et Dell, pour un temps au moins, assurerait de toucher un large public…
Au delà de ces conjectures, j’en revient à l’étonnante vérité des chiffres qui ressortent de notre install-party : environ 120 personnes invitées, une douzaine de présents (soit les 10% de gens qui disent connaitre/avoir entendu parler de GNU/Linux) et au final 4 ordinateurs personnels convertis totalement ou partiellement au petit manchot… soit en considérant quelques biais à peu près 3%, ce qui représente la marge haute dans les estimations de part de marchés des OS libres pour les ordinateurs personnels…
Finalement, et puisqu’on n’est plus à un paradoxe près, on se dit que le choix de Tux le manchot comme mascotte de Linux n’est peut-être pas si fortuit ou innocent que cela (mais ironique, sûrement), puisqu’après tout les manchots sont des oiseaux qui ne volent pas (alors que le pingouin, si !).

Ma première install-party

Avant... Cliché O. Legendre (licence Creative Commons Zéro)
Avant… (photo sous licence Creative Commons Zéro)

J’ai toujours rêvé de participer à une install-party.  Non que le mot revête à mes yeux tellement de charme : je serais preneur d’une traduction française compréhensible, mais je ne suis pas sûr qu’atelier festif d’installation de système libre, ni un scintillant néologisme tel que fêtelier informatique fasse vraiment l’affaire.

Usons donc du mot pour être compris, sachant que c’est la chose qui mérite l’intérêt : il s’agit de permettre, au cours d’un atelier à caractère mi-sérieux mi-ludique (qui est un peu la marque de fabrique du monde Linux), l’installation simultanée d’un système libre sur les ordinateurs de tous les participants, sous la houlette de quelques praticiens chevronnés.
On a déjà développé dans ce blog le grand intérêt des systèmes libres, et de nombreuses bibliothèques publiques proposent, parfois avec l’aide d’associations locales de soutien au logiciel libre, des install-parties pour leurs usagers ; mais les universités n’ont pas tellement emboîté le pas dans ce domaine, ce qui est un peu paradoxal quand on sait qu’elles forment un public abondant, jeune et a priori bien disposé à l’égard d’un système informatique à coût nul. Du reste, bien des étudiants n’ont pas attendu que leurs bibliothécaires s’intéressent au libre, et notamment dans les disciplines scientifiques, ils l’utilisent depuis longtemps déjà.

Soucieux, à titre professionnel de participer à la dissémination des systèmes libres à l’université et chez les étudiants qui n’y connaitraient rien ; tenté, à titre personnel, par l’installation d’un Linux sur ma vieille machine (vous savez, celle qui a 5 ans, qui met 6 minutes à démarrer sous Windows et 7 à ouvrir un document texte) ; bref, bien décidé à tenter l’expérience à la BU, j’ai demandé de l’aide aux collègues et nous avons organisé la chose à titre interne et expérimental, puisque nous avons sur place trois informaticiens tout à fait bien disposés envers le petit manchot.

Ma première Linux party a donc eu lieu le 9 février dernier, organisée par et pour des collègues, à titre d’expérience et de formation. Brève fiche pratique pour ceux qui voudraient faire de même, et pour nous-mêmes l’an prochain.

L’organisation générale
– faire un mail à l’ensemble du personnel et recueillir les inscriptions : une dizaine sur l’ensemble du réseau (quelques 120 collègues), ce n’est pas si mal. Nous avions fixé un plafond de 12.
– demander aux participants d’apporter leur machine deux jours avant pour pouvoir se livrer à un diagnostic de leur état : une machine trop ancienne (au-delà de 5 ans) pourrait ne pas bien supporter le passage.
– leur suggérer qu’un apport de type gastronomique était bienvenu (c’est tout de même une party).

La régie

La scène... Cliché O. Legendre (licence Creative Commons Zéro)
La scène…(photo sous licence Creative Commons Zéro)

– réserver une salle à la BU et y acheminer le réseau nécessaire pour une douzaine de postes, mettre un vidéoprojecteur en place pour les démonstrations. La salle de formation classique ne se prête pas bien à cet usage (les tables sont déjà pourvues, donc encombrées, d’ordinateurs…), on a donc dévoyé une salle de réunion.

Embrouillamini de fils...
… et les coulisses. (photo sous licence CC-Zero)

– préparer les machines d’appoint (pour ceux qui n’apportent pas leur machine mais qui veulent juste voir comment ça se passe et manipuler le système) et les PC personnels déposés pour examen.

– choisir le système à installer (Ubuntu 10.04 en l’occurrence, pour ne pas surcharger les machines un peu anciennes que nous allions utiliser) et graver tous les CD nécessaires.
– animer la séance et assister au fur et à mesure ceux dont les machines donnaient des signes de faiblesse ou posaient des problèmes particuliers. Les trois collègues informaticiens disponibles ont largement suffi à la tâche, la procédure étant très bien balisée parce qu’ils sont surcompétents et surmotivés, bref des surhommes quoi.

Bilan au bout de 4 heures
Ubuntu version 10.04 est installé sur les dix machines : 4 PC personnels et 6 fournis par le service. Ces dix postes fonctionnent. Une intervention postérieure (trois minutes) sur les postes a cependant été nécessaire pour modifier les paramètres d’accès internet : ceux qui servaient lors de l’installation à l’intérieur de la BU, ne permettaient pas l’usage d’une connexion filaire extérieure, et le passage en DHCP n’est pas parfaitement géré par l’interface graphique du système.

Ma vieille machine est redevenue utilisable. Elle démarre en moins d’une minute et répond gentiment, et vite, quand je lui demande d’ouvrir un fichier.

Après ! (licence Creative Commons Zéro)
Après ! (photo sous licence Creative Commons Zéro)

Perspectives
– Organiser la même l’an prochain, mais cette fois pour les étudiants.
– Passer en dual-boot (système mixte Linux-Windows) au prochain renouvellement de postes de la bibliothèque numérique, puisque hélas notre SIGB ne tourne pas correctement sous Linux.
– … Et donc, bien sûr, changer de SIGB. Mais c’est un chantier d’une autre ampleur, donc une autre histoire et d’autres billets.

Une messagerie pour deux systèmes : cas de Thunderbird sur un pc en dual-boot

Quiconque ayant un jour fait preuve de suffisamment de curiosité, ou ayant eu l’esprit aventureux au point de sortir des sentiers balisés des systèmes d’exploitation que je qualifierai pudiquement de « pré-installés » s’est inévitablement tourné vers GNU/Linux…

En bon camarade, GNU/Linux, toutes distributions confondues, vit bien la cohabitation avec un système Windows préexistant. Pour peu que ce dernier lui en ait laissé la place, GNU/Linux s’y installe sans plus de difficulté et les deux systèmes vivent alors sur le mode de la coexistence pacifique…

Certes Windows demeure superbement indifférent à Linux, incapable qu’il est de déchiffrer son système de fichiers. Linux, plus agile, sait lire et écrire sur des partitions NTFS, ce qui au passage en fait un outil pratique pour récupérer les données et parfois même réparer un Windows cassé…

Cependant quiconque ayant un jour fait l’expérience du dual-boot sait que l’on se retrouve immanquablement confronté à des choix. Disposer de deux systèmes est à coup sûr un confort, et la certitude de revenir facilement à un environnement familier. Pour l’utilisateur dont Linux est devenu le système principal mais pour qui Windows reste indispensable (une application propriétaire sans équivalent et ne fonctionnant pas sous Wine, par exemple) le dual-boot offre une souplesse bienvenue…

Mais dans ce contexte, quid de l’accès aux données déjà présentes sur l’ordinateur ? En particulier aux données déjà enregistrées dans certaines applications tournant sous Windows, ces dernières étant entièrement configurées… vous voyez sons doute où je veux en venir ? Je pense bien évidemment à la messagerie électronique.

ThunderbirdCertes on peut résoudre la question en utilisant exclusivement un webmail, ou en redémarrant son pc pour consulter ses mails, mais sincèrement, quel ennui.

Pour peu que l’on respecte quelques conditions préalables, il est toutefois possible de disposer d’une seule messagerie pour les deux systèmes. Supposons que l’on était auparavant un utilisateur « éclairé » de Windows préférant un client de messagerie open-source, en l’occurrence Thunderbird.

Il nous faut installer dans notre beau système GNU/Linux en dual-boot le même Thunderbird, ou tout au moins une version majeure identique (au moment ou j’écris ces lignes, la version dans les dépôts Ubuntu 10.10 « Maverick Meerkat » est la 3.1.16 et celle présente sur ma partition Windows XP est la 3.1.18) ce qui peut se faire ainsi :

$ sudo aptitude install -r thunderbird

 Si cette version vous semble trop archaïque, ou bien que votre messagerie Windows est déjà un Thunderbird 10.0 flambant neuf pas de problème, il suffit d’aller, si j’ose dire, « à la source » : https://launchpad.net/~mozillateam/+archive/thunderbird-stable et d’ajouter le dépot ppa de Thunderbird avant de procéder à l’installation.

$ sudo add-apt-repository ppa:ppa.launchpad.net/mozillateam/thunderbird-stable/ubuntu maverick main

puis via Synaptic ou plus prosaïquement en ligne de commande :

$ sudo aptitude update && sudo aptitude install -r thunderbird

A ce stade nous disposons donc de Thunderbird dans les deux systèmes, il convient donc de configurer le client Linux afin qu’il aille chercher l’intégralité des données de la messagerie déjà installée sous Windows, c’est à dire bien sûr le texte des messages, les pièces jointes mais également la totalité du carnet d’adresses, les filtres et plus important, la configuration du ou des comptes, mots de passe inclus… sans oublier les modules complémentaires !

La partition  windows est en général accessible via le menu « raccourci » de Gnome, le point de montage étant /media/WINDOWS si le disque ne porte pas de nom particulier. Le répertoire contenant les dossiers de la messagerie se trouve alors, si l’on est sous XP

/media/WINDOWS/Documents and settings/Nom_de_l'utilisateur/
Application Data/Thunderbird/Profiles/xxxxxxxx.default

(xxxxxxxx étant une valeur alphanumérique propre à chaque installation). Sous Vista ou Seven, le répertoire de l’application est à chercher du côté de /Users/Profiles…

On doit maintenant éditer le fichier de configuration de Thunderbird, que l’on trouve dans le répertoire .thunderbird de son home directory et qui se nomme profiles.ini

$ cd .thunderbird/
$ sudo vim profiles.ini

et là on remplace la variable path existante par le chemin décrit plus haut

Path=/media/SYSTEME/Documents and Settings/utilisateur/
Application Data/Thunderbird/Profiles/m31xts4b.default

On n’a plus qu’à enregistrer les modifications et lancer Thunderbird pour retrouver sa messagerie à l’identique, entièrement configurée et toute prête à être utilisée…

A chaque démarrage cependant, il faudra penser à monter sa partition windows avant de lancer Thunderbird sous peine de recevoir en plein figure un beau message d’erreur…

Rassurez-vous, Linux pense aux étourdis et offre la possibilité de monter automatiquement une partition au démarrage, ce qui se fait en éditant le fichier /etc/fstab

$ sudo vim /etc/fstab

auquel on ajoutera une ligne comme celle-ci, après avoir examiné la sortie de la commande sudo fdisk -l et par sécurité fait un cat /etc/mtab

périphérique  point de montage  ntfs-3g   rw,user,auto,gid=100,uid=1000,nls=utf8,umask=002  0  0

périphérique est à remplacer par /dev/sda1 et point de montage par /media/WINDOWS, la plupart du temps (à adapter à votre système, quoi qu’il en soit).

Et après ça vous devriez arriver à lire vos mails quel que soit votre système !

Introduction aux logiciels libres

À l’intérieur de notre réseau, l’usage des logiciels libres est de plus en plus courant : la généralisation de l’utilisation d’OpenOffice est en cours, nos serveurs et sites web sont pour la plupart sous licences libres et certains postes publics sont équipés d’une distribution Linux. Si cette transition ne provoque pas de levée de boucliers, la notion de logiciel libre reste cependant mal comprise. À destination des collègues de la BCU, cet article a pour but d’éclairer un peu mieux le choix de nos outils informatiques…

Galette Mosaïque - Par Yuichi.Sakuraba Flickr - Licence CC BY-NC 2.0 - Flickr
Galette Mosaïque – Par Yuichi.Sakuraba Flickr – Licence CC BY-NC 2.0 – Flickr

D’abord, une définition. Pour cela, prenons l’exemple couramment utilisé de la recette de cuisine. Imaginez un instant que vous réalisiez un superbe gâteau pour l’anniversaire d’un ami. Les convives admiratifs, après s’être régalés de la pâtisserie, vous demandent alors la recette. Deux possibilités s’offrent à vous. Vous pouvez jalousement garder le secret de fabrication et lancer un « Oh tu sais, c’est tout simple, j’ai fait ça les yeux fermés ». Vous pouvez également copier la recette de votre œuvre et la distribuer généreusement à votre entourage selon les principes du logiciel libre. Quelles sont les différences entre ces deux façons de faire ?

Dans le premier cas, vos invités ignorent la recette du gâteau. Ils ne peuvent le reproduire à l’identique, vous seul(e) détenant le secret de fabrication.
Dans le deuxième cas, chacun peut reproduire le gâteau chez lui à sa guise. Si on pousse l’analogie avec les logiciels libres plus loin, vos amis pourront également modifier la recette et la distribuer à nouveau avec leurs modifications. Toutefois, rien ne garantit que c’est à vous qu’il feront goûter le fruit de leurs efforts…
Pour en revenir au logiciel, chacun d’entre eux possède sa recette qu’on appelle le code source. Dans le cas d’un logiciel non-libre, le code source n’est pas accessible. L’utilisateur est alors dans l’impossibilité d’étudier son fonctionnement, de le reproduire ou de le modifier (sous réserve qu’il ait les connaissances informatiques pour le faire). Il n’aura pas non plus l’autorisation de le partager avec quelqu’un d’autre, ces droits étant déterminés par la licence accompagnant le logiciel. Ainsi on pourrait définir un logiciel libre par « logiciel ayant une licence libre». La GPL (Gnu General Public License) est la figure de proue des licences libres mais il en existe d’autres.
La comparaison culinaire a ses limites et, pour une définition plus précise, vous pourrez lire cette page de la free software foundation à l’origine du concept de logiciel libre.

«N’est-ce pas moins bien parce que c’est gratuit ? »

Au détour d’une conversation sur les « Free software » (à ne pas confondre avec « freeware »), vous entendrez peut-être la question ci-dessus qui contient deux erreurs à elle seule.
Libre ne veut pas dire gratuit. Vous pouvez tout à fait commercialiser un programme sous licence libre. Cependant, il y a peu d’intérêt à vendre un logiciel dont on distribue le code librement. Les entreprises qui occupent ce secteur vendent des services (maintenances, mises à jour) plutôt que le logiciel en lui-même.

Sans vouloir faire un comparatif entre logiciels libres et logiciels non-libres, la qualité n’est pas un argument en leur défaveur. L’ouverture du code entraîne en général une amélioration de la fiabilité du programme. La raison en est que les communautés de développeurs peuvent détecter plus rapidement et plus facilement les éventuelles erreurs de programmation et améliorer le logiciel en conséquence.

Une autre confusion provient de la similitude entre la notion d’open source et celle de logiciel libre. La FSF (Free Software Foundation) est à l’origine de l’appellation « logiciel libre » tandis que l’organisme OSI (Open Source Initiative) revendique l’appellation « open source ». Les premiers, emmenés par Richard Stallman, mettent en avant les valeurs de partage et de liberté garanties par les licences libres. Les seconds, qui se réclament d’Eric Raymond, (hacker respecté pour son livre La cathédrale et le bazar) se veulent pragmatiques et prônent l’open source pour ses qualités intrinsèques (meilleure fiabilité du logiciel due à l’ouverture du code). Selon que l’on est partisan de l’un ou de l’autre camp, les termes et la philosophie varient mais les deux définitions sont en accord dans la plupart des cas.

Tux le manchot
Tux le manchot

Enfin, il reste une confusion mineure mais néanmoins problématique. Rendons son honneur à Tux, mascotte emblématique de Linux. Il est souvent confondu avec un pingouin à cause du mot anglais « penguin » qui signifie en réalité « manchot ». Un spécialiste avancerait que pour un manchot, Tux ne ressemble à aucun autre de ses confrères mais cessons là la comparaison.

Pour finir, voici un lien vers le site Framasoft, référence incontournable du « monde libre », sur lequel vous trouverez quantité de fiches descriptives de logiciels libres en tout genre pour différents systèmes d’exploitation. Bonne découverte !

Logiciels libres et développement en bibliothèque

Quand une bibliothèque dispose d’un développeur, la question des logiciels libres est au cœur des développements. Leur utilisation amène pourtant des contraintes et influence l’organisation du travail. Voici un état des lieux sur leur pratique, avantages et inconvénients.

Un développeur seul n’est rien

Course de gnous - Licence CC BY-NC 2.0 - Par Thiery49 Flickr
Course de gnous – Licence CC BY-NC 2.0 – Par Thiery49 Flickr

Commençons par un constat : pour un développeur web, ce n’est pas très productif de programmer un logiciel de A à Z. La plupart des fonctionnalités de base (création de pages web, gestion d’utilisateurs, etc.) sont fournies par la majorité des CMS et il serait vain de vouloir faire mieux ou de les reproduire à l’identique en travaillant seul. Autre écueil, le travail d’une personne, ne peut rivaliser avec celui d’une communauté de développeurs fournissant mises à jour régulières et correctifs contre les failles de sécurité.
Cependant, on peut comprendre l’envie de l’informaticien de créer sa propre application. Concevoir, modéliser, pratiquer de manière avancée la programmation objet et les patrons de conception sont autant d’étapes passionnantes du cycle de développement. A la manière du forgeron, c’est en développant que l’on devient développeur et l’exercice de son cœur de métier lui permet de réfléchir à sa pratique de la programmation, le code devenant plus propre et efficace, et même beau, au passage.

Des logiciels de qualité

Partant de ce constat, l’utilisation des logiciels libres devient un atout considérable pour un service informatique en bibliothèque. Leur licence permet leur réutilisation, leur modification et offre au développeur la possibilité de les enrichir et les adapter en mettant ses compétences en application. La bibliothèque profite également du travail de la communauté de développeurs fournissant les logiciels, d’autant plus lorsque ces derniers sont spécialisés dans le métier. Leur nombre et leur diversité représente une manne considérable, souvent gratuite. A la BCU, nous n’hésitons pas à les tester et les déployer pour répondre à des besoins précis et ponctuels. Nous avons ainsi mis à disposition des chercheurs une galerie d’images numérisées (piwigo), pour qu’ils puissent les décrire en Dublin Core. Cette description sera réutilisable pour une bibliothèque numérique.
Bref, le tableau est presque idyllique mais à l’usage on rencontre quelques contraintes.

Une course à l’évolution

En premier lieu, intéressons-nous aux mises à jour accompagnant tout logiciel libre. Signe de bonne santé d’un projet, elles permettent de bénéficier des correctifs comblant les failles de sécurité inhérentes à tout logiciel complexe. Elles offrent également les toutes dernières innovations techniques et fonctionnelles du web. A priori, c’est donc un bénéfice de les installer et de faire évoluer le logiciel.
Mais ce processus a une contrepartie. Les temps de maintenance augmentent au fur et à mesure du nombre d’applications installées. Pour preuve, wordpress, utilisé pour l’alambic numérique, propose environ une mise à jour par semaine, que ce soit pour le corps du programme ou pour les extensions installées.
De manière générale les logiciels libres, au moins les plus actifs, souffrent d’une instabilité chronique (au sens d’évolution permanente). Prenons l’exemple de Drupal. Nous l’avons sorti en version 6, au moment même où paraissait la version 7. Dans un an et demi ou deux, quand la version 8 sera prête, la version 6 ne sera plus maintenue. Faut-il passer à la version 7 dès que possible ? Faut-il attendre la version 8 et refondre entièrement le site à ce moment là ? Si l’on veut respecter ces changements de version (et continuer à bénéficier du support de mise à jour), le remplacement du site impliquera de recommencer un cycle de développement (cahier des charges, acquisition de connaissances, formation des utilisateurs, etc.) peu de temps après le précédent.
Il faut toutefois pondérer cet inconvénient. Si le logiciel évolue, les services évoluent en parallèle. Dans deux ans, on peut imaginer que de nouveaux besoins seront apparus et que le remplacement de notre site deviendra évident, et pas seulement pour des raisons logicielles. En bibliothèque, l’avenir proche amènera sans doute à s’intéresser au web de données et au format RDF. On peut toutefois se demander si les efforts fournis aux étapes précédentes ont le temps de porter leurs fruits.

S’adapter au cycle de vie des logiciels apporte son lot de questions importantes : Comment gérer au mieux l’ensemble d’un grand nombre de logiciels installés en interne ? Comment ne pas se laisser déborder par les tâches de maintenance? Comment profiter des changements de version sans devoir tout recommencer à chaque fois ?
Nous n’avons pas les réponses dans l’immédiat, mais ces questions seront au cœur de nos travaux à venir…

 

Logiciels libres et bibliothèques est une association de plus en plus répandue. Leur utilisation amène pourtant des contraintes et influence l’organisation du travail. Voici un état des lieux sur leur pratique, avantages et inconvénients.