libboost-dev não pode instalar devido à dependência circular

0

Instalando o libboost-dev no Ubuntu 12.04:

O sistema está off-line devido a circunstâncias imutáveis, então eu tenho que baixar bibliotecas e instalar manualmente usando 'dpkg'.

O repositório de pacotes do Ubuntu mostra que o libboost-dev para 12.04 é 1.48.0.2 e depende de "libboost1.46-dev"

Eu tenho outro sistema, online, com configuração idêntica, que eu consultei para descobrir qual pacote libboost-dev está instalado. Isto confirma o 1.48.02:

 ~$ dpkg -l libboost-dev
 Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                        Version                                     Description
+++-===========================================-===========================================-======================================================================================================
ii  libboost-dev                                1.48.0.2                                    Boost C++ Libraries development files (default version)

Então baixei os dois pacotes, copiei-os manualmente para o sistema off-line,

libboost1.46-dev_1.46.1
libboost-dev_1.48.0.2

e tentou instalar:

~$ sudo dpkg -i libboost*
dpkg: considering removing libboost1.48-dev in favour of libboost1.46-dev ...
dpkg: no, cannot proceed with removal of libboost1.48-dev (--auto-deconfigure will help):
libboost-timer1.48-dev depends on libboost1.48-dev (= 1.48.0-3)
libboost1.48-dev is to be removed.
dpkg: regarding libboost1.46-dev_1.46.1-7ubuntu3_amd64.deb containing libboost1.46-dev:
libboost1.48-dev conflicts with libboost1.46-dev
libboost1.46-dev (version 1.46.1-7ubuntu3) is to be installed.
dpkg: error processing libboost1.46-dev_1.46.1-7ubuntu3_amd64.deb (--install):
conflicting packages - not installing libboost1.46-dev
(Reading database ... 217276 files and directories currently installed.)
Preparing to replace libboost-dev 1.48.0.2 (using libboost-dev_1.48.0.2_amd64.deb) ...
Unpacking replacement libboost-dev ...
dpkg: dependency problems prevent configuration of libboost-dev:
libboost-dev depends on libboost1.46-dev; however:
Package libboost1.46-dev is not installed.
dpkg: error processing libboost-dev (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
libboost1.46-dev_1.46.1-7ubuntu3_amd64.deb
libboost-dev

O 'dpkg' primeiro considera substituir o que parece ser o 1.48 instalado, mas depois não pode, porque muitas coisas dependem dele. Em seguida, ele diz "libboost1.48-dev conflita com libboost1.46-dev".

Meu sistema on-line mostra que ambos os pacotes estão instalados, mas meu sistema off-line não será instalado e que o pacote só foi descompactado:

 ~$ dpkg -l libboost-dev
 Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                        Version                                     Description
+++-===========================================-===========================================-======================================================================================================
iU  libboost-dev                                1.48.0.2                                    Boost C++ Libraries development files (default version)

O que está errado, que o dpkg não pode instalar isto?

    
por guidotex 24.10.2015 / 00:09

1 resposta

0

Eu fiz mais algumas coisas sobre isso.

Eu não sei como (já que este sistema está offline), mas os pacotes libboost * 1.48 foram todos instalados para proibir a instalação dos pacotes libboost1.46 (que são a instalação padrão do 12.04).

Como tudo que eu queria eram os pacotes de instalação padrão, executei:

sudo dpkg -r libboost-*1.48.-dev
sudo dpkg -i libboost1.46-dev_1.46.1-7ubunut3_amd64.deb libboost-dev_1.48.0.2_amd64.deb

Isso completou a instalação com sucesso

    
por guidotex 06.11.2015 / 22:22