Jessaye dinstaller le paquet exuberant-ctags
sur Linux Mint. Pour ce faire, jai couru:
$ sudo apt-get install exuberant-ctags Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: exuberant-ctags 0 upgraded, 1 newly installed, 0 to remove and 81 not upgraded. Need to get 0 B/120 kB of archives. After this operation, 334 kB of additional disk space will be used. Selecting previously unselected package exuberant-ctags. (Reading database ... 339129 files and directories currently installed.) Preparing to unpack .../exuberant-ctags_1%3a5.9~svn20110310-7ubuntu0.1_amd64.deb ... Unpacking exuberant-ctags (1:5.9~svn20110310-7ubuntu0.1) ... Processing triggers for man-db (2.6.7.1-1ubuntu1) ... Setting up exuberant-ctags (1:5.9~svn20110310-7ubuntu0.1) ... update-alternatives: using /usr/bin/ctags-exuberant to provide /usr/bin/ctags (ctags) in auto mode
La dernière ligne suggère que ctags-exuberant
est utilisé au lieu de ctags
.
Cependant, lorsque je redémarre bash et lance ctags -e
, jobtiens lerreur:
ctags: invalid option -- "e"
Alors que loption -e
est disponible dans exuberant-ctags
.
Pourquoi hasn « t exuberant-ctags
remplacé ctags
?
$ command -v ctags /usr/local/bin/ctags
Cest pas ce que je veux
$ ls -l /usr/bin/ctags lrwxrwxrwx 1 root root 23 Dec 28 2015 /usr/bin/ctags -> /etc/alternatives/ctags
$ ls -l /etc/alternatives/ctags lrwxrwxrwx 1 root root 24 Aug 9 21:22 /etc/alternatives/ctags -> /usr/bin/ctags-exuberant
$ ctags --version ctags (GNU Emacs 24.5) Copyright (C) 2015 Free Software Foundation, Inc. This program is distributed under the terms in ETAGS.README
Commentaires
Réponse
Il est possible que votre installation ait simplement ajouté exuberant-ctags
comme option pour alte rnatives.
/usr/bin/update-alternatives --display ctags
Sil pointe vers la mauvaise version, vous pouvez définir manuellement lalternative
sudo /usr/bin/update-alternatives --set ctags /usr/bin/ctags-exuberant
Dans votre cas, cependant (en fonction de la mise à jour de votre question), vous avez une version non packagée de ctags
dans votre PATH (/usr/local/bin/ctags
) avant la version packagée ctags-exuberant
et alternatives
, donc elle est appelée en premier.
Vous avez besoin soit pour supprimer cette version, modifiez votre $PATH
ou ajoutez un lien symbolique vers /usr/bin/ctags
plus tôt dans votre chemin (peut-être $HOME/bin
) afin que vous « exécutiez la version que vous souhaitez exécuter.
Commentaires
- Merci. Il indique cependant la bonne version.
link currently points to /usr/bin/ctags-exuberant
. - Quand je lance
/usr/bin/ctags-exuberant -e
cela fonctionne. Comme un hack rapide, je peux créer un alias comme ceci:alias ctags='/usr/bin/ctags-exuberant'
. Edit: cela ne fonctionne pas car emacs utilise apparemment un autre shell. - Merci. La suppression de cette version locale de ctags a fait laffaire. Merci beaucoup pour votre aide! Heureux davoir appris la commande
command
.
command -v ctags
etls -l /usr/bin/ctags
etls -l /etc/alternatives/ctags
etctags --version