Estou executando no Ubuntu 16.04, atualizado a partir de 15.10 (que pode não ser relevante). Não consigo instalar o libcups2-dev devido a um problema de dependência. Descrevo o problema e as etapas de solução de problemas abaixo:
Meu problema:
O seguinte comando para instalar o libcups2-dev (para uso com uma impressora dymo) é atendido com a seguinte resposta:
~ % sudo apt-get install libcups2-dev
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:
libcups2-dev : Depends: libcupsimage2-dev (= 2.2.0-2) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Etapas de solução de problemas:
"Ah", diz eu. "Eu me pergunto o que é que acontece?"
~ % sudo dpkg --get-selections | grep hold
~ %
Nada é retido ou esse comando não é mais válido? Ah bem. Vamos caçar. Se o libcups2-dev não puder ser instalado por causa do libcupsimage2-dev, o que está parando o libcupsimage2-dev?
Eu descubro (saída truncada por brevidade):
~ % sudo apt-get install libcupsimage2-dev
The following packages have unmet dependencies:
libcupsimage2-dev : Depends: libtiff-dev
E: Unable to correct problems, you have held broken packages.
Eu então sigo esta linha de questionamento até o fim. libcupsimage2-dev depende do libtiff-dev, que depende do libjbig-dev, que depende da libjbig0 ... e aqui eu encontro o problema:
~ % sudo apt-get install libjbig-dev
The following packages have unmet dependencies:
libjbig-dev : Depends: libjbig0 (= 2.1-3.1) but 2.1-3.1+deb.sury.org~xenial+1 is to be installed
E: Unable to correct problems, you have held broken packages.
COMO CURIOSO. O libjbig-dev requer o libjbig0 2.1-3.1, o que eu tenho, mas a versão que tenho tem um monte de ... bem, eu não sei o que todo esse material de goobery + deb.sury.org está por trás do número da versão. Mas vocês, certo?
Vamos continuar por um momento. Depois da atualização tradicional do apt-get e do upgrade do apt-get ...:
~ % sudo apt-get install libjbig0
Reading package lists... Done
Building dependency tree
Reading state information... Done
libjbig0 is already the newest version (2.1-3.1+deb.sury.org~xenial+1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
tl; dr
O libcups2-dev é interrompido porque uma de suas dependências grandes, libjbig-dev, requer o libjbig0 2.1-3.1. Só eu tenho essa versão do libjbig0, mas ela não está sendo reconhecida como a versão correta. Então, primeiro, o que está acontecendo e, segundo, como posso corrigi-lo? Ah, e terceiro, o que é todo esse material + deb.sury.org?