Вопрос или проблема
Наш проект построен с использованием clang-13, который недоступен через APT на Ubuntu 24, похоже, он устарел:
sudo apt install clang-13
[sudo] пароль для пользователя:
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Пакет clang-13 недоступен, но на него ссылается другой пакет.
Это может означать, что пакет отсутствует, был устаревшим или
доступен только из другого источника
E: У пакета 'clang-13' нет кандидата на установку
Я пытался скачать пакет вручную из этого архива debian через dpkg
, но это приводит к слишком большому количеству зависимостей, которые не устанавливаются автоматически. Возможно, мне следует добавить какой-то репозиторий для apt
, но я не знаю, какой именно.
Та же проблема и с библиотеками, такими как lld-13
, libc++-13-dev
, libc++abi-13-dev
.
Может кто-то помочь мне решить эту проблему?
Ответ или решение
Чтобы установить устаревшую версию Clang-13 на Ubuntu 24, где данная версия больше не поддерживается через стандартные репозитории APT, вам потребуется следовать нескольким шагам, чтобы вручную установить требуемые пакеты и их зависимости. Вот подробная инструкция:
1. Установка необходимых зависимостей
Прежде чем установить Clang-13, убедитесь, что ваш системный пакетный менеджер и система обновлены:
sudo apt update
sudo apt upgrade
2. Поиск альтернативных репозиториев
Для получения устаревшей версии Clang вы можете добавить репозиторий, который содержит старые версии компилятора. Обычно для этого подходят архивы репозиториев более ранних версий Ubuntu.
Использование репозиториев «LLVM»
Проект LLVM, частью которого и является Clang, предоставляет собственные репозитории:
-
Импортируйте ключ для репозитория LLVM:
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
-
Добавьте подходящий репозиторий для вашей версии Ubuntu. Например, для «образца» дистрибутива, замените
focal
на ваше имя релиза, если это необходимо:echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main" | sudo tee /etc/apt/sources.list.d/llvm.list
-
Обновите список пакетов:
sudo apt update
-
Установите Clang-13 и сопутствующие библиотеки:
sudo apt install clang-13 lld-13 libc++-13-dev libc++abi-13-dev
3. Минимизация ручной установки
Если вы сталкиваетесь с проблемами зависимостей при установке через dpkg
, используйте apt-get
для установки зависимостей автоматически:
sudo apt-get install -f
Этот шаг поможет вам установить все недостающие библиотеки, которые были выявлены в процессе ручной загрузки пакета.
4. Альтернативное решение: Сборка из исходного кода
Если установка из репозитория по каким-либо причинам недоступна, вы можете собрать Clang-13 из исходного кода:
- Загрузите исходники LLVM и Clang соответствующей версии с официального сайта.
- Вместе с ними загрузите и другие компоненты, такие как Compiler-rt, libcxx, и другие, в соответствии с требованиями вашего проекта.
- Следуйте инструкциям по сборке из исходников на официальном сайте LLVM.
Заключение
Установка устаревшего программного обеспечения требует времени и внимания к деталям, особенно если оно больше не поддерживается в стандартных репозиториях дистрибутивов. Всегда рекомендуется проверять возможности обновления проекта до более актуальной версии Clang, чтобы использовать преимущества новых фич и улучшений производительности.