O Apt não quer instalar uma versão antiga do pacote

5

Estou construindo um pacote debian a partir do código fonte. O pacote tem, entre outros, a seguinte dependência (parte do debian / control):

libswarm-dev (>= 0.6.1.0), libswarm-dev (<< 0.7),

Esse pacote e o projeto que estou tentando construir estão relacionados à plataforma Yandex.Cocaine e à empresa Reverbrain, que não são bem conhecidas, mas suspeito que meu problema seja mais geral e não esteja relacionado ao pacote específico. Existem muitas versões adequadas no repositório conectado:

vagrant@worker-2:~/cocaine/cocaine-plugins$ apt-cache policy libswarm-dev
libswarm-dev:
  Installed: (none)
  Candidate: 0.8.1.0
  Version table:
     0.8.1.0 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.8.0.0 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.7.3.0 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.7.2.0 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.7.1.0 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.7.0.11 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.7.0.10 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.7.0.9 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.7.0.8 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.7.0.7 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.7.0.6 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.7.0.5 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.7.0.4 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.7.0.3 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.7.0.2 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.7.0.1 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.6.5.1 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.6.5.0 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.6.3.9 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.6.3.8 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.6.3.7 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.6.3.6 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.6.3.5 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.6.3.4 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.6.3.3 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.6.3.2 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.6.3.1 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     0.6.3.0 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
vagrant@worker-2:~/cocaine/cocaine-plugins$ 

No entanto, por alguma razão, o apt-get não quer instalá-los. Em vez disso, o apt insiste na versão mais recente:

vagrant@worker-2:~/cocaine/cocaine-plugins$ sudo apt-get install libswarm-dev=0.6.5.1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libswarm-dev : Depends: libswarm2 (= 0.6.5.1) but 0.8.1.0 is to be installed
                Depends: libswarm2-urlfetcher (= 0.6.5.1) but 0.8.1.0 is to be installed
                Depends: libswarm2-xml (= 0.6.5.1) but 0.8.1.0 is to be installed
E: Unable to correct problems, you have held broken packages.

apt-get install -f também não ajuda:

vagrant@worker-2:~/cocaine/cocaine-plugins$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 41 not upgraded.

Todas as dependências do pacote libswarm-dev têm as versões necessárias:

vagrant@worker-2:~$ apt-cache policy libswarm2
libswarm2:
  Installed: (none)
  Candidate: 0.8.1.0
  Version table:
     0.8.1.0 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     ...
     0.6.5.1 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     ...
vagrant@worker-2:~$ apt-cache policy libswarm2-urlfetcher
libswarm2-urlfetcher:
  Installed: (none)
  Candidate: 0.8.1.0
  Version table:
     0.8.1.0 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     ...
     0.6.5.1 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     ...
vagrant@worker-2:~$ apt-cache policy libswarm2-xml
libswarm2-xml:
  Installed: (none)
  Candidate: 0.8.1.0
  Version table:
     0.8.1.0 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     ...
     0.6.5.1 0
        500 http://repo.reverbrain.com/trusty/ current/amd64/ Packages
     ...

É claro que posso instalar cada um deles manualmente (e acabei fazendo), mas obviamente não é o caminho certo. Eu acho que é um trabalho de apt, não meu. Como posso resolver isso?

Esta é a versão confiável do Ubuntu.

    
por ars 08.07.2015 / 20:40

1 resposta

0

Já experimentou os passos aqui

Se não recapitular rapidamente:

  • Verifique se universe e restricted repositórios estão ativados. Pressione Alt + F2, digite software-properties-gtk e pressione Enter.
  • Executar sudo apt-get update Atualiza seus arquivos de índice de pacotes.
  • Executar sudo apt-get clean . Isso limpa o repositório local de arquivos de pacotes recuperados (os arquivos .deb).
  • Executar sudo apt-get -f install . Isso corrigirá dependências quebradas.
  • Executar sudo dpkg --configure -a
  • Executar sudo apt-get -f install novamente.
por dzil123 16.07.2015 / 07:11