Eu tenho um ciclo de dependência que não consigo descobrir como me locomover e está me impedindo de atualizar.
Estou no momento em 14.04 e quero mudar para 16.04. Mais abaixo está uma demonstração do que eu tenho tentado, sem sucesso. E a qualquer momento através do funcionamento, se eu fizer o apt-get -f install, então a bagunça está de volta no começo do problema.
Mas, primeiro, deixe-me dar um atalho para a pergunta específica e, em seguida, se você quiser saber o porquê e o como da pergunta, veja abaixo.
PERGUNTA: Como posso mover o pacote gcc-4.8-base da versão 14.04.3 para a 14.04.1? Basta simplesmente dar a versão desejada não é suficiente, o pacote mais antigo não existe na minha máquina e não tenho idéia de onde e como obter esse pacote mais antigo.
É assim que cheguei a precisar responder a pergunta acima e se você vir uma solução diferente para o problema, eu sou todo ouvidos (os olhos eram):
sudo apt-get update
Isso funciona bem. Então atualize:
sudo apt-get upgrade
Isso falha com:
The following packages have unmet dependencies:
libstdc++-4.8-dev : Depends: libstdc++6 (>= 4.8.4-2ubuntu1~14.04.3) but 4.8.4-2ubuntu1~14.04.1 is installed
libstdc++6 : Depends: gcc-4.8-base (= 4.8.4-2ubuntu1~14.04.1) but 4.8.4-2ubuntu1~14.04.3 is installed
E: Unmet dependencies. Try using -f.
Então, como sugerido, tente com a opção -f:
sudo apt-get upgrade -f
E após vários minutos de busca, finalmente falha:
Preparing to unpack .../libstdc++6_4.8.4-2ubuntu1~14.04.3_i386.deb ...
Unpacking libstdc++6:i386 (4.8.4-2ubuntu1~14.04.3) over (4.8.4-2ubuntu1~14.04.1) ...
dpkg: error processing archive /var/cache/apt/archives/libstdc++6_4.8.4-2ubuntu1~14.04.3_i386.deb (--unpack):
trying to overwrite '/usr/share/gcc-4.8/python/libstdcxx/__init__.py', which is also in package libstdc++6-armhf-cross 4.8.4-2ubuntu1~14.04.1cross0.11.1
Errors were encountered while processing:
/var/cache/apt/archives/libstdc++6_4.8.4-2ubuntu1~14.04.3_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Meu pensamento neste momento é livrar-se do libstdc ++ 6-armhf-cross, atualmente não preciso fazer nenhuma compilação cruzada e, no futuro, se o fizer, tentarei trazê-lo de volta em:
sudo apt-get remove --purge libstdc++6-armhf-cross libstdc++-4.8-dev-armhf-cross g++-4.8-arm-linux-gnueabihf libsfstdc++-4.8-dev-armhf-cross g++-4.8-multilib-arm-linux-gnueabihf libstdc++-4.8-dev g++-4.8 g++-arm-linux-gnueabihf g++ build-essential
Isso funciona bem e, portanto, de volta ao upgrade:
sudo apt-get upgrade
Bem, isso ainda falha, só que desta vez em um pacote diferente:
The following packages have unmet dependencies:
libstdc++-4.8-dev : Depends: libstdc++6 (>= 4.8.4-2ubuntu1~14.04.3) but 4.8.4-2ubuntu1~14.04.1 is installed
libstdc++6 : Depends: gcc-4.8-base (= 4.8.4-2ubuntu1~14.04.1) but 4.8.4-2ubuntu1~14.04.3 is installed
E: Unmet dependencies. Try using -f.
E usando a opção -f:
sudo apt-get upgrade -f
Falha novamente com:
Preparing to unpack .../libstdc++6_4.8.4-2ubuntu1~14.04.3_i386.deb ...
Unpacking libstdc++6:i386 (4.8.4-2ubuntu1~14.04.3) over (4.8.4-2ubuntu1~14.04.1) ...
dpkg: error processing archive /var/cache/apt/archives/libstdc++6_4.8.4-2ubuntu1~14.04.3_i386.deb (--unpack):
trying to overwrite '/usr/share/gcc-4.8/python/libstdcxx/__init__.py', which is also in package libstdc++6-armhf-cross 4.8.4-2ubuntu1~14.04.1cross0.11.1
Errors were encountered while processing:
/var/cache/apt/archives/libstdc++6_4.8.4-2ubuntu1~14.04.3_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Então, livre-se do gcc-4.8-base? Não, isso não está acontecendo, é uma dependência do libstdc ++ 6, daí a dependência circular. A única solução que posso pensar é tentar mover o gcc-4.8-base de volta para a versão 14.03.1 e depois atualizar a partir daí, daí a pergunta original acima.
Como sugestão de Scott, também comecei a tentar sua sequência, mas o primeiro comando falhou:
sudo dpkg --configure -a
Falha com:
dpkg: dependency problems prevent configuration of libstdc++-4.8-dev:i386:
libstdc++-4.8-dev:i386 depends on libstdc++6 (>= 4.8.4-2ubuntu1~14.04.3); however:
Version of libstdc++6:i386 on system is 4.8.4-2ubuntu1~14.04.1.
dpkg: error processing package libstdc++-4.8-dev:i386 (--configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of g++-4.8:
g++-4.8 depends on libstdc++-4.8-dev (= 4.8.4-2ubuntu1~14.04.3); however:
Package libstdc++-4.8-dev:i386 is not configured yet.
dpkg: error processing package g++-4.8 (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
libstdc++-4.8-dev:i386
g++-4.8