FreeBSD faz erro - O arquivo 5.19 suporta apenas arquivos mágicos da versão 12. /usr/share/misc/magic.mgc é a versão 8?

0

Estou tendo problemas para reinstalar o ProFTPD em uma instalação do FreeBSD 10.1. O servidor foi recentemente atualizado de 10.0 para 10.1. Quando inicio o processo de limpeza do make install, esses avisos são exibidos pela primeira vez na tela.

===>  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

E depois de algum tempo, o processo de make pára com esse erro:

/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

Parece que o arquivo /usr/share/misc/magic.mgc é de uma versão incorreta? Isso pode acontecer quando eu estou atualizando de 10.0-RELEASE-p12 para 10.1-RELESE-p1?

Se eu executar make install clean da porta ProFTP e desativar o suporte para pcre, o processo e a instalação serão bem-sucedidos. Mas acredito que algo ainda está quebrado?

Minhas habilidades de programação são limitadas e também este nível de erro. Por favor, deixe-me saber se você tem alguma idéia,

Obrigado,

    
por Alldo 12.12.2014 / 16:12

1 resposta

2

A verificação de dependência nos Makefiles de portas usa file(1) para verificar se um arquivo é uma biblioteca compartilhada.

Parece que seu banco de dados mágico, que é o que file usa para determinar que o tipo de arquivo está quebrado. Você pode recriá-lo da seguinte forma, supondo que você tenha o código-fonte do FreeBSD instalado.

Primeiro, crie o banco de dados total em formato de texto;

cat /usr/src/contrib/file/magic/Header \
/usr/src/contrib/file/magic/Localstuff \
/usr/src/contrib/file/magic/Magdir/* >magic

Depois compile-o;

file -C magic

Agora instale ambos no local padrão. Isso precisa ser feito como root;

install -m 644 magic magic.mgc /usr/share/misc/
    
por 28.12.2014 / 16:03