FreeBSD make error File 5.19 поддерживает только магические файлы версии 12. /usr/share/misc/magic.mgc — версия 8.

У меня возникли проблемы с переустановкой ProFTPD на FreeBSD 10.1. Сервер обновлен с 10.0 до 10.1. Когда я запускаю процесс make install clean, эти предупреждения сначала отображаются на экране.

===>  proftpd-1.3.5_4 depends on shared library: libpcre.so
/usr/share/misc/magic, 93: Warning: Printf format `l' is not valid for type `lelong' in description `, %ld pages'
...
/usr/share/misc/magic, 15118: Warning: Printf format `l' is not valid for type `belong' in description `Volume %ld,'
/usr/share/misc/magic, 15609: Warning: Current entry does not yet have a description for adding a MIME type
file: File 5.19 supports only version 12 magic files. `/usr/share/misc/magic.mgc' is   version 8
[: =: unexpected operator
- not found

И через какое-то время процесс make останавливается с этой ошибкой:

/bin/ln -s libpcre.so.1 /usr/ports/devel/pcre/work/stage/usr/local/lib/libpcre.so.3
====> Compressing man pages (compress-man)
===>  Installing for pcre-8.35_2
===>  Checking if pcre already installed
===>  pcre-8.35_2 is already installed
You may wish to ``make deinstall'' and install this port again
by ``make reinstall'' to upgrade it properly.
If you really wish to overwrite the old port of pcre
without deleting it first, set the variable "FORCE_PKG_REGISTER"
in your environment or the "make install" command line.
*** Error code 1
Stop.
make[3]: stopped in /usr/ports/devel/pcre
*** Error code 1

Stop.
make[2]: stopped in /usr/ports/devel/pcre
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/ftp/proftpd
*** Error code 1

Stop.
make: stopped in /usr/ports/ftp/proftpd

Кажется, файл /usr/share/misc/magic.mgc имеет неправильную версию? Это могло произойти при обновлении с 10.0-RELEASE-p12 до 10.1-RELESE-p1?

Если я запустил make install clean порта ProFTP и отключил поддержку pcre, процесс и установка завершатся успешно. Но я верю, что что-то все же сломалось?

Мои навыки программирования ограничены, а также этот уровень ошибок. Пожалуйста, дайте мне знать, если у вас есть какие-либо идеи,

Спасибо,


person Alldo    schedule 12.12.2014    source источник
comment
Этот вопрос здесь не по теме. Он принадлежит сайту суперпользователя.   -  person Hristo Iliev    schedule 12.12.2014
comment
[: =: unexpected operator — синтаксическая ошибка оболочки. Что-то не так в любом сценарии, вызывающем это. - not found, вероятно, связано с этой первой ошибкой (надеюсь), но означает, что что-то еще в сценарии не так. Вам нужно выяснить, какая версия file у вас должна быть и какая версия магического файла на данный момент.   -  person Etan Reisner    schedule 12.12.2014


Ответы (2)


Во-первых, proftpd 1.3.5 доступен в виде бинарного пакета, его гораздо проще установить таким образом (pkg install proftpd).

Второе - сначала это выглядело как баг порта; как сказал Итан, есть синтаксическая ошибка оболочки (что-то вроде «[ x == y ]» вместо «[ x = y ]»); они распространены, и порты содержат исправления для их исправления. Однако существует бинарный пакет, и пакеты создаются из портов («создать пакет»), поэтому порт, очевидно, работает на машинах для сборки пакетов. Так что, вероятно, это что-то конкретное для вашей среды.

Если вы действительно хотите собрать из портов, попробуйте следующее: сначала переустановите pcre. По какой-то причине его пришлось пересобрать, но установить не удалось, так как он уже установлен. Итак, «cd /usr/ports/*/pcre && make clean all deinstall reinstall». Это должно избавиться от второй ошибки. Затем вернитесь к "../*/proftpd" и посмотрите, как далеко он зайдет.

Но на самом деле, я бы сначала попробовал пакеты. Они не имеют ничего общего со старой системой pkg_add и действительно хороши.

person Edward Tomasz Napierala    schedule 13.12.2014

freebsd-update diff для FreeBSD-SA-14:28.file кажется неверным и ломает файл(1).

Поэтому просто pkg install file будет обходным путем.

person naruse    schedule 18.12.2014