LINUX.ORG.RU

Выудить установленное приложение из готовой сборки linux

 , ,


0

2

Вот имеется готовый загрузочный образ, в нем имеется приложение. Под шынду оно и так распространяется, а под линукс версия только в таком лайв-образе. Хотелось бы его как-то выудить и перенести (пусть и в контейнере например, т.к допускаю проблемы с разными версиями библиотек) в свою систему. Как это правильно сделать? ldd пробовал, но запутался как правильно все библиотеки достать и создать контейнер - я не так давно линуксом пользуюсь, и во многом еще туплю.

Ответ на: комментарий от anonymous
strace ./product.bin 
execve("./product.bin", ["./product.bin"], 0x7ffcfc6cc930 /* 28 vars */) = 0
brk(NULL)                               = 0x1fa5000
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffd539d4430) = -1 EINVAL (Недопустимый аргумент)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=269807, ...}) = 0
mmap(NULL, 269807, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fc55e80f000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/tls/x86_64/x86_64/libicu38.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/lib/tls/x86_64/x86_64", 0x7ffd539d3670) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/lib/tls/x86_64/libicu38.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/lib/tls/x86_64", 0x7ffd539d3670) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/lib/tls/x86_64/libicu38.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/lib/tls/x86_64", 0x7ffd539d3670) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/lib/tls/libicu38.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/lib/tls", 0x7ffd539d3670)    = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/lib/x86_64/x86_64/libicu38.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/lib/x86_64/x86_64", 0x7ffd539d3670) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/lib/x86_64/libicu38.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/lib/x86_64", 0x7ffd539d3670) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/lib/x86_64/libicu38.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/lib/x86_64", 0x7ffd539d3670) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/usr/lib/libicu38.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/lib", {st_mode=S_IFDIR|0755, st_size=212992, ...}) = 0
writev(2, [{iov_base="./product.bin", iov_len=13}, {iov_base=": ", iov_len=2}, {iov_base="error while loading shared libra"..., iov_len=36}, {iov_base=": ", iov_len=2}, {iov_base="libicu38.so", iov_len=11}, {iov_base=": ", iov_len=2}, {iov_base="cannot open shared object file", iov_len=30}, {iov_base=": ", iov_len=2}, {iov_base="No such file or directory", iov_len=25}, {iov_base="\n", iov_len=1}], 10./product.bin: error while loading shared libraries: libicu38.so: cannot open shared object file: No such file or directory
) = 124
exit_group(127)                         = ?
linux-vdso.so.1 (0x00007ffc8e5db000)
	libicu38.so => not found
	liblibcrypto10.so => not found
	libthread_pool.so => not found
	libgc.so => /usr/lib/libgc.so (0x00007f00c7a5d000)
	libkb_link.so => not found
	libcore_workers_shared_context.so => not found
	libfox.so => not found
	liblibssl10.so => not found
	libsmb_supp.so => not found
	liblx_supp.so => not found
	libgraphapi.so => not found
	libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f00c7a3a000)
	librt.so.1 => /usr/lib/librt.so.1 (0x00007f00c7a2d000)
	libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f00c7845000)
	libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f00c7840000)
	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f00c7826000)
	libc.so.6 => /usr/lib/libc.so.6 (0x00007f00c7663000)
	/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f00c7b0d000)
	libm.so.6 => /usr/lib/libm.so.6 (0x00007f00c751d000)

Окай, я это все вытащить из дистра могу, вопрос как это правильно упаковать в контейнер\«portable» приложение, дабы не мучиться подменой либ и их поиском вообще. Я уже распаковал рамдиск дистра,пофайлово вытащить могу все что он попросит уже готовое, чрутом не получается запустить.

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

Связаться с разработчиком и поговорить об этом с ним? Предложить помощь по более правильном пути опакечивания и распространения.

deep-purple ★★★★★
()
Ответ на: комментарий от anonymous

но это я все запускал в своей хост системе, под виртуалкой не могу выхлоп сохранить - текст не копируется, перенаправить в файл, но достать его не знаю как потом т.к оно вроде с сетью не хочет дружить.

Dark_Snow
() автор топика
Ответ на: комментарий от deep-purple

