LINUX.ORG.RU

Аналог пакету File


0

1

Пытаюсь собрать LFS, дошел до File-5.05, при компиляции вылетело:

Making all in magic
make[2]: Entering directory `/mnt/lfs/sources/file-5.05/magic'
../src/file -C -m magic
make[2]: *** [magic.mgc] Segmentation fault
make[2]: Leaving directory `/mnt/lfs/sources/file-5.05/magic'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mnt/lfs/sources/file-5.05'
make: *** [all] Error 2
Попробовал более старые версии - та же ошибка. Существуют ли аналоги File?

Судя по тому, что говорит Гугль, такая ошибка у некоторых возникает, но непонятно, отчего. Во многих дистрибутивах собирают этот file. Да и я сам собирал не так давно. Ищите ошибку у себя. Как вам уже подсказали в Development, начните с strace.

Можете еще почитать вот это, например: https://bugs.gentoo.org/126012?id=126012

proud_anon ★★★★★ ()

Может быть, использовать GNU Dedugger?

anarquista ★★★★★ ()

Дело в том, что апгрейд 5.04->5.05 и выше сложен из-за того, что поменялся формат magic'ов. Да и ABI похоже тоже. Я «бутстрапил» в два этапа:

+ На первом получаем самый базовый-пребазовый magic и работающий новый file. Для стейджа 1 патчим сорцдерево так:

sed -i 's:-C -m magic:-C -m magic/magic:' ./magic/Makefile.am
Ну и autoreconf затем, конечно.

++ Теперь, установив новый рабочий file, можно собирать обычным способом, генерируя все мейджики «правильным» преждесобранным file.

powerpc ()
Ответ на: комментарий от powerpc

Вот что получилось:

lfs@debian:/mnt/lfs/sources/file-5.05$ sed -i 's:-C -m magic:-C -m magic/magic:' ./magic/Makefile.am
lfs@debian:/mnt/lfs/sources/file-5.05$ autoreconf --force
lfs@debian:/mnt/lfs/sources/file-5.05$ ./configure --prefix=/tools
_тут_все_нормально_
lfs@debian:/mnt/lfs/sources/file-5.05$ make
make  all-recursive
make[1]: Entering directory `/mnt/lfs/sources/file-5.05'
Making all in src
make[2]: Entering directory `/mnt/lfs/sources/file-5.05/src'
  CC     magic.lo
  CC     apprentice.lo
  CC     softmagic.lo
  CC     ascmagic.lo
  CC     encoding.lo
  CC     compress.lo
  CC     is_tar.lo
  CC     readelf.lo
  CC     print.lo
  CC     fsmagic.lo
  CC     funcs.lo
  CC     apptype.lo
  CC     cdf.lo
  CC     cdf_time.lo
  CC     readcdf.lo
  CC     strlcpy.lo
  CC     strlcat.lo
  CCLD   libmagic.la
  CC     file.o
  CCLD   file
make[2]: Leaving directory `/mnt/lfs/sources/file-5.05/src'
Making all in magic
make[2]: Entering directory `/mnt/lfs/sources/file-5.05/magic'
../src/file -C -m magic/magic
make[2]: *** [magic.mgc] Illegal instruction
make[2]: Leaving directory `/mnt/lfs/sources/file-5.05/magic'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/mnt/lfs/sources/file-5.05'
make: *** [all] Error 2
lfs@debian:/mnt/lfs/sources/file-5.05$ 

IceApe ()
Ответ на: комментарий от IceApe

SIGILL? Это странно. Вероятность 95%, что ты запорол тулчейн. Я бы запустил таки gdb ../src/file. Или взял бы file v5.07 для начала. Вот багтрекер file: http://bugs.gw.com/, желательно бы и им отписать.

powerpc ()
Ответ на: комментарий от powerpc

config.log http://pastebin.com/KvTtUeG1 [hr] gdb ./src/file:

root@debian:/mnt/lfs/sources/file-5.05# gdb ./src/file
GNU gdb (GDB) 7.2-debian
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
"/mnt/lfs/sources/file-5.05/src/file": not in executable format: File format not recognized
(gdb) 

IceApe ()
Ответ на: комментарий от IceApe

Так, в логе не вижу ничего ужасного. Но это

«/mnt/lfs/sources/file-5.05/src/file»: not in executable format: File format not recognized

весьма странно. Ты тарболы тягаешь с ftp.astron.com/pub/file, надеюсь?

Вообще, скорее всего дело в том, что у тебя в используемом тулче не установлен libtool.

powerpc ()
Ответ на: комментарий от IceApe

Отлично! А так до меня дошло: src/file — это шеллскрипт. И, похоже, реально любит libtool. А бинарник образуется в ./src/.libs/file, о как.

powerpc ()
Ответ на: комментарий от anonymous

Так у тебя поди полный набор всех тулзов установлен, и libtool в том числе. А эти LFS-ники зачем-то собирают File почти в самом начале.

powerpc ()
Ответ на: комментарий от powerpc

> Так у тебя поди полный набор всех тулзов установлен

Насколько полный не знаю.

и libtool в том числе

libtool стоит, да.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.