Как я могу установить несколько компиляторов gcc в Arch Linux?

Вопрос или проблема

Мне нужно установить более раннюю версию 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 так, чтобы это не повлияло на текущую конфигурацию системы. Рассмотрим пошагово процесс установки:

  1. Поиск пакетов: Во-первых, необходимо убедиться, что устаревшие пакеты доступны в кэшированном каталоге пакетов Pacman (/var/cache/pacman/pkg). Если вы ранее устанавливали эти версии, возможно, они до сих пор там находятся.

  2. Использование 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 и библиотеки нужной версии напрямую из кэша.

  3. Использование 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
  4. Решение проблем зависимостей:
    Если при установке возникают ошибки, например, с недостающим пакетом libart-lgpl, вы можете установить его аналогичным образом через AUR:

    yay -S libart-lgpl
  5. Управление несколькими версиями:
    После установки нескольких версий компиляторов, вы можете использовать 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 может улучшить гибкость при разработке и тестировании разных программных проектов.

Безопасное использование нескольких версий компиляторов требует тщательной настройки системы, поэтому убедитесь, что все изменения настроек протестированы перед их применением в продакшн-среде. Это обеспечит совместимость и стабильность вашей рабочей станции в контексте работы с различными проектами.

Процесс может быть более сложным и требующим внимания к деталям, однако продуманный подход избавит от многих проблем, связанных с несовместимостью, и позволит эффективно управлять состоянием вашего программного окружения.

Оцените материал
Добавить комментарий

Капча загружается...