Вопрос или проблема
Мне нужно установить более раннюю версию gcc, чем сейчас. У меня уже есть gcc-10. Мне нужно установить gcc-8 или gcc-6 на мой компьютер, чтобы собрать старый проект. Я скачал gcc-6 с github и попытался установить его, как показано в этом руководстве https://gist.github.com/slizzered/a9dc4e13cb1c7fffec53. Я получил ошибку: target not found: libart-lgpl
. Google показал мне, что эта ошибка возникает из-за того, что этого пакета нет в основном репозитории. Стоп! Еще раз. Если я хочу собрать gcc-6, то мне нужно загрузить и установить yaourt
, а затем установить libart-lgpl
, которого нет в официальном репозитории? Пожалуйста, помогите мне скачать и установить несколько компиляторов gcc на моем компьютере.
Вам следует указать как gcc, так и gcc-libs. Например, если вы хотите понизить версию с 7.1.1 до 6.3.1:
Метод 1)
pacman -U /var/cache/pacman/pkg/gcc-6.3.1-2-x86_64.pkg.tar.xz /var/cache/pacman/pkg/gcc-libs-6.3.1-2-x86_64.pkg.tar.xz
Метод 2)
downgrade gcc gcc-libs
И выберите нужные версии.
Источник: https://stackoverflow.com/questions/34475253/archlinux-downgrade-gcc-from-5-2-to-4-8
Ответ или решение
Установка более старых версий компилятора GCC на Arch Linux может представлять собой достаточно сложную задачу, так как этот дистрибутив обычно поддерживает только самые последние версии пакетов в своих официальных репозиториях. Тем не менее, существует несколько способов, которые могут помочь в решении вашей проблемы, исходя из предоставленного описания. Рассмотрим эти способы более подробно.
Теория
Arch Linux — это дистрибутив, ориентированный на продвинутых пользователей, с акцентом на простоту и современность. Это означает, что основной репозиторий включает только самые свежие версии программного обеспечения. Однако иногда необходимо использовать более старые версии компиляторов, таких как GCC, для обеспечения совместимости с проектами, написанными с использованием устаревших стандартов или зависимостей. В таких случаях необходимо прибегать к альтернативным подходам установки.
Пример
Предположим, вам нужно установить GCC версии 6 или 8, чтобы поддерживать сборку старого проекта. У вас уже установлена десятая версия GCC, которая не подходит для ваших нужд. Ваша основная задача — установить более старую версию GCC так, чтобы это не повлияло на текущую конфигурацию системы. Рассмотрим пошагово процесс установки:
-
Поиск пакетов: Во-первых, необходимо убедиться, что устаревшие пакеты доступны в кэшированном каталоге пакетов Pacman (
/var/cache/pacman/pkg
). Если вы ранее устанавливали эти версии, возможно, они до сих пор там находятся. -
Использование Pacman для установки старой версии:
Если нужные пакеты присутствуют в кэше, вы можете использовать команду:pacman -U /var/cache/pacman/pkg/gcc-6.3.1-2-x86_64.pkg.tar.xz /var/cache/pacman/pkg/gcc-libs-6.3.1-2-x86_64.pkg.tar.xz
Данная команда установит GCC и библиотеки нужной версии напрямую из кэша.
-
Использование AUR для установки отсутствующих пакетов:
Устаревшие версии могут быть недоступны в основных репозиториях, но могут присутствовать в AUR (Arch User Repository). Чтобы установить пакеты из AUR, обычно используется инструментyay
, но в вашем случае вы, возможно, возвращаетесь к более старомуyaourt
.a. Установите
yaourt
илиyay
, если он еще не установлен:sudo pacman -S --needed base-devel git git clone https://aur.archlinux.org/yay.git cd yay makepkg -si
b. Найдите необходимый пакет:
yay -Ss gcc6
c. Установите пакет:
yay -S gcc6
-
Решение проблем зависимостей:
Если при установке возникают ошибки, например, с недостающим пакетомlibart-lgpl
, вы можете установить его аналогичным образом через AUR:yay -S libart-lgpl
-
Управление несколькими версиями:
После установки нескольких версий компиляторов, вы можете использоватьupdate-alternatives
для переключения между ними. Актуально наличие и добавление альтернатив в систему:sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 10 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 6
Применение
После установки и настройки необходимых версий GCC, вы сможете компилировать ваши проекты, устанавливая нужную версию компилятора в зависимости от требований текущего проекта. Поддержка нескольких установленных версий GCC может улучшить гибкость при разработке и тестировании разных программных проектов.
Безопасное использование нескольких версий компиляторов требует тщательной настройки системы, поэтому убедитесь, что все изменения настроек протестированы перед их применением в продакшн-среде. Это обеспечит совместимость и стабильность вашей рабочей станции в контексте работы с различными проектами.
Процесс может быть более сложным и требующим внимания к деталям, однако продуманный подход избавит от многих проблем, связанных с несовместимостью, и позволит эффективно управлять состоянием вашего программного окружения.