Próbuję zainstalować pakiet exuberant-ctags w Linux Mint. Aby to zrobić, uruchomiłem:

$ 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 

Ostatnia linia sugeruje, że ctags-exuberant jest używane zamiast ctags.

Kiedy jednak restartuję basha i uruchamiam ctags -e pojawia się błąd:

ctags: invalid option -- "e" 

Chociaż opcja -e jest dostępna w exuberant-ctags.

Dlaczego hasn „t exuberant-ctags zastąpił ctags?

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

To jest nie to, czego chcę

$ 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 

Komentarze

  • Zaktualizuj pytanie, podając wyniki command -v ctags i ls -l /usr/bin/ctags i ls -l /etc/alternatives/ctags i ctags --version
  • @StephenHarris gotowe.

Odpowiedź

Możliwe, że Twoja instalacja właśnie dodała exuberant-ctags jako opcję dla alte rnatives.

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

Jeśli wskazuje na niewłaściwą wersję, możesz ręcznie ustawić alternatywę

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

Jednak w Twoim przypadku (na podstawie aktualizacji pytania) masz nieopakowaną wersję ctags w swojej PATH (/usr/local/bin/ctags) przed zapakowaną wersją ctags-exuberant i alternatives, więc jest ona wywoływana jako pierwsza.

Albo potrzebujesz aby usunąć tę wersję, zmodyfikuj $PATH lub dodaj link symboliczny do /usr/bin/ctags wcześniej w ścieżce (być może $HOME/bin), aby „uruchomić wersję, którą chcesz uruchomić.

Komentarze

  • Dzięki. Wskazuje jednak na właściwą wersję. link currently points to /usr/bin/ctags-exuberant.
  • Kiedy uruchamiam /usr/bin/ctags-exuberant -e, to działa. Mogę szybko utworzyć alias taki: alias ctags='/usr/bin/ctags-exuberant'. Edycja: to nie działa, ponieważ emacs najwyraźniej używa innej powłoki.
  • Dzięki. Usunięcie tej lokalnej wersji ctags załatwiło sprawę. Bardzo ci dziękuje za pomoc! Cieszę się, że nauczyłem się polecenia command.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *