Construir dependências para o emacs24 não pôde ser atendido 14.04

1

Eu quero instalar manualmente o emacs24.4 e estou seguindo os tutoriais amplamente disponíveis para fazê-lo em 14.04 , mas quando quero instalar as dependências de compilação necessárias:

sudo apt-get build-dep emacs24
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages have unmet dependencies:
 libgtk-3-dev : Depends: libwayland-dev (>= 1.2.0) but it is not going to be installed
E: Build-dependencies for emacs24 could not be satisfied.

Como posso resolver esse problema, pois tentar instalar a dependência manualmente me leva a uma recursão infinita em diferentes dependências não atendidas.

Conforme solicitado pelos comentários:

apt-cache policy libwayland-dev
libwayland-dev:
  Installed: (none)
  Candidate: 1.4.0-1ubuntu1
  Version table:
     1.4.0-1ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

Conforme solicitado pelos comentários:

sudo apt-mark showhold
$>

(saída emtpy)

Eu fiz mais escavações e parece que o libwayland-dev depende de versões muito antigas:

The following packages have unmet dependencies:
 libwayland-dev : Depends: libwayland-client0 (= 1.4.0-1ubuntu1) but 1.7.0-0ubuntu1~trusty1 is to be installed
                  Depends: libwayland-server0 (= 1.4.0-1ubuntu1) but 1.7.0-0ubuntu1~trusty1 is to be installed
                  Depends: libwayland-cursor0 (= 1.4.0-1ubuntu1) but 1.7.0-0ubuntu1~trusty1 is to be installed

Como quando tento instalar (todas as atualizações estão instaladas):

sudo apt-get install libwayland-client0
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libwayland-client0 is already the newest version.

dpkg -s libwayland-client0
Package: libwayland-client0
Status: install ok installed
Priority: optional
Section: libs
Installed-Size: 95
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Multi-Arch: same
Source: wayland
Version: 1.7.0-0ubuntu1~trusty1

Um DOWNGRADE das dependências é SEM OPÇÃO como eu tenho (é claro) dependências nas novas bibliotecas, embora se é possível ter duas versões de bibliotecas instaladas em ao mesmo tempo, e isso resolve o problema, vou considerar que uma solução de trabalho.

    
por Sim 11.08.2015 / 13:41

1 resposta

3

Você pode atualizar da Trusty para a Vivid. Mas você usa uma versão LTS, portanto, outra possibilidade:

Altere as dependências com as etapas abaixo, mas não posso garantir que não haja efeitos colaterais. Por outro lado, você não tem muita escolha se não quiser fazer o downgrade dos outros pacotes.

Mas é apenas uma biblioteca de desenvolvimento e, portanto, seu sistema não será afetado de outra forma.

Forçando a instalação via

sudo dpkg -i --force-all libwayland-dev_1.4.0-1ubuntu1_amd64.deb

NÃO funcionará, depois do próximo sudo apt-get dist-upgrade ou sudo apt-get upgrade você teria o problema

You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 libwayland-dev : Depends: libwayland-client0 (= 1.4.0-1ubuntu1) but 1.7.0-0ubuntu1 is installed
                  Depends: libwayland-server0 (= 1.4.0-1ubuntu1) but 1.7.0-0ubuntu1 is installed
                  Depends: libwayland-cursor0 (= 1.4.0-1ubuntu1) but 1.7.0-0ubuntu1 is installed
E: Unmet dependencies. Try using -f.

Portanto

  1. Faça o download do arquivo deb libwayland-dev_1.4.0-1ubuntu1_amd64.deb

    cd; wget http://mirrors.kernel.org/ubuntu/pool/main/w/wayland/libwayland-dev_1.4.0-1ubuntu1_amd64.deb
    
  2. Altere as dependências

    mkdir deb$$
    cp libwayland-dev_1.4.0-1ubuntu1_amd64.deb deb$$
    cd deb$$
    dpkg-deb -x libwayland-dev_1.4.0-1ubuntu1_amd64.deb deb
    cd deb
    dpkg-deb -e ../libwayland-dev_1.4.0-1ubuntu1_amd64.deb
    perl -i -pe 's/= 1\.4\.0-1ubuntu1/>= 1.4.0-1ubuntu1/g' DEBIAN/control
    
  3. Recrie o arquivo deb

    cd ..
    sudo dpkg-deb -b deb
    
  4. Instale o arquivo deb

    sudo dpkg -i deb.deb
    

Aqui está a instalação no meu Vivid

% apt-cache policy libwayland-client0
libwayland-client0:
  Installed: 1.7.0-0ubuntu1
  Candidate: 1.7.0-0ubuntu1
  Version table:
 *** 1.7.0-0ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ vivid/main amd64 Packages
        100 /var/lib/dpkg/status
     1.7.0-0ubuntu1~vivid1 0
        500 http://ppa.launchpad.net/gnome3-team/gnome3-staging/ubuntu/ vivid/main amd64 Packages

% apt-cache policy libwayland-dev
libwayland-dev:
  Installed: 1.4.0-1ubuntu1
  Candidate: 1.7.0-0ubuntu1
  Version table:
     1.7.0-0ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ vivid/main amd64 Packages
     1.7.0-0ubuntu1~vivid1 0
        500 http://ppa.launchpad.net/gnome3-team/gnome3-staging/ubuntu/ vivid/main amd64 Packages
 *** 1.4.0-1ubuntu1 0
        100 /var/lib/dpkg/status
    
por A.B. 21.08.2015 / 21:07