даа, крупная контора будет помогать выудить их платный софт) акронис это обычный, который диск директор, не помогут они иначе б давно выпустили готовый дистр под линукс

Dark_Snow
() автор топика
Ответ на: комментарий от deep-purple

естественно их хотелка - кто коммерческий софт просто так раздаст, плюс иначе нужно поддерживать зоопарк дистров с разными версиями софта, а не просто готовую сборку давать грузить. я же просто хочу красноглазия и linuxway)

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

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

Dark_Snow
() автор топика

Вытащи бинарник (плюс то, что к нему явно относится поищи через поиск). Запускай на своей системе, он будет ругаться каких библиотек не хватает. Тут же забирай их из виртуалки. Ты говоришь там не работает интеграция, можно через яндекс облако, если интернет работает. Но скорее всего ничего не получится. Приложение наверняка собрано с другими системными библиотеками, чем у тебя, тот же glibc. А если запустится, то будет глюкота, что-нибудь не будет работать или даже данные запортит.

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

а в чем сакральный смысл

  • запускать акронис на живой системе
  • вообще париться о том, как он запускается, если он нужен раз в десятилетие?
anonymous
()
Ответ на: комментарий от anonymous

не интеграция, а сеть не подгружается, какой яндекс диск, как ты его туда поставишь то? была бы сеть, я бы через телнет\ssh забрал бы

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

представь себе, я к своему пк часто другие харды (и свои и клиентов) подключаю и размечаю. гпартед всем хорош, но с нтфс он работает пипец как долго в плане работы с имеющимися разделами

Dark_Snow
() автор топика
Ответ на: комментарий от turtle_bazon

не получается чрут, пишет пермишн денайд что на инит в корне, что на любой пинарник из того же /бин. псевдофс монтирую\биндю в чрут

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

Зато вот расковырять проприетарную софтину и пытаться запускать её в совершенно неподдерживаемом режиме с риском похерить данные клиента - это пипец как круто, быстро и профессионально!

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

бы его как-то выудить и перенести (пусть и в контейнере например, т.к допускаю проблемы с разными версиями библиотек) в свою систему. Как это правильно сделать? ldd пробовал, но запутался как пр

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

Yes

т.к допускаю проблемы с разными версиями библиотек) в свою систему. Как это правильно сделать? ldd пробовал, но запутался как пр pornjk.com redtube porn600.me

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

На съемный носитель, внешний винт. А образ зашифрован что-ли, почему нельзя распаковать архиватором?

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

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

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

при чем тут клиенты? для себя хотя бы попробовать, изначально это just4fun, а потом уже посмотрим. То есть ставить на живую шынду нормально, а поставить на живой линукс это пестец?

Dark_Snow
() автор топика
Ответ на: комментарий от infomeh

медленно работает с нтфс разделами, особенно при переносе\ресайзе раздела

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

Ну не знаю, я и на смонтированной корневой файловой системе увеличивал ext4 с помощью gparted, проблем не было.

infomeh ★★
()
Ответ на: комментарий от Dark_Snow

Подробнее как это произошло, какая ошибка? Я много раз и увеличивал и уменьшал. Причем при уменьшении он файлы перемещал для расчистки места. Ну и Gparted это только GUI.

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

Я знаю, что приприетарные утилиты могут запортить ext4, если обращаются с ним как с ext3, так как ext4 мало кто поддерживает, особенно современные ревизии.

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

Ну по сути это не гпартед виноват - просто ноут в спячку ушел и отрубил юсб карман (хотя не должен был по идее, но этот глюк со спячкой позже выловлю) во время операции перемещения файлов\секторов, fsck.ext4 не помог, инфа похерена, поэтому сейчас ищу варианты восстановить хотя-бы нужные файлы, а коллекцию сериалов перекачаю просто, это не проблема. Короче гпартед мне еще пока не подвластен - либо он кривой немного таки, либо у меня дрова на руки хоть и стоят, но с багами (что более вероятно, после 15 лет на шынде только полтора года как с линуксом обживаюсь)

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

Ох уж эти автоотключения. Я читал о проблеме, что USB устройство отвалилось, код раздела перешел к другому и другой ни в чем не повинный раздел начал стираться. Осторожнее надо с этим.

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