Попередження pkg_info - package info is corrupt

Пошкодження списку встановленого програмного забезпечення FreeBSD в результаті збою комп'ютера під час роботи portupgrade або pkgdb (відсутні файли «+ CONTENTS» в піддиректоріях / var / db / pkg).

В якій ситуації проявилася проблема:

Перезавантаження комп'ютера через збій електроживлення під час роботи portupgrade.

Після включення fsck виявила велику кількість збоїв на / var.

При створенні файлу /var/db/pkg/pkgdb.db після його видалення pkgdb -F не ​​бачить встановленого ПО (наприклад, у висновку присутній «0 packages found»).

Це проявляється тільки при створенні pkgdb.db з нуля; якщо pkgdb.db не видаляти, виводиться інформація про порушені залежностях.

pkg_info 2> 1 виводить такі рядки: pkg_info: the package info for package 'glib-2.14.4' is corrupt

Якщо для встановленої версії FreeBSD є готові пакаджі з версіями ПЗ, що збігаються з версіями встановленого в системі, витягти з цих пакаджей файли «+ CONTENTS» і помістити на відповідне місце в / var / db / pkg /.

Для програм, версії яких в пакаджах не збігаються з встановленими в системі, виконати portupgrade -fN.

Якщо після виконання попереднього пункту у висновку pkg_info 2> 1 | grep corrupt зустрічаються записи виду: libiconv-1.11_1 A character set conversion lpkg_info: the package info for package 'lynx-2.8.6.5_2,1' is corrupt то для всіх друге програм в цьому рядку (тут - lynx):

деінсталювати програму через порт

видалити директорію / var / db /<программа> ;

інсталювати програму через порт.

Оновити ПО через portupgrade.