
Fedora 31 поставляется с актуальными сборками GCC, но отдельные проекты требуют применения версии 4.x. Для таких случаев пригодится установка старого компилятора параллельно с системным, без изменения базовых пакетов ОС.
Перед началом стоит уточнить, имеются ли доступные пакеты gcc4 или compat-gcc в репозиториях Fedora 31. Если нужных сборок нет, остаётся вариант компиляции из исходников с указанием собственного префикса установки, что позволяет избежать конфликта бинарных файлов.
Рабочий подход включает настройку отдельных путей, корректное выставление переменных окружения и проверку используемой версии через gcc —version. Такой способ позволяет применять GCC 4 целенаправленно – только для тех задач, где это требуется.
Проверка наличия пакетов gcc4 в репозиториях Fedora 31

Для начала стоит выполнить запрос по имени пакета через dnf: dnf search gcc4 или dnf search compat-gcc. Эти запросы показывают, существуют ли версии, совместимые с линейкой 4.x, в стандартных репозиториях Fedora 31.
Если поиск выдаёт только актуальные сборки, можно проверить расширенные источники: fedora-updates, fedora-modular, а также архивные репозитории, которые иногда содержат устаревшие пакеты. Просмотр списка доступных сборок выполняется командой dnf list compat-*.
При отсутствии нужных бинарных пакетов стоит уточнить, доступны ли исходники с тегами gcc4 через dnf reposync или на зеркалах Fedora. Это поможет понять, есть ли возможность установки без компиляции из первичного кода.
Установка gcc4 через dnf с указанием точного пакета
Если нужный пакет найден в репозиториях, установка выполняется через точное имя сборки. Чаще всего используется пакет compat-gcc-44 или аналогичные варианты, зависящие от содержимого зеркал Fedora 31.
Перед установкой стоит вывести полный список доступных файлов:
- dnf list compat-gcc-*
- dnf info compat-gcc-44
После уточнения имени выполняется установка:
- sudo dnf install compat-gcc-44
Если требуется поддержка C++ из той же линейки, дополнительно проверяется наличие пакета compat-gcc-44-c++ и устанавливается тем же способом. Такой подход позволяет избежать установки лишних зависимостей и точно контролировать состав окружения.
Настройка параллельного использования gcc4 и актуальной версии компилятора
Чтобы применять GCC 4 изолированно, пакет лучше устанавливать в собственный каталог, например /opt/gcc4. При таком размещении системные бинарные файлы не затрагиваются, а вызов нужной версии контролируется через переменные окружения.
После установки задаётся путь к старой версии компилятора:
export PATH=/opt/gcc4/bin:$PATH
Для сборок, требующих GCC 4, применяется локальная настройка окружения внутри скриптов или отдельных терминальных сессий. Это позволяет использовать системный компилятор по умолчанию и переключаться на версию 4.x только при необходимости.
Дополнительно можно создать отдельный профиль в ~/.bashrc или ~/.bash_profile с экспортом путей, а затем активировать его вручную через команду source. Такой подход упрощает контроль над тем, какая версия используется для конкретных задач.
Переключение версии компилятора через alternatives
Для удобного выбора между GCC 4 и системной версией можно зарегистрировать обе сборки в механизме alternatives. Это позволяет переключаться между ними без изменения переменных окружения.
Основная регистрация выполняется вручную, если GCC 4 установлен в нестандартный каталог. Пример структуры для добавления:
| Команда | Назначение |
|---|---|
| sudo alternatives —install /usr/bin/gcc gcc /opt/gcc4/bin/gcc 20 | Добавление gcc4 в список доступных вариантов |
| sudo alternatives —install /usr/bin/gcc gcc /usr/bin/gcc 40 | Регистрация системного gcc с более высоким приоритетом |
| sudo alternatives —config gcc | Выбор нужной версии компилятора |
Такая конфигурация позволяет переключать gcc в нужный момент, не затрагивая другие инструменты. При необходимости аналогичные действия выполняются для g++.
Сборка gcc4 из исходников при отсутствии пакетов в репозиториях
Если нужный пакет отсутствует в репозиториях Fedora 31, GCC 4 можно собрать из исходников. Сборка выполняется в отдельном каталоге, чтобы избежать конфликтов с системной версией.
Необходимые зависимости включают:
- make
- gmp-devel
- mpfr-devel
- libmpc-devel
- isl-devel (для поддержки некоторых оптимизаций)
Основные шаги сборки:
- Скачать исходники с официального зеркала GNU: wget https://ftp.gnu.org/gnu/gcc/gcc-4.9.4/gcc-4.9.4.tar.gz
- Распаковать архив: tar -xzf gcc-4.9.4.tar.gz
- Создать отдельный каталог сборки: mkdir gcc-build && cd gcc-build
- Запустить конфигурацию с указанием префикса установки: ../gcc-4.9.4/configure —prefix=/opt/gcc4 —enable-languages=c,c++ —disable-multilib
- Компиляция: make -j$(nproc)
- Установка в указанную директорию: sudo make install
После завершения сборки GCC 4 будет доступен в /opt/gcc4/bin, что позволяет использовать его параллельно с системной версией без конфликтов.
Проверка установленной версии gcc4 и тестовая компиляция

