Atualiza um pacote desviado, erro dpkg

4

Instalei ack (substituto do grep). Nos sistemas baseados no debian, como o nome do pacote ack já existia (algo completamente diferente), o pacote é chamado de "ack-grep".

As instruções de instalação mencionam uma maneira de permitir que o usuário use o comando ack como se fosse ack-grep :

  

Em distros derivadas do Debian, o ack é empacotado como "ack-grep" porque   "ack" já existia. Se você simplesmente instalar via:

$ sudo apt-get install ack-grep 
     

seu ack será chamado de "ack-grep", que é 167% mais caracteres para   tipo por invocação. Isso é trágico para seus dedos pobres.

     

Para criar um desvio local, renomeando ack-grep para ack, instale primeiro   o pacote ack-grep como mostrado acima. Então, corra:

$ sudo dpkg-divert --local --divert /usr/bin/ack --rename --add /usr/bin/ack-grep

Até agora, tudo bem. Agora, quando tento atualizar meu sistema, apt-get upgrade reclama por causa do desvio:

Unpacking ack-grep (2.12-2) over (2.12-1) ...
dpkg: error processing archive /var/cache/apt/archives/ack-grep_2.12-2_all.deb (--unpack):
 trying to overwrite '/usr/bin/ack', which is the diverted version of '/usr/bin/ack-grep'

É bom que o dpkg tenha encontrado o desvio e tentado sobrescrever /usr/bin/ack , mas por que ele não sucede?

Eu tentei refazer a conversão de acordo com as instruções:

$ sudo dpkg-divert --local --divert /usr/bin/ack --rename --add /usr/bin/ack-grep 
Leaving 'local diversion of /usr/bin/ack-grep to /usr/bin/ack'

, mas ainda sobre apt-get upgrade , dpkg reclama.

Isso é normal? O que devo fazer para atualizar o desvio? Existe uma maneira de automatizá-lo ou fazê-lo funcionar da próxima vez que eu apt-get upgrade ?

    
por Gauthier 17.12.2014 / 22:11

1 resposta

5

Eu encontrei uma solução para consertar, removendo o desvio primeiro:

  

dpkg-desvio - pacote ack-grep - local --remove --rename --divert /usr/bin/ack/usr/bin/ack-grp

O upgrade do apt-get funciona bem depois disso.

    
por fest 28.02.2015 / 15:08