LINUX.ORG.RU

Помогите запустить на свежем Debian файл с типом POSIX tar archive (GNU)

 , ,


0

1

Доброго времени суток, сообщество!

Есть довольно старое ПО под линукс, которое ранее прекрасно работало на множестве дистрибутивов. Сейчас я его пытаюсь запустить на относительно свежем debian:

# lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux trixie/sid
Release:	n/a
Codename:	trixie

И получаю вот такой ответ:

# ./bin/ar
bash: ./bin/ar: не удаётся запустить бинарный файл: Ошибка формата выполняемого файла

Проверяю формат файла:

# file ./bin/ar
./bin/ar: POSIX tar archive (GNU)

Вобщем это таровский архив, но который запускается на всех моих системах кроме свежего дебиана (на старых Debian типа jessie и wheezy все прекрасно запускается). На убунте, на последних астра-линукс - тоже запускается. Разархивировать файл не предлагать, это немного сложный пакет, где таких файлов типа этого ./ar много, они все сделаны жесткими ссылками друг на друга, а затем затарированы. Тар сразу говорит что файлы с более чем одной жесткой ссылкой разархивировать он отказывается. Тут вопрос что именно в новом debian запрещает запускать такие файлы, хотя раньше все работало.



Последнее исправление: Zhivoi (всего исправлений: 1)

А каким вообще образом эта хрень должна запускаться? Может, оно нуждается в binfmt_misc?

anonymous
()

Хак, который перестал работать? Можете для интереса скинуть содержимое первого блока?

dd if=/bin/ar count=1 status=none | od -Ax -tx1z -v
undef ★★
()
Ответ на: комментарий от undef

binfmt_support установлен.

Вот блок от подобного другого файла.

$ dd if=./bt21c-ar count=1 status=none | od -Ax -tx1z -v
000000 62 61 67 65 74 2d 74 6f 6f 6c 73 2f 48 2d 6c 69  >baget-tools/H-li<
000010 6e 75 78 38 36 2f 62 74 32 31 63 2f 69 6e 63 6c  >nux86/bt21c/incl<
000020 75 64 65 00 00 00 00 00 00 00 00 00 00 00 00 00  >ude.............<
000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000060 00 00 00 00 30 30 30 30 37 37 37 00 30 30 30 30  >....0000777.0000<
000070 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30  >000.0000000.0000<
000080 30 30 30 30 30 30 30 00 31 33 35 37 34 36 32 36  >0000000.13574626<
000090 34 33 32 00 30 32 32 32 31 30 00 20 32 2f 72 68  >432.022210. 2/rh<
0000a0 37 33 2f 68 6f 6d 65 2f 6f 63 32 2e 30 36 69 2f  >73/home/oc2.06i/<
0000b0 69 6e 63 6c 75 64 65 00 00 00 00 00 00 00 00 00  >include.........<
0000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
0000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
0000e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
0000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00  >.ustar  .root...<
000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00  >.........root...<
000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
0001a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
0001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
0001c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
0001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
0001e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
0001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  >................<
000200
Zhivoi
() автор топика
Ответ на: комментарий от Zhivoi

Тогда смотреть binfmt_misc. Начиная с /proc/sys/fs/binfmt_misc на старой рабочей системе.

undef ★★
()

Старое 32бит, а в новой системе библиотек 32бит нет

futurama ★★★★★
()

Прошу у сообщества прощения, оказалось я сильно затупил. Объясняю как это произошло: Я поставил новый дебиан, скачал с репозитория копию нашего ПО (tools.tar.gz), разархивировал его, прописал пути, и попытался запустить, получил вот такую ошибку как в первом сообщении. Искал, гуглил, ничего не нашел, понял что в тупике и обратился к вам. В итоге идея уважаемого undef, сходить и проверить на старой системе и сработала..

Оказалось что там файлы нормального 32х-битного эльф формата. А при переносе на дебиан - становятся таровскими архивами.

А причиной оказалась моя ленивость, я привык к «mc», просто то что я делал миллион раз до этот - жмякнуть энетер на архив, просто f5, и вуаля (у нас нет Х, поэтому либо консоль, либо мц). Так вот, оказалось что в новом дебиане «mc» с архивами работает крайне криво, разархивирует через жопу и на выходе зажатые tar’ом файлы (чего ниразу небыло на старых системах) на выходе имеют сжатый формат. Архив через мц разархивировался по принципу «gz распаковал, а тар разделил все файлы, но они так тарированными и остались»

В сухом остатке

tar xvf tools.tar.gz 

распаковал все корректно, все файлы имеют elf32 формат, все работает. Сорян что навел тут смуту.

Zhivoi
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.