После установки GCC 4 рекомендуется убедиться, что компилятор корректно распознаётся системой. Для проверки версии используется команда: gcc —version или /opt/gcc4/bin/gcc —version, если компилятор установлен в нестандартный каталог.
Для тестовой компиляции создаётся минимальный C-файл, например test.c:
int main() { return 0; }
Компиляция выполняется через:
/opt/gcc4/bin/gcc test.c -o test
Если бинарный файл test создаётся без ошибок, это подтверждает работоспособность GCC 4. При необходимости проверяется совместимость с C++:
/opt/gcc4/bin/g++ test.cpp -o test_cpp
Такая проверка позволяет убедиться, что старый компилятор интегрирован корректно и готов к использованию для конкретных проектов.
Вопрос-ответ:
Почему Fedora 31 не содержит gcc4 в стандартных репозиториях?
Fedora 31 ориентирована на актуальные версии компиляторов, поэтому старые версии GCC 4.x в основных репозиториях отсутствуют. Для установки старого компилятора обычно используют пакеты compat-gcc или сборку из исходников.
Как проверить доступность gcc4 в Fedora 31 перед установкой?
Для проверки наличия пакета выполняют команду dnf search gcc4 или dnf search compat-gcc. Дополнительно можно просмотреть список доступных сборок через dnf list compat-*, чтобы убедиться, что нужная версия присутствует.
Можно ли использовать gcc4 параллельно с более новой версией компилятора?
Да. Для этого GCC 4 устанавливается в отдельный каталог, например /opt/gcc4, и путь к нему добавляется через export PATH=/opt/gcc4/bin:$PATH. Это позволяет использовать старую версию только при необходимости, не заменяя системный компилятор.
Как переключать версию компилятора с помощью alternatives?
После регистрации обеих версий GCC в системе через alternatives можно выбирать активную сборку командой sudo alternatives —config gcc. Для g++ выполняются аналогичные действия, что позволяет управлять версиями без изменения переменных окружения.
Что делать, если нужного пакета gcc4 нет в репозиториях?
В этом случае выполняется сборка компилятора из исходников. Скачивают архив с сайта GNU, распаковывают его, создают отдельный каталог сборки, запускают конфигурацию с указанием —prefix, затем собирают и устанавливают с помощью make. После этого GCC 4 доступен для использования в указанном каталоге.
Как правильно проверить, что GCC 4 установлен и работает на Fedora 31?
После установки GCC 4 необходимо убедиться, что система распознаёт нужную версию. Для этого выполняется команда /opt/gcc4/bin/gcc —version или gcc —version, если путь к компилятору добавлен в PATH. Затем создаётся тестовый файл, например test.c с простым кодом int main() { return 0; }, и компиляция проводится командой /opt/gcc4/bin/gcc test.c -o test. Если бинарный файл создаётся без ошибок, GCC 4 функционирует корректно. Для проверки C++ используется аналогичная команда через g++, что позволяет убедиться в работоспособности всех нужных языковых модулей.
