Дата и время публикации:
Проблема и решение
1. Суть проблемы
Как показано в дампе 1.1, после запуска не был обнаружен python2 требуемый для запуска сборочной машины Yocto/poky.
Дамп 1.1
$ bitbake core-image-minimal ... File "/local/poky/meta/classes/base.bbclass", line 244, in base_eventhandler(e=): # Works with the line in layer.conf which changes PATH to point here > setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS', d) setup_hosttools_dir(d.getVar('HOSTTOOLS_DIR'), 'HOSTTOOLS_NONFATAL', d, fatal=False) File "/local/poky/meta/classes/base.bbclass", line 145, in setup_hosttools_dir(dest='/local/build/tmp/hosttools', toolsvar='HOSTTOOLS', d=<bb.data_smart.DataSmart object at 0x7f71de451ac8>, fatal=True): srctool = "python2" > os.symlink(srctool, desttool) FileExistsError: [Errno 17] File exists: 'python2' -> '/local/build/tmp/hosttools/python'
Такое возможно на старых ветвях (версиях) сборочной машины Yocto/poky, которые еще требуют поддержки уже устаревшей и небезопасной python2, которая уже не используется новыми версиями дистрибутивов Linux.
Так, у меня проблема возникла после выполнения apt autoremove на версии дистрибутива Debian-11 "Bullseye" во время ее замораживания разработчиками Debian
2. Решение
Проверяем жива ли ссылка /local/build/tmp/hosttools/python2, как показано в дампе 2.1
Дамп 2.1
$ file /local/build/tmp/hosttools/python2 /local/build/tmp/hosttools/python2: broken symbolic link to /usr/bin/python2
Если файл не был найден, нет запускаем с правами суперпользователя установку пакета python2, как показано в дампе 2.2
Дамп 2.1
$ sudo apt install python2 Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Будут установлены следующие дополнительные пакеты: libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib python2-minimal python2.7 python2.7-minimal Предлагаемые пакеты: python2-doc python-tk python2.7-doc Следующие НОВЫЕ пакеты будут установлены: libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib python2 python2-minimal python2.7 python2.7-minimal Обновлено 0 пакетов, установлено 7 новых пакетов, для удаления отмечено 0 пакетов, и 1 пакетов не обновлено. Необходимо скачать 4 018 kB архивов. После данной операции объём занятого дискового пространства возрастёт на 16,3 MB. Хотите продолжить? [Д/н] y
После установки недостающих пакетов libpython2-stdlib, libpython2.7-minimal, libpython2.7-stdlib, python2-minimal, python2.7 python2.7-minimal инцидент был исчерпан.
3. Библиография
3.1 StackOverflaw.Python FileExists error when making directory