Várias versões do mesmo pacote podem coexistir no mesmo sistema?

2

Para instalar o tmux 2.1, eu precisei instalar o libtinfo5 versão 6, eu fiz isso baixando um arquivo .deb contendo libtinfo5 e instalando diretamente com o comando:

sudo dpkg -i libtinfo5_6.0+20160213-1ubuntu1_amd64.deb

Esta dependência do tmux 2.1 e tmux está instalada ok.
Agora eu tentei instalar o vnstat usando

sudo apt-get install vnstat 
O erro

apt-get foi encerrado com o seguinte

$ sudo apt-get install vnstat
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 libncurses5 : Depends: libtinfo5 (= 5.9+20150516-2ubuntu1) but 6.0+20160213-1ubuntu1 is to be installed
 libncursesw5 : Depends: libtinfo5 (= 5.9+20150516-2ubuntu1) but 6.0+20160213-1ubuntu1 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Meu entendimento sempre foi que o sistema de gerenciamento de pacotes do Ubuntu era capaz de instalar e gerenciar múltiplas versões do mesmo pacote, para situações exatamente como esta. Por outras palavras, o apt / dpkg reconhece

  • tmux precisa de libtinfo5 - version 6 para funcionar
  • vnstat precisa de libtinfo5 - version 5 para funcionar

Então o apt / dpkg diz ok, eu instalarei as duas versões .
Eu posso ver como certos programas como um sistema binário, por exemplo bash ou ls só podem ser instalados uma vez, pois a maioria das invocações simplesmente diz bash -c "<command>" e não bashv.3.2 -c "<command>" .
Então, minha pergunta é que o gerenciador de pacotes pode instalar e gerenciar múltiplas dependências ?, ou isso simplesmente não é possível porque, como no exemplo bash acima, a maioria dos programas faz uma chamada para a dependência pelo nome das dependências sem especificar a versão. Nesse caso, o problema está além do controle do gerenciador de pacotes (ou seja, é mais um problema de compilação / configuração / organização de programação) e o gerenciador de pacotes desiste nesse ponto?

    
por the_velour_fog 18.04.2016 / 01:34

2 respostas

1

Não, não é possível ter duas versões do mesmo pacote , porque haverá arquivos conflitantes. Se uma biblioteca for capaz de ser instalada em duas versões diferentes ao mesmo tempo é uma questão diferente. Se você for corajoso, poderá obter o código-fonte de uma versão e ver se pode instalá-lo em um diretório diferente. Isso pode muito bem atrapalhar o seu sistema de maneiras desagradáveis. Também pode simplesmente não funcionar. O Dpkg não ficará satisfeito, então você terá que obter a fonte para um dos programas e compilá-lo também. Mas lembre-se de que, assim que você começar a compilar os programas, você poderá causar todos os tipos de problemas.

    
por Stephen Angelico 18.04.2016 / 01:50
1

Não, você não pode ter versões diferentes do mesmo pacote instaladas ao mesmo tempo. Geralmente dependências são expressas como pelo menos versão X. Para pacotes que são todos construídos a partir da mesma fonte, a dependência é freqüentemente exata. Isto é o que você tem. libncurses5 e libtinfo5 são ambos construídos a partir do pacote fonte ncurses. Se você quer atualizar um dos pacotes construídos a partir desta fonte, você deve atualizar todos eles, então você simplesmente precisa obter e instalar a mesma versão dos outros pacotes construídos a partir desta fonte, então eles estão todos na mesma versão.

    
por psusi 18.04.2016 / 04:12