Cuando intento instalar libstdc++
usando:
sudo apt-get install libstdc++
Recibo el siguiente error en ubuntu. ¿Tienes alguna idea al respecto?
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++
(¿posiblemente estás tratando de instalarlolibstdc++6
? Debido a los++
caracteres, cuandoapt
no encuentra una coincidencia exacta, trata el nombre del paquete como una expresión regular, por lo que en este caso está tratando de instalar cualquier paquete cuyo nombre partidoslibstd
seguidos de uno o másc
, muchos de los cuales entran en conflicto, como puede ver.apt
dice que tratará los nombres de paquetes como expresiones regulares si incluyen.
,?
o*
sin mencionar+
, por lo que el comportamiento no se espera exactamente.Respuestas:
En realidad no hay un paquete llamado
libstdc++
(¿posiblemente estás intentando instalarlolibstdc++6
?)Cuando apt no encuentra una coincidencia exacta con el nombre de un paquete, trata la cadena dada como una expresión regular. En este caso,
++
hace que intente instalar cualquier paquete cuyo nombre coincidalibstd
seguido de uno o másc
, muchos de los cuales entran en conflicto, como puede ver.Desafortunadamente, nunca he logrado encontrar la manera de desactivar este comportamiento (nada de lo que he intentado en el pasado usando caracteres de escape parece funcionar): la única solución que sé es tener cuidado de dar un nombre de paquete exacto donde los caracteres regex puede malinterpretarse y asegurarse de que el catálogo de paquetes esté actualizado, es decir
fuente
^PACKAGE$
Primero ejecuta estos comandos
y luego intenta
o pruebe este resultado de búsqueda e instale un paquete deseado de http://packages.ubuntu.com/search?keywords=libstdc%2B%2B
fuente
libstdc++
incluida en elbuild-essential
s?aptitude
si no lo usas para instalarlibstdc++6
?fuente