Когда я пытаюсь установить, libstdc++
используя:
sudo apt-get install libstdc++
Я получаю приведенную ниже ошибку в Ubuntu. У вас есть идеи по этому поводу?
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++
(возможно, вы пытаетесь установитьlibstdc++6
? Из-за++
символов, когдаapt
не удается найти точное совпадение, он обрабатывает имя пакета как регулярное выражение, поэтому в этом случае он пытается установить любой пакет, имя которого за матчамиlibstd
следует один или несколькоc
- многие из которых конфликтуют, как вы можете видетьapt
говорит , что он будет рассматривать имена пакетов , как регулярные выражения , если они включают в себя.
,?
или*
без упоминания+
, так что поведение точно не ожидаются.Ответы:
На самом деле пакет не называется
libstdc++
(возможно, вы пытаетесь установитьlibstdc++6
?)Когда apt не находит точного соответствия имени пакета, он обрабатывает данную строку как регулярное выражение. В этом случае
++
он пытается установить любой пакет, имя которого соответствуетlibstd
одному или нескольким,c
многие из которых конфликтуют, как вы можете видеть.К сожалению, мне так и не удалось выяснить, как отключить это поведение (в прошлом я не пробовал использовать escape-символы), - единственное решение, которое я знаю, - это быть осторожным, чтобы дать точное имя пакета, где любые символы регулярных выражений может быть неверно истолкован, и чтобы убедиться, что каталог пакетов обновлен, т.е.
источник
^PACKAGE$
Сначала запустите эти команды
а потом попробуй
или попробуйте этот результат поиска и установите один требуемый пакет из перечисленных http://packages.ubuntu.com/search?keywords=libstdc%2B%2B
источник
libstdc++
входит ли вbuild-essential
с?aptitude
если вы не используете его для установкиlibstdc++6
?источник