Lerm-IT

Blog traitant de technologies informatiques. Logiciel libre, AdminSys, DevOps et GNU/Linux !

19 Nov 2012

[GNU/Emacs] Le gestionnaire de paquet.

Introduction

Depuis sa version 24, GNU/Emacs propose par défaut un gestionnaire de paquet nommé à l’origine ELPA. Ce gestionnaire de paquet est compilé de base dans Emacs depuis la version 24 mais pour les utilisateurs de la version 23 le fichier package.el peut etre téléchargé ici : http://tromey.com/elpa/. Charge à vous de l’installer correctement !

Le gestionnaire de paquet d’Emacs permet d’installer, supprimer et mettre à jour l’ensemble des fonctionnalités externes à Emacs; que ce soit le mode de connexion aux serveurs Jabber ou un mode de développement particulié pour un language par exemple.

Configuration

Vous pouvez à l’aide de la commande “M-X package-list-packages” visualiser les paquets disponibles dans les dépots. Il se trouve que cette liste est bien vide par défaut (49 paquets à l'écriture de cet article). Ceci est dut au fait qu’il n’y a qu’un seul dépot configuré par défaut sur Emacs : http://elpa.gnu.org/. Ce dépot est le dépot officiel de GNU/Emacs qui necessite, entre autre, l’adoption de la licence GPL en version 2 ou 3.

Nous pouvons ajouter un ou plusieurs liens vers des dépôts de paquets Emacs en ajoutant des lignes à la configuration.

Il existe deux “grands” dépôts de paquet Emacs : marmalade et MELPA. Nous allons les ajouter à nos dépôts de base.

Éditons donc notre fichier emacs.el pour y ajouter les informations suivantes

(require 'package)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages") t)
(package-initialize)

Il vous faut ensuite recharger votre fichier emacs.el. Pour cela vous pouvez au choix, redémarrer Emacs ou exécuter la commande M-X load-file en lui spécifiant le chemin vers votre fichier emacs.el (surement ~/.emacs.el).

Utilisation

Maintenant que nous avons une liste de paquets disponibles digne de ce nom nous allons pouvoir nous pencher sur l’utilisation du gestionnaire de paquets d’Emacs.

Nous avons vu dans la partie sur l’installation une première commande : package-list-packages. Cette commande permet de lister les paquets disponibles sur nos différents dépôts. Voici un exemple d’utilisation.

M-x package-list-packages

abl-mode 0.9.0 available Python TDD minor mode
ac-ja 0.0.1 available auto-complete-mode source for Japanese
ac-nrepl 0.12 available auto-complete sources for Clojure using nrepl completions
ac-slime 0.2 available An auto-complete source using slime completions
ace-jump-mode 2.0.0.0 available a quick cursor location minor mode for emacs -*- coding: utf-8-unix -*-
ack 0.8 available Interface to ack, a source code search tool
ack-and-a-half 1.1.1 available Yet another front-end for ack
...

Si nous souhaitons recharger la liste des paquets disponibles il nous suffit de presser la touche ‘r’ (comme refresh).

Pour installer un paquet il nous suffit de positionner notre curseur sur celui-ci et d’appuyer sur la touche [Entrer]. Ainsi en me déplaçant sur le paquet org2blog et en pressant la touche [Entrer] un page descriptive du paquet va s’afficher.

Dans cette page vous pouvez maintenant vous déplacer sur le bouton “Install” et appuyer une nouvelle fois sur [Entrer] pour lancer l’installation.

Rappel : Pour changer de division d'écran utiliser C-x O.

L’installeur vous demandera de sauvegarder tous les fichiers non sauvegardés et vous ouvrira un nouveau buffer contenant les journaux d’installations. Voici un extrait de ceux de l’installation org2blog.

...
Leaving directory `/home/romain/.emacs.d/elpa/org2blog-0.5'

Compiling file /home/romain/.emacs.d/elpa/org2blog-0.5/metaweblog.el at Mon Nov 19 17:47:50 2012
Entering directory `/home/romain/.emacs.d/elpa/org2blog-0.5/'

In get-file-properties:
metaweblog.el:396:17:Warning: assignment to free variable `file-props'
metaweblog.el:399:5:Warning: reference to free variable `file-props'

Compiling file /home/romain/.emacs.d/elpa/org2blog-0.5/org2blog-autoloads.el at Mon Nov 19 17:47:50 2012
...

Comme nous pouvons le constater les paquets installés par package.el le sont dans le dossier ~/.emacs.d/elpa.

Dernier petit point que je n’ai pas encore pu tester. Il semblerait que l’utilisation de la touche U dans le buffer de la liste des paquets permet de ré-installer les paquets dans leurs dernières versions. Si vous pouvez me confirmer ou détailler ce point ce sera avec plaisir 😉 !

Conclusion

Avoir un gestionnaire de paquet unifié pour emacs est une grande chance pour les utilisateurs d’emacs. Ceci permet de savoir où trouver les paquets mais aussi de les installer facilement.

Par la suite quand vous souhaiterez configurer ces modules rien ne changera, votre fichier emacs.el n'étant pas altéré.