Во время установки нового порта внезапно появилась новая ошибка. Что ещё более странно – это то, что она возникла не на FreeBSD 9.0, а на вполне себе обновлённой 9.2:
# uname -r 9.2-RELEASE-p6
Видимо дело в том, что pkgng
был установлен до обновления с 9.0 до 9.2 вручную, ещё на старую 9.0.
/usr/local/sbin/pkg: Undefined symbol “_ThreadRuneLocale”
Решение нашлось с трудом, хотя на форуме FreeBSD постов с такой ошибкой довольно много, но вот реальных советов, кроме как “обновите систему” – мало.
Что бы устранить проблему – пересоберём pkgng. Редактируем файл /etc/make.conf
и на время отключаем использование pkgng
:
# WITH_PKGNG=YES
Переходим в директорию порта, и старым способом удаляем его:
# cd /usr/ports/ports-mgmt/pkg
# make deinstall ===> Deinstalling for ports-mgmt/pkg ===> Deinstalling pkg-1.2.7_2 pkg_delete: file '/usr/local/share/licenses/pkg-1.2.7_2/catalog.mk' doesn't exist pkg_delete: file '/usr/local/share/licenses/pkg-1.2.7_2/LICENSE' doesn't exist pkg_delete: file '/usr/local/share/licenses/pkg-1.2.7_2/BSD2CLAUSE' doesn't exist pkg_delete: '/usr/local/include/pkg.h' fails original MD5 checksum - deleted anyway. pkg_delete: '/usr/local/lib/libpkg.a' fails original MD5 checksum - deleted anyway. pkg_delete: '/usr/local/lib/libpkg.so.1' fails original MD5 checksum - deleted anyway. pkg_delete: '/usr/local/sbin/pkg' fails original MD5 checksum - deleted anyway. pkg_delete: '/usr/local/sbin/pkg-static' fails original MD5 checksum - deleted anyway. pkg_delete: file '/usr/local/share/licenses/pkg-1.2.7_2' doesn't exist pkg_delete: unable to completely remove directory '/usr/local/share/licenses/pkg-1.2.7_2' pkg_delete: couldn't entirely delete package `pkg-1.2.7_2' (perhaps the packing list is incorrectly specified?)
Судя по ошибкам – он действительно был установлен “криво”.
Проверяем:
# pkg info | grep pkg bash: /usr/local/sbin/pkg: No such file or directory
И устанавливаем заново:
# make install clean
Ещё раз проверяем:
# pkg info | grep pkg pkg-1.2.7_3 Package manager pkg_tree-1.1_2 Get a 'graphical' tree-overview of installed packages pkgconf-0.9.5 Utility to help to configure compiler and linker flags
Возвращаем использование pkgng
для установки портов в файле /etc/make.conf
.