Вопрос или проблема
Я только что обновил дистрибутив с 20.04 до 22.04
gcc был установлен ранее, но теперь он больше не работает
Команда ‘gcc’ не найдена, но ее можно установить с помощью:
apt install gcc
Но это вызывает ошибку
Чтение списков пакетов... Готово
Формирование дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Некоторые пакеты не могут быть установлены. Это может означать, что вы
запросили невозможную ситуацию или, если вы используете нестабильный
дистрибутив, некоторые необходимые пакеты еще не были созданы
или были перемещены из Incoming.
Следующая информация может помочь разрешить ситуацию:
Следующие пакеты имеют неудовлетворенные зависимости:
cpp-11 : Зависит: gcc-11-base (= 11.4.0-1ubuntu1~22.04), но будет установлен 11.4.0-2ubuntu1~20.04
gcc-11 : Зависит: gcc-11-base (= 11.4.0-1ubuntu1~22.04), но будет установлен 11.4.0-2ubuntu1~20.04
Зависит: libgcc-11-dev (= 11.4.0-1ubuntu1~22.04), но он не будет установлен
E: Не удается исправить проблемы, у вас есть заблокированные пакеты.
Насколько я могу помнить, я никогда не делал ничего особенного, чтобы установить gcc на 20.04, так что не знаю, почему это происходит.
Похоже, что ppa:ubuntu-toolchain-r был добавлен в какой-то момент.
Я выполнил apt remove gcc-11-base
и затем смог выполнить apt install gcc
“Насколько я могу помнить, я никогда не делал ничего особенного, чтобы установить gcc на 20.04“
Ваш вывод настоятельно предполагает, что кто-то добавил пакеты из источника, не относящегося к Ubuntu:
gcc-11
отсутствует в репозиториях Ubuntu 20.04. Человек-администратор должен был добавить какой-то не-убунту apt источник (возможно, PPA), чтобы получить показанный вами вывод.
- Ваш вывод показывает классический конфликт версий. Основной причиной таких конфликтов являются пакеты неправильной версии или не-Ubuntu пакеты. Версии пакетов, указанные в вашем выводе, не принадлежат ни одному релизу Ubuntu.
Как это исправить:
-
Удалите
gcc-11
и все связанные с ним пакеты из этого не-Ubuntu источника. Вернитесь к стандартному Ubuntu. -
Удалите этот не-Ubuntu apt источник. Он несовместим с вашим релизом Ubuntu.
-
Установите совместимую версию
gcc-11
из существующих репозиториев Ubuntu.
Выполняйте шаги в порядке. Не пропускайте и не игнорируйте ни один шаг.
Ответ или решение
После обновления системы с Ubuntu 20.04 до 22.04 у вас возникла проблема с компилятором GCC. Судя по предоставленной информации, ошибка связана с зависимостями пакетов, которые не могут быть разрешены из-за конфликта версий. Ниже приведены шаги, которые помогут вам решить эту проблему.
Причины проблемы
Ваша ошибка указывает на то, что у вас установлены пакеты, которые были получены из стороннего репозитория (ppa:ubuntu-toolchain-r). Это может произойти, если вы ранее добавляли PPA для получения более новых версий GCC, которые несовместимы с вашей текущей версией Ubuntu.
Решение
-
Убедитесь, что PPA удален:
Для начала, удалите сторонний PPA, который, возможно, был добавлен ранее. Для этого выполните следующие команды в терминале:sudo add-apt-repository --remove ppa:ubuntu-toolchain-r/ppa
-
Удалите несоответствующие пакеты:
Удалите все установленные пакеты GCC, которые были получены из того PPA, а также связанные с ними пакеты:sudo apt remove gcc-11 gcc-11-base libgcc-11-dev cpp-11
-
Очистите систему:
После удаления поврежденных пакетов рекомендуется очистить систему от ненужных зависимостей:sudo apt autoremove
-
Обновите списки пакетов:
Обновите списки пакетов, чтобы система могла видеть последние доступные репозитории:sudo apt update
-
Установите подходящую версию GCC:
Теперь установите версию GCC, которая совместима с вашей версией Ubuntu:sudo apt install gcc
-
Проверьте установку:
После завершения установки проверьте, установлен ли GCC успешно:gcc --version
Заключение
Следуя этим шагам, вы должны восстановить функциональность компилятора GCC после обновления до Ubuntu 22.04. Если возникнут дополнительные проблемы, проверьте наличие других сторонних репозиториев, которые могут влиять на управление пакетами, и удалите их при необходимости.