Как исправить функцию python в exec_python_func (), автоматически сгенерированной: ОШИБКА? - PullRequest
0 голосов
/ 22 декабря 2018

Когда я запускаю «bitbake core-image-sato», я сталкиваюсь со следующей ошибкой.

File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
     0001:
 *** 0002:sort_passwd(d)
     0003:
File: '/home/A/poky/meta/classes/rootfs-postcommands.bbclass', lineno: 182, function: sort_passwd
     0178:}
     0179:
     0180:python sort_passwd () {
     0181:    import rootfspostcommands
 *** 0182:    rootfspostcommands.sort_passwd(d.expand('${IMAGE_ROOTFS}${sysconfdir}'))
     0183:}
     0184:
     0185:#
     0186:# Enable postinst logging if debug-tweaks is enabled
File: '/home/A/poky/meta/lib/rootfspostcommands.py', lineno: 56, function: sort_passwd
     0052:            mapping = sort_file(filename, None)
     0053:            filename = os.path.join(sysconfdir, shadow)
     0054:            remove_backup(filename)
     0055:            if os.path.exists(filename):
 *** 0056:                 sort_file(filename, mapping)
File: '/home/A/poky/meta/lib/rootfspostcommands.py', lineno: 22, function: sort_file
     0018:            name = entries[0]
     0019:            if mapping is None:
     0020:                id = int(entries[2])
     0021:            else:
 *** 0022:                id = mapping[name]
     0023:            new_mapping[name] = id
     0024:        # Sort by numeric id first, with entire line as secondary key
     0025:        # (just in case that there is more than one entry for the same id).
     0026:        lines.sort(key=lambda line: (new_mapping[line.split(b':')[0]], line))
Exception: KeyError: b'bin'
DEBUG: Python function sort_passwd finished
DEBUG: Python function do_rootfs finished
ERROR: Function failed: sort_passwd

Есть ли у кого-нибудь идея исправить эту проблему.

ОС: Ubuntu-16,04, Poky-Отрасль: SUMO

1 Ответ

0 голосов
/ 03 января 2019

Если вы изменили содержимое любого из следующих файлов, которые устанавливаются на /etc, то это, вероятно, ваша основная причина:

  • passwd
  • shadow
  • group
  • gshadow

Эти файлы часто приходят из каталога /files на одном из ваших слоев.Похоже, что один из них плохо отформатирован.

В rootfspostcommands.py, прямо над точкой, где выдается исключение, есть комментарий, который гласит:

# No explicit error checking for the sake of simplicity. /etc
# files are assumed to be well-formed, causing exceptions if
# not.
...