Ich versuche, das Paket exuberant-ctags unter Linux Mint zu installieren. Dazu habe ich Folgendes ausgeführt:

$ 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 

Die letzte Zeile legt nahe, dass ctags-exuberant anstelle von ctags.

Wenn ich jedoch bash neu starte und ctags -e ausführe, wird der Fehler angezeigt:

ctags: invalid option -- "e" 

Während die Option -e in exuberant-ctags verfügbar ist.

Warum hat „t exuberant-ctags ctags ersetzt?

$ command -v ctags /usr/local/bin/ctags 

Dies ist nicht was ich will

$ 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 

Kommentare

  • Bitte aktualisieren Sie die Frage mit der Ausgabe von command -v ctags und ls -l /usr/bin/ctags und ls -l /etc/alternatives/ctags und ctags --version
  • @StephenHarris erledigt.

Antwort

Möglicherweise hat Ihre Installation gerade exuberant-ctags als Option für alte hinzugefügt rnatives.

/usr/bin/update-alternatives --display ctags 

Wenn es auf die falsche Version zeigt, können Sie die Alternative manuell festlegen.

sudo /usr/bin/update-alternatives --set ctags /usr/bin/ctags-exuberant 

In Ihrem Fall haben Sie jedoch (basierend auf Ihrem Fragen-Update) eine nicht gepackte Version von ctags in Ihrem PFAD (/usr/local/bin/ctags) vor der gepackten Version ctags-exuberant und alternatives, daher wird dies zuerst aufgerufen.

Sie benötigen entweder Um diese Version zu entfernen, ändern Sie Ihre $PATH oder fügen Sie einen Symlink zu /usr/bin/ctags früher in Ihrem Pfad hinzu (möglicherweise $HOME/bin), damit Sie „die Version ausführen, die Sie ausführen möchten.

Kommentare

  • Danke. Es zeigt jedoch auf die richtige Version. link currently points to /usr/bin/ctags-exuberant.
  • Wenn ich /usr/bin/ctags-exuberant -e ausführe, funktioniert es. Als schnellen Hack kann ich einen Alias wie folgt erstellen: alias ctags='/usr/bin/ctags-exuberant'. Bearbeiten: Dies funktioniert nicht, da Emacs anscheinend eine andere Shell verwendet.
  • Danke. Das Entfernen dieser lokalen ctags-Version hat den Trick getan. Vielen Dank für Ihre Hilfe! Ich bin froh, den Befehl command gelernt zu haben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.