Como o APT lida com diferentes programas com o mesmo nome?

5

Eu decidi finalmente aprender o vi e como eu estava fazendo, percebi que o vi não estava se comportando como eu esperava. Eu aprendi com outro post que isso era porque, no Ubuntu, o vim-tiny é instalado por padrão.

Depois de saber que escolhi instalar a versão completa do vim usando o seguinte comando:

sudo apt-get install vim

Depois disso, fiquei curioso sobre várias coisas:

  1. Notei que os comandos vi e vim agora estão associados à versão completa do vim e não ao vim-tiny. Como isso acontece? (ou seja, como funciona o look-up do nome?)
  2. Como executo explicitamente o vim-tiny ou o full vim?
  3. Como o Linux / Ubuntu / apt gerencia bibliotecas e executáveis com conflitos de nome? Como sobre diferentes versões?

Estou trabalhando no Ubuntu Server 12.04 LTS.

    
por AlfaZulu 29.03.2013 / 17:56

1 resposta

7

Em derivadas do Debian, ele é tratado através do sistema de alternativas:

$ ls -l /usr/bin/vim
lrwxrwxrwx 1 root root 21 Jun 11  2010 /usr/bin/vim -> /etc/alternatives/vim
$ ls -l /etc/alternatives/vim
lrwxrwxrwx 1 root root 18 Jun 11  2010 /etc/alternatives/vim -> /usr/bin/vim.gnome

O script de instalação do pacote (o que é executado quando o dpkg diz "configurando o pacote X") disse ao sistema alternativo sobre uma nova alternativa para o vim. A nova alternativa tinha uma prioridade maior, por isso foi escolhida.

Você pode executá-los diretamente como vim.tiny , vim.full , vim.gnome , etc.

Você pode substituir o padrão usando o comando update-alternatives .

(Na verdade, acho que o vim.tiny funciona um pouco como um caso especial, já que não é realmente destinado a ser usado, exceto quando o espaço é um enorme prêmio. Pelo menos, ele não aparece como uma alternativa aqui.) / p>     

por 29.03.2013 / 18:07