Conflitos entre / usr / bin e / usr / local / bin

6

Eu tenho um aplicativo ( Exuberant Ctags) instalado em / usr / bin.

Eu também compilei Emacs da fonte, que instala sua própria versão de ctags em / usr / local / bin .

A execução de ctags no prompt de comando executa a versão do Emacs em / usr / local / bin .

Existe uma maneira de forçá-lo a usar o aplicativo de / usr / bin ?

Eu posso ir em / usr / local / bin e deletar ou renomear a versão indesejada das ctags, mas estou me perguntando se existe outra maneira.

    
por cschol 11.08.2009 / 05:33

2 respostas

10

Edite seu PATH, portanto, / usr / bin aparece antes de / usr / local / bin. Você descobre seu caminho atual com echo $PATH . Para mudar isso depende do seu sistema, geralmente ~/.bashrc . Existem perguntas aqui e em ServerFault lidando com onde encontrar variáveis de ambiente e quais usar, ~/.bashrc ou ~/.bash_profile : - )

Se você tiver um software instalado em /usr/local/bin/ que "substitui" o que o sistema colocou em /usr/bin , você pode criar um alias para especificar qual executável será executado por programa. Por exemplo, com este programa de ctags, coloque isso em seu ~/.bashrc .

alias ctags="/usr/bin/ctags"

(embora um dos links SF seja sobre o cygwin especificamente, ele é aplicável em outras plataformas também)

    
por 11.08.2009 / 05:39
0

Se você não precisa de uma instalação ctags em /usr/local , basta excluí-la. (Essa é a melhor maneira possível, porque isso vai evitar que você tenha que contornar o problema que você está tendo agora, nunca mais.)

Ou evite que o Emacs instale-o em primeiro lugar e / ou faça-o verificar por um já existente antes de instalar (como fazer isso depende de como você está instalando).

Finalmente, você pode dizer ao Emacs o caminho para ctags conforme EmacsWiki: Build Tags , colocando

 (setq path-to-ctags "<path_to_ctags_executable>")

no seu arquivo init.

    
por 26.10.2017 / 08:50

Tags