Skip to content
Snippets Groups Projects
Select Git revision
  • 59568da31c6009f5493262e824d180be0f584c75
  • master default
  • irony
3 results

Installation.org

Blame
  • Installation.org 10.71 KiB

    Installation

    Ce document se place dans le cas d’un système GNU/Linux pour une distribution Debian (ou basée sur Debian comme Ubuntu par exemple) et présuppose que l’utilisateur peut installer les logiciels par le biais de la commande apt et dispose donc des privilèges root.

    Dans le cas contraire, il reste possible d’utiliser cette configuration, mais l’utilisateur devra, soit utiliser les commandes ad hoc (dans le cas d’une autre distribution) soit les installer en recompilant éventuellement les logiciels.

    1 Installation d’Emacs

    Pour que cette configuration fonctionne de manière optimale il faut que la version d’Emacs installée soit au moins la 26.0.50.

    Pour commencer il faut vérifier si le système fourni de la version minimum nécessaire. Dans le cas contraire, il faut enrichir la base des paquets ou l’installer manuellement.

    1.1 Version proposée par la distribution

    Pour connaître la version du système on utilise la commande

    lsb_release -a
    

    Jusqu’aux versions

    • bionic (18.x.x) d’Ubuntu,
    • stretch (9.x.x) de Debian,

    incluses, la version d’Emacs n’est pas suffisante.

    Si Emacs n’est pas installé et si les versions d’Ubuntu ou Debian sont suffisamment récentes, il suffit d’exécuter dans ce cas :

    sudo apt update
    sudo apt -y install emacs
    

    Si Emacs était installé, on peut tout de même s’assurer de sa version en utilisant la commande.

    emacs --version
    

    Si la version est suffisante (au delà de 26.0.50), on peut ignorer le paragraphe suivant.

    1.2 Préparation de l’installation

    Pour installer Emacs manuellement (ce qui n’est pas recommandé), on peut suivre les instructions données ici.

    On se concentre ici sur une installation de paquets précompilés.

    On doit ajouter des dépôts de paquets pour l’installation, on s’assure donc que les outils de gestion de dépôts extérieurs sont disponibles.

    sudo apt -y install software-properties-common
    

    On ajoute le dépôt en faisant.

    sudo add-apt-repository -y ppa:kelleyk/emacs
    

    Puis on installe Emacs.

    sudo apt -y install emacs26
    

    Pour terminer on s’assure que la version par défaut d’Emacs sera bien la 26. Pour cela, on exécute

    sudo update-alternatives --set emacs /usr/bin/emacs26
    

    On peut vérifier à nouveau que tout s’est bien passé en exécutant

    emacs --version
    

    1.3 Nettoyage du système.

    Si une version d’Emacs était déjà installée, il est probable que des paquets Emacs l’aient été aussi. Pour que cette configuration fonctionne de manière optimale, il convient de les supprimer.

    sudo apt remove -y --purge '^elpa*'
    

    2 Récupérer la configuration

    2.1 Sauvegarde de l’ancienne configuration

    Si Emacs avait déjà été utilisé sur le compte de l’utilisateur, il a généré automatiquement des fichiers de configuration. Il faut donc les supprimer (ou les sauvegarder) avant d’installer cette configuration.

    Ce sont des fichiers cachés que nous allons placer dans un répertoire pour éventuellement les réutiliser ultérieurement si cette configuration ne convient pas.

    mkdir -p ~/sauvegarde.emacs-`date +%Y%m%d`
    mv ~/.emacs* ~/sauvegarde.emacs-`date +%Y%m%d`
    

    2.2 Téléchargement de la configuration

    Pour obtenir la configuration, il est préférable d’utiliser git, pour l’installer il suffit d’exécuter la commande suivante.

    sudo apt -y install git
    

    On peut maintenant récupérer la configuration, soit en si on dispose d’un compte sur gitlab.delpinux.fr et qu’on y a déposé une clé ssh pour s’authentifier :

    git clone git@gitlab.delpinux.fr:delpino/dot-emacs.git ~/.emacs.d
    

    ou alors de manière anonyme

    git clone https://gitlab.delpinux.fr/delpino/dot-emacs.git ~/.emacs.d
    

    Il est maintenant possible de lancer Emacs. Comme on l’a dit, la configuration initiale va prendre un peu de temps. Et Emacs lui même va installer des paquets (Debian ou Ubuntu) pour satisfaire certaines dépendances.

    Durant le processus d’installation des paquets, Emacs posera quelques questions simples (et éventuellement entrer son mot de passe pour les interactions sudo). En cas de problème, relancer Emacs et répondre à nouveau aux questions.

    Une fois le premier lancement terminé, on fermera Emacs, puis on pourra éventuellement le relancer.

    Pour que toute la configuration soit totalement opérationnelle, il faut cependant installer quelques outils supplémentaires.

    3 Python

    Pour utiliser correctement Python avec cette configuration, il faut installer Python (évidemment) et virtualenv qui va permettre d’exécuter les scripts directement dans Emacs et bénéficier de l’analyse syntaxique à la volée, entre autres.

    sudo apt -y install python virtualenv python3-jedi python-jedi
    

    Il reste une dernière étape à accomplir, à savoir configurer le serveur jedi dans Emacs.

    Pour cela, on lance Emacs puis la commande jedi:install-server, à savoir dans Emacs taper

    M-x jedi:install-server
    

    M-x signifie qu’on appuie simultanément sur les touches ALT et x, on tape ensuite jedi:install-server à l’invite du minibuffer (tout en bas).

    Ensuite à la prochaine édition d’un fichier Python, Emacs terminera la configuration en demandant (dans le minibuffer)

    Please answer y or n.  Automatically install the RPC dependencies
    from PyPI (needed for completion, autoformatting and documentation) ?
    (y or n)
    

    Il convient évidemment de répondre y à cette question.

    4 Global

    On recommande aussi d’installer les ggtags.

    sudo apt -y install global
    

    5 C++

    Enfin, pour configurer correctement l’environnement de développement pour le C++, il faut effectuer quelques installations et configurations supplémentaires.

    On commence donc par installer clang-9. Il faut s’assurer que le dépôt contenant fait partie de la liste des dépôts. Pour les systèmes Ubuntu, exécuter

    sudo apt-add-repository -u "deb http://archive.ubuntu.com/ubuntu/ $(lsb_release -cs)-backports main restricted universe multiverse"
    

    Pour les systèmes Debian

    sudo apt-add-repository -u  "deb http://deb.debian.org/debian $(lsb_release -cs)-backports main contrib non-free"
    

    On peut alors lancer l’installation proprement dite.

    sudo apt -y install clang-9 libclang-9-dev clang-format-9
    

    On va maintenant aider Emacs à trouver ces bonnes versions de compilateur. Pour cela, on va exécuter les commandes suivantes.

    mkdir -p ~/bin
    ln -s /usr/bin/clang++-9 ~/bin/clang++
    ln -s /usr/bin/clang-9 ~/bin/clang
    ln -s /usr/bin/clang-format-9 ~/bin/clang-format
    

    Il faut alors ajouter

    export PATH=~/bin:$PATH
    

    à son ~~/.bashrc~ si ce n’est pas déjà fait. Si on utilise un autre shell, on modifiera la variable PATH de la manière adéquate pour que ~/bin apparaisse au début.

    À ce moment, le plus simple est de se déconnecter pour être sûr que cette modification est bien prise en compte.

    Il reste maintenant à compiler le serveur irony pour terminer l’installation. Pour cela, on doit installer CMake.

    sudo apt -y install cmake
    

    On relance ensuite Emacs, et on exécute la commande

    M-x irony-install-server
    

    Emacs propose alors une commande de compilation dans le minibuffer. Il suffit de presser RET. La compilation devrait se dérouler sans problème.

    6 Chargement accéléré

    Après s’être assuré assuré que la configuration fonctionne correctement, on peut éventuellement améliorer le confort d’utilisation. En effet, comme cette configuration est un peu lourde, le temps de lancement d’Emacs peut être un peu long.

    Le temps de charment peut être fortement réduit en lançant Emacs en mode client (plusieurs client s’attachent à un même serveur). Pour bénéficier de cette optimisation ajouter les alias suivants à votre shell

    alias emacs="emacsclient -q -a '' -c"
    alias kill-emacs="emacsclient -q -e '(let ((last-nonmenu-event nil))(save-buffers-kill-emacs))'"
    

    La première ligne indique de lancer Emacs en mode client si possible. Si il n’y a pas de serveur, il est créé en toute transparence.

    7 Mise à jour

    Pour mettre à jour la configuration, ne suffit pas (en général) de faire un simple git pull. La raison est que la base des paquets utilisée évolue et certains doivent éventuellement être mis à jour.

    emacs -e " (progn\
      (try-and-refresh 'auto-package-update)\
      (auto-package-update-now)\
      (message '\"Calling 'git pull...'\")\
      (when (shell-command \"cd ~/.emacs.d; git pull\")\
        (save-buffers-kill-emacs)))"
    

    Si tout se déroule correctement, tous les clients Emacs ouverts seront fermés ainsi que le serveur. Le lancement suivant d’Emacs terminera la mise à jour en installant éventuellement de nouveaux paquets. Si des processus sont actif Emacs demandera confirmation avant sa fermeture.