ack-grep para ack no ubuntu

19

Eu estava apenas imaginando, eu instalei recentemente o ack (ack-grep no ubuntu), e eu não consigo descobrir como apenas digitar ack para obter o ack-grep (por algum motivo o ack é usado por um tradutor kanji coisa).

Existe uma maneira melhor do que apenas aliasing a coisa no shell (não é global dessa forma, e não pode evocá-lo no vim, por exemplo).

Muito obrigado!

    
por FurtiveFelon 25.12.2009 / 06:16

8 respostas

16

Você vincula ou copia ack-grep a /usr/local/bin para que fique prioritário no PATH:

sudo ln -sf /usr/bin/ack-grep /usr/local/bin/ack

Ou, como davey sugeriu, livre-se de ack se você não precisar:

sudo apt-get remove ack

Outra solução envolveria usar dpkg-divert para informar dpkg que você deseja que todos os pacotes tenham seu /usr/bin/ack renomeado localmente e, em seguida, vincule ack-grep a ack no caminho.

    
por 25.12.2009 / 11:51
20

No Ubuntu / Debian você pode "desviar" ack-grep :

sudo dpkg-divert --local --divert /usr/bin/ack --rename --add /usr/bin/ack-grep
    
por 08.12.2011 / 12:49
8

Use o sistema Debian Alternativas.

$ update-alternatives --install /usr/bin/ack ack /usr/bin/ack-grep 100 \
--slave /usr/share/man/man1/ack.1p.gz ack.1p.gz /usr/share/man/man1/ack-grep.1p.gz

O comando é difícil de acertar, mas a solução é superior ao dpkg-divert pelos seguintes motivos:

  1. Não força ou anula a instalação de pacotes
  2. Permite definir um link escravo para a página do manual

Mais informações sobre as alternativas do Debian aqui: link

Instalar a alternativa permite chamar o ack-grep como ack e ler a página de manual usando man ack .

    
por 20.07.2013 / 01:40
7

Menos intrusivo:

alias ack=ack-grep

    
por 25.11.2010 / 06:02
7

A melhor coisa a fazer é instalar o ack via cpan. Ele será instalado em / usr / local / bin, que tem precedência sobre / usr / bin. Basta executar:

sudo cpan App::Ack

ou se você não tiver o cliente cpan:

curl -L cpanmin.us | perl - --sudo App::Ack
    
por 31.10.2010 / 06:43
2

Assumindo que o tradutor kanji já não é / usr / bin / ack e que sua localização é posterior ao seu caminho que / usr / bin, provavelmente você pode fazer isso:

sudo ln -sib /usr/bin/ack-grep /usr/bin/ack

Isso solicitará que você confirme a operação se o destino existir e criará um backup se você selecionar sim.

    
por 25.12.2009 / 06:30
0

eu iria com a opção de link simbólico, pois isso salvaria o perigo de transferir esse alias para outra máquina se você copiasse o arquivo bash.

vá com isso, funciona bem na minha compilação do Ubuntu 12.04

sudo apt-get install ack-grep
sudo ln -sf /usr/bin/ack-grep /usr/local/bin/ack
    
por 24.01.2013 / 06:10
0

Minha solução não é tão limpa porque escreve em /bin/ , mas desde que /usr/bin/ack seja um binário e não um link simbólico, foi mais fácil para mim corrigir isso.

sudo update-alternatives --install /bin/ack ack /usr/bin/ack 100
sudo update-alternatives --install /bin/ack ack /usr/bin/ack-grep 102

Para escolher qual deles usar

sudo update-alternatives --config ack
    
por 02.04.2013 / 15:42