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
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
.
command -v ctags
ochls -l /usr/bin/ctags
ochls -l /etc/alternatives/ctags
ochctags --version