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