Jag försöker installera paketet exuberant-ctags på Linux Mint. För att göra det sprang jag:

$ 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 

Den sista raden föreslår att ctags-exuberant används istället för ctags.

När jag dock startar om bash och kör ctags -e får jag felet:

ctags: invalid option -- "e" 

Medan alternativet -e finns i exuberant-ctags.

Varför hasn ”t exuberant-ctags ersatt ctags?

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

Detta är inte vad jag vill

$ 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 

Kommentarer

  • Uppdatera frågan med utdata från command -v ctags och ls -l /usr/bin/ctags och ls -l /etc/alternatives/ctags och ctags --version
  • @StephenHarris klar.

Svar

Det är möjligt att din installation precis lagt till exuberant-ctags som ett alternativ för alte rnativ.

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

Om den pekar på fel version kan du manuellt ställa in alternativet

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

I ditt fall har du emellertid (baserat på din frågauppdatering) en icke-paketerad version av ctags i din PATH (/usr/local/bin/ctags) före den packade ctags-exuberant och alternatives versionen, så detta kallas först.

Du behöver antingen om du vill ta bort den versionen ändrar du $PATH eller lägger till en symlänk till /usr/bin/ctags tidigare på din väg (kanske $HOME/bin) så att du kör den version du vill köra.

Kommentarer

  • Tack. Det pekar dock på rätt version. link currently points to /usr/bin/ctags-exuberant.
  • När jag kör /usr/bin/ctags-exuberant -e fungerar det. Som ett snabbt hack kan jag skapa ett alias så: alias ctags='/usr/bin/ctags-exuberant'. Redigera: detta fungerar inte eftersom emacs tydligen använder ett annat skal.
  • Tack. Att ta bort den här lokala ctags-versionen gjorde tricket. Tack så mycket för din hjälp! Glad att ha lärt mig kommandot command.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *