Quando tento instalar libstdc++
usando:
sudo apt-get install libstdc++
Estou recebendo o erro abaixo no ubuntu. Você tem alguma idéia sobre isso?
The following packages have unmet dependencies:
libstdc++-4.8-doc : Conflicts: libstdc++6-4.4-doc but 4.4.7-8ubuntu1 is to be installed
Conflicts: libstdc++6-4.6-doc but 4.6.4-6ubuntu2 is to be installed
Conflicts: libstdc++6-4.7-doc but 4.7.3-12ubuntu1 is to be installed
libstdc++-4.9-doc : Conflicts: libstdc++-4.8-doc but 4.8.5-2ubuntu1~14.04.1 is to be installed
Conflicts: libstdc++6-4.4-doc but 4.4.7-8ubuntu1 is to be installed
Conflicts: libstdc++6-4.6-doc but 4.6.4-6ubuntu2 is to be installed
Conflicts: libstdc++6-4.7-doc but 4.7.3-12ubuntu1 is to be installed
libstdc++-5-doc : Conflicts: libstdc++-4.8-doc but 4.8.5-2ubuntu1~14.04.1 is to be installed
Conflicts: libstdc++-4.9-doc but 4.9.3-8ubuntu2~14.04 is to be installed
Conflicts: libstdc++6-4.4-doc but 4.4.7-8ubuntu1 is to be installed
Conflicts: libstdc++6-4.6-doc but 4.6.4-6ubuntu2 is to be installed
Conflicts: libstdc++6-4.7-doc but 4.7.3-12ubuntu1 is to be installed
libstdc++6-4.6-dbg : Conflicts: libstdc++6-4.4-dbg but 4.4.7-8ubuntu1 is to be installed
libstdc++6-4.6-doc : Conflicts: libstdc++6-4.4-doc but 4.4.7-8ubuntu1 is to be installed
libstdc++6-4.7-dbg : Conflicts: libstdc++6-4.4-dbg but 4.4.7-8ubuntu1 is to be installed
Conflicts: libstdc++6-4.6-dbg but 4.6.4-6ubuntu2 is to be installed
libstdc++6-4.7-doc : Conflicts: libstdc++6-4.4-doc but 4.4.7-8ubuntu1 is to be installed
Conflicts: libstdc++6-4.6-doc but 4.6.4-6ubuntu2 is to be installed
libstdc++6-4.8-dbg : Conflicts: libstdc++6-4.4-dbg but 4.4.7-8ubuntu1 is to be installed
Conflicts: libstdc++6-4.6-dbg but 4.6.4-6ubuntu2 is to be installed
Conflicts: libstdc++6-4.7-dbg but 4.7.3-12ubuntu1 is to be installed
libstdc++6-4.8-dbg-armhf-cross : Conflicts: libstdc++6-4.7-dbg-armhf-cross but 4.7.3-11ubuntu1cross1.85 is to be installed
libstdc++6-4.9-dbg : Conflicts: libstdc++6-4.4-dbg but 4.4.7-8ubuntu1 is to be installed
Conflicts: libstdc++6-4.6-dbg but 4.6.4-6ubuntu2 is to be installed
Conflicts: libstdc++6-4.7-dbg but 4.7.3-12ubuntu1 is to be installed
Conflicts: libstdc++6-4.8-dbg but 4.8.5-2ubuntu1~14.04.1 is to be installed
libstdc++6-5-dbg : Conflicts: libstdc++6-4.4-dbg but 4.4.7-8ubuntu1 is to be installed
Conflicts: libstdc++6-4.6-dbg but 4.6.4-6ubuntu2 is to be installed
Conflicts: libstdc++6-4.7-dbg but 4.7.3-12ubuntu1 is to be installed
Conflicts: libstdc++6-4.8-dbg but 4.8.5-2ubuntu1~14.04.1 is to be installed
Conflicts: libstdc++6-4.9-dbg but 4.9.3-8ubuntu2~14.04 is to be installed
E: Unable to correct problems, you have held broken packages.
libstdc++
(possivelmente você está tentando instalarlibstdc++6
? Por causa dos++
caracteres, quandoapt
não encontra uma correspondência exata, ele trata o nome do pacote como uma expressão regular ; nesse caso, ele está tentando instalar qualquer pacote cujo nome partidaslibstd
seguido por uma ou maisc
- muitos dos quais conflito, como você pode ver.apt
diz que tratará nomes de pacotes como expressões regulares se incluírem.
,?
ou*
sem mencionar+
, para que o comportamento não seja exatamente esperado.Respostas:
Na verdade, não existe um pacote chamado
libstdc++
(possivelmente você está tentando instalarlibstdc++6
?)Quando o apt não encontra uma correspondência exata com o nome de um pacote, ele trata a sequência especificada como uma expressão regular. Nesse caso,
++
ele faz com que tente instalar qualquer pacote cujo nome correspondalibstd
seguido por um ou maisc
- muitos dos quais conflitam, como você pode ver.Infelizmente, nunca consegui descobrir como desativar esse comportamento (nada do que tentei no passado usando caracteres de escape pareceu funcionar) - a única solução que eu sei é ter cuidado ao fornecer um nome exato do pacote em que os caracteres regex pode ser mal interpretado e para garantir que o catálogo de pacotes esteja atualizado, ou seja,
fonte
^PACKAGE$
Primeiro execute estes comandos
e então tente
ou tente este resultado da pesquisa e instale um pacote desejado a partir dos http://packages.ubuntu.com/search?keywords=libstdc%2B%2B
fonte
libstdc++
incluída nobuild-essential
s?aptitude
se você não o usa para instalarlibstdc++6
?fonte