Jeg prøver å installere exuberant-ctags -pakken på Linux Mint. For å gjøre det løp jeg:

$ 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 siste linjen antyder at ctags-exuberant brukes i stedet for ctags.

Når jeg derimot starter bash og kjører ctags -e får jeg feilen:

ctags: invalid option -- "e" 

Mens alternativet -e er tilgjengelig i exuberant-ctags.

Hvorfor hasn «t exuberant-ctags erstattet ctags?

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

Dette er ikke hva jeg vil

$ 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

  • Oppdater spørsmålet med utdata fra command -v ctags og ls -l /usr/bin/ctags og ls -l /etc/alternatives/ctags og ctags --version
  • @StephenHarris ferdig.

Svar

Det er mulig at installasjonen din nettopp har lagt til exuberant-ctags som et alternativ for alte rnativer.

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

Hvis den peker på feil versjon, kan du manuelt stille inn alternativet

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

I ditt tilfelle har du imidlertid (basert på spørsmålsoppdateringen) en ikke-pakket versjon av ctags i PATH (/usr/local/bin/ctags) før den pakkede ctags-exuberant og alternatives versjonen, så dette kalles først.

Du trenger enten for å fjerne den versjonen, endre $PATH eller legg til en symlink til /usr/bin/ctags tidligere i din vei (kanskje $HOME/bin) slik at du kjører versjonen du vil kjøre.

Kommentarer

  • Takk. Det peker på riktig versjon skjønt. link currently points to /usr/bin/ctags-exuberant.
  • Når jeg kjører /usr/bin/ctags-exuberant -e fungerer det. Som et raskt hack kan jeg opprette et alias slik: alias ctags='/usr/bin/ctags-exuberant'. Rediger: dette fungerer ikke siden emacs tilsynelatende bruker et annet skall.
  • Takk. Å fjerne denne lokale ctags-versjonen gjorde susen. Tusen takk for hjelpen! Glad for å ha lært kommandoen command.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *