не удается установить yay -S –noconfirm bambustudio-git после yay -Syu до local/gcc 14.2.1+r134+gab884fffe3fc-1

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

Я обновил систему на Manjaro, используя yay -Syu. Похоже, что она обновила gcc до какой-то экспериментальной версии.

  • Я попытался переустановить gcc13, но это не решило проблему:

    • export LDFLAGS="${LDFLAGS/-fuse-ld=mold/-fuse-ld=ld}" перед попыткой установки.
    • export CC=gcc-13 CXX=g++-13 перед попыткой установки.
  • yay -S base-devel снова устанавливает экспериментальную версию gcc 14.2.1+r134+gab884fffe3fc-1, если я пытаюсь ее удалить.

  • Я задавал вопросы трём разным LLM, но не получил полезных ответов.

Вот логи:

yay -S --noconfirm bambustudio-git
AUR Явно (1): bambustudio-git-01.06.00.65.15.g693af0c9-1
:: PKGBUILD актуален, пропускаем загрузку: bambustudio-git
  1 bambustudio-git                          (Файлы сборки существуют)
==> Пакеты для очисткиСборки?
==> [N] None [A] All [Ab] Abort [I] Installed [No] NotInstalled или (1 2 3, 1-3, ^4)
==> 
  1 bambustudio-git                          (Файлы сборки существуют)
==> Показать различия?
==> [N] None [A] All [Ab] Abort [I] Installed [No] NotInstalled или (1 2 3, 1-3, ^4)
==> 
==> Создание пакета: bambustudio-git 01.07.01.62.4.g5ef759ce-1 (Ср 06 Ноя 2024 16:07:17)
==> Получение источников...
  -> Обновление репозитория BambuStudio...
  -> Найден BambuStudio.cpp.patch
  -> Найден CMakeLists.txt.patch
  -> Найден wxWidgets.cmake.patch
  -> Найден bambu-studio.sh
==> ПРЕДУПРЕЖДЕНИЕ: Пропущена проверка PGP подписей исходных файлов.
==> Проверка исходных файлов с помощью sha512sums...
    BambuStudio ... Пропущено
    BambuStudio.cpp.patch ... Пройдено
    CMakeLists.txt.patch ... Пройдено
    wxWidgets.cmake.patch ... Пройдено
    bambu-studio.sh ... Пройдено
:: (1/1) Разбор SRCINFO: bambustudio-git
==> Создание пакета: bambustudio-git 01.07.01.62.4.g5ef759ce-1 (Ср 06 Ноя 2024 16:07:19)
==> Проверка зависимостей во время выполнения...
==> Проверка зависимостей на этапе сборки...
==> Получение источников...
  -> Обновление репозитория BambuStudio...
  -> Найден BambuStudio.cpp.patch
  -> Найден CMakeLists.txt.patch
  -> Найден wxWidgets.cmake.patch
  -> Найден bambu-studio.sh
==> Проверка исходных файлов с помощью sha512sums...
    BambuStudio ... Пропущено
    BambuStudio.cpp.patch ... Пройдено
    CMakeLists.txt.patch ... Пройдено
    wxWidgets.cmake.patch ... Пройдено
    bambu-studio.sh ... Пройдено
==> Удаление существующей директории $srcdir/...
==> Извлечение источников...
  -> Создание рабочей копии репозитория BambuStudio...
Клонирование в 'BambuStudio'...
Готово.
Обновление файлов: 100% (6964/6964), готово.
==> Начало prepare()...
исправление файла BambuStudio/CMakeLists.txt
Hunk #1 успешно прошёл на 745 (сдвиг 54 строки).
==> Начало pkgver()...
==> Обновлённая версия: bambustudio-git 01.10.00.81.10.g733531b-1
==> Исходники готовы.
==> Создание пакета: bambustudio-git 01.10.00.81.10.g733531b-1 (Ср 06 Ноя 2024 16:07:23)
==> Проверка зависимостей во время выполнения...
==> Проверка зависимостей на этапе сборки...
==> ПРЕДУПРЕЖДЕНИЕ: Используется существующая директория $srcdir/
==> Начало pkgver()...
==> Удаление существующей директории $pkgdir/...
==> Начало build()...
CMake Warning (dev) at CMakeLists.txt:23 (project):
  cmake_minimum_required() должен быть вызван перед вызовом этого верхнего уровня project()
  пожалуйста, смотрите документацию по использованию в руководстве cmake-commands(7) для обоих команд.
Это предупреждение для разработчиков проекта. Используйте -Wno-dev, чтобы подавить его.

-- Идентификация компилятора C: GNU 13.3.0
-- Идентификация компилятора CXX: GNU 13.3.0
-- Определение информации о ABI компилятора C
-- Определение информации о ABI компилятора C - неудачно
-- Проверка работоспособности компилятора C: /usr/bin/gcc-13
-- Проверка работоспособности компилятора C: /usr/bin/gcc-13 - повреждено
CMake Error at /usr/share/cmake/Modules/CMakeTestCCompiler.cmake:67 (message):
  Компилятор C

    "/usr/bin/gcc-13"

  не может скомпилировать простую тестовую программу.

  Он завершает с выдачей:

    Изменить директорию: '/tmp/makepkg/bambustudio-git/src/BambuStudio/deps/build/CMakeFiles/CMakeScratch/TryCompile-c94XFe'

    Запустить команды сборки: /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_b88fe/fast
    /usr/bin/make  -f CMakeFiles/cmTC_b88fe.dir/build.make CMakeFiles/cmTC_b88fe.dir/build
    make[1]: Вход в директорию '/tmp/makepkg/bambustudio-git/src/BambuStudio/deps/build/CMakeFiles/CMakeScratch/TryCompile-c94XFe'
    Сборка C-объекта CMakeFiles/cmTC_b88fe.dir/testCCompiler.c.o
    /usr/bin/gcc-13   -march=native -O2 -pipe -flto=auto  -o CMakeFiles/cmTC_b88fe.dir/testCCompiler.c.o -c /tmp/makepkg/bambustudio-git/src/BambuStudio/deps/build/CMakeFiles/CMakeScratch/TryCompile-c94XFe/testCCompiler.c
    Линковка C-исполняемого файла cmTC_b88fe
    /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b88fe.dir/link.txt --verbose=1
    /usr/bin/gcc-13 -march=native -O2 -pipe -flto=auto  ... -fuse-ld=mold -flto=auto  -rdynamic CMakeFiles/cmTC_b88fe.dir/testCCompiler.c.o -o cmTC_b88fe
    mold: фатальная ошибка: не удается открыть ...: Нет такого файла или директории
    collect2: ошибка: ld вернула статус 1
    make[1]: *** [CMakeFiles/cmTC_b88fe.dir/build.make:99: cmTC_b88fe] Ошибка 1
    make[1]: Выход из директории '/tmp/makepkg/bambustudio-git/src/BambuStudio/deps/build/CMakeFiles/CMakeScratch/TryCompile-c94XFe'
    make: *** [Makefile:127: cmTC_b88fe/fast] Ошибка 2

  CMake не сможет правильно сгенерировать этот проект.
Стек вызовов (последний вызов первый):
  CMakeLists.txt:23 (project)

-- Конфигурация неполная, произошли ошибки!
==> ОШИБКА: Произошел сбой в build().
    Прерывание...
 -> ошибка при создании: bambustudio-git - статус выхода 4
 -> Не удалось установить следующие пакеты. Требуется ручное вмешательство:
bambustudio-git - статус выхода 4

Я предполагаю, что проблема в том, что команда mold не может понять “…” (вариативный список директорий?)

Ответ или решение

Судя по описанной проблеме, возникли сложности с установкой пакета bambustudio-git с использованием yay после обновления системы на Manjaro. Обратим внимание на основные моменты, которые ведут к ошибкам, и шаги, которые можно предпринять для их устранения.

Основные причины проблемы

  1. Обновление gcc до экспериментальной версии: Как вы упомянули, после обновления системе был установлен gcc версии 14.2.1+r134+gab884fffe3fc-1. Это может быть причиной нестабильной работы компилятора, так как экспериментальные сборки могут содержать ошибки или несовместимости с другими компонентами.

  2. Проблемы с компоновщиком mold: Судя по логам, основной проблемой также является использование компоновщика mold, который не может корректно обработать команду линковки, выдавая ошибку "cannot open …: No such file or directory". Это может быть связано с неправильной настройкой окружения или параметров компиляции.

Шаги для устранения проблемы

1. Вернуться на стабильную версию gcc

Хотя вы пытались переустановить gcc-13, это не сработало из-за зависимостей, которые тянут экспериментальную версию gcc через пакет base-devel.

Попробуйте удалить base-devel, но учтите, что это может привести к удалению других важных пакетов.

sudo pacman -Rns base-devel

После этого попробуйте установить необходимый вам пакет с предыдущей версией gcc:

sudo pacman -S gcc-13

2. Настройка переменных окружения

Убедитесь, что вы правильно установили переменные окружения, особенно если вы имеете в виду использование нескольких версий компилятора. Вы можете попробовать следующее:

export CC=gcc-13
export CXX=g++-13
export LDFLAGS="-fuse-ld=ld"  # Или другой компоновщик, если 'mold' вызывает ошибки

Затем попробуйте снова установить пакет bambustudio-git:

yay -S --noconfirm bambustudio-git

3. Принудительная установка зависимостей

Если вышеперечисленные шаги не сработают, может потребоваться принудительная установка зависимостей. Для этого вы можете использовать флаг --needed для проверки, установлены ли все необходимые пакеты.

yay -S --needed --noconfirm base-devel

4. Варианты компиляции

Если проблема все еще сохраняется, стоит попробовать другие компоновщики или параметры компиляции к CMake. Например, вы можете временно исключить -fuse-ld=mold из ваших флагов линковщика и посмотреть, удастся ли скомпилировать проект с помощью стандартного линковщика:

export LDFLAGS="${LDFLAGS/-fuse-ld=mold/-fuse-ld=ld}"

5. Проверка системной конфигурации

Рекомендуется также рассмотреть возможность отката до более стабильной версии компилятора, если все вышеперечисленное не приведет к нужному результату. Это можно сделать, изменив файл /etc/pacman.conf, временно закомментировав или изменив репозитории, которые вы используете, или используя AUR для ручной установки стабильных версий.

Заключение

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

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

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