Sto cercando di installare il pacchetto exuberant-ctags su Linux Mint. Per farlo ho eseguito:

$ 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 

Lultima riga suggerisce che ctags-exuberant viene utilizzato al posto di ctags.

Tuttavia, quando riavvio bash ed eseguo ctags -e ricevo lerrore:

ctags: invalid option -- "e" 

Mentre lopzione -e è disponibile in exuberant-ctags.

Perché non ha “t exuberant-ctags sostituito ctags?

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

Questo è non è quello che voglio

$ 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 

Commenti

  • Aggiorna la domanda con loutput di command -v ctags e ls -l /usr/bin/ctags e ls -l /etc/alternatives/ctags e ctags --version
  • @StephenHarris done.

Risposta

È possibile che la tua installazione abbia appena aggiunto exuberant-ctags come opzione per alte rnatives.

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

Se punta alla versione sbagliata, puoi impostare manualmente lalternativa

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

Nel tuo caso, tuttavia (in base allaggiornamento della tua domanda) hai una versione non confezionata di ctags nel tuo PERCORSO (/usr/local/bin/ctags) prima della versione pacchettizzata ctags-exuberant e alternatives, quindi questa viene chiamata per prima.

per rimuovere quella versione, modifica il tuo $PATH o aggiungi un collegamento simbolico a /usr/bin/ctags allinizio del percorso (forse $HOME/bin) in modo da “eseguire la versione che si desidera eseguire.

Commenti

  • Grazie. Tuttavia punta alla versione corretta. link currently points to /usr/bin/ctags-exuberant.
  • Quando eseguo /usr/bin/ctags-exuberant -e funziona. Come trucco rapido posso creare un alias in questo modo: alias ctags='/usr/bin/ctags-exuberant'. Modifica: questo non funziona poiché emacs apparentemente usa unaltra shell.
  • Grazie. La rimozione di questa versione di ctags locale ha funzionato. Grazie mille per il tuo aiuto! Sono contento di aver imparato il comando command.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *