То, что последняя строка в файле не имеет новой строки (\n)
Относительно затмения, не бывшего способного найти adb
, и т.д., это, потому что без 32-разрядных общих библиотек должен был выполнить их в системе, они не исполняемый файл.
Относительно 32-разрядных библиотек ситуация довольно проста: просто необходимо установить соответствующее 32-разрядное, освобождает. На 64-разрядной мягкой фетровой шляпе 17 установок, которые я имею здесь, основные 64-разрядные библиотеки, находятся в/usr/lib64, и дополнительный 32-разрядный освобождает, находятся в/usr/lib. Так, если я звоню ldd
на на sdk/platform-tools/adb:
linux-gate.so.1 => (0xf7791000)
librt.so.1 => /lib/librt.so.1 (0xf776c000)
libncurses.so.5 => /lib/libncurses.so.5 (0xf7747000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf772d000)
libstdc++.so.6 => /lib/libstdc++.so.6 (0xf7644000)
libm.so.6 => /lib/libm.so.6 (0xf7618000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf75fb000)
libc.so.6 => /lib/libc.so.6 (0xf7449000)
/lib/ld-linux.so.2 (0xf7792000)
libdl.so.2 => /lib/libdl.so.2 (0xf7444000)
libtinfo.so.5 => /lib/libtinfo.so.5 (0xf7424000)
Заметьте, что они - все в / lib, который является символьной ссылкой на/usr/lib (не/usr/lib64). Посмотрите:
»file /lib/libc.so.6
/lib/libc.so.6: symbolic link to `libc-2.15.so'
»file /lib/libc-2.15.so
/lib/libc-2.15.so: ELF 32-bit LSB shared object [...]
32-разрядная стандартная библиотека для C. То, что можно сделать, проходят 32-разрядные sdk инструменты и проверку для наблюдения то, против чего они связаны с ldd
. У меня нет примера под рукой, но если что-то отсутствует ldd
отчеты что-то как:
libc.so.6 => ??????
Во-первых, tho, чтобы ldd работал, Вам будет нужен 32-разрядный загрузчик, который идет с 32-разрядным glibc (без этого, ldd назовет его неисполняемым файлом и ничего не скажет Вам):
»yum search glibc
glibc.i686 : The GNU libc libraries
glibc.x86_64 : The GNU libc libraries
Это является усеченным, но x86_64 пакет - то, что Вы уже имеете; i686 является 32-разрядной версией. Поэтому просто установите это.
Вам не нужен ни один из 'devel' пакетов, поскольку ничто не компилируется. Кроме того, образованные предположения и yum whatprovides
/ yum search
должен помочь (рассмотрение списка для adb, существуют также 32-разрядные версии lib C++, ncurses, pthreads, и я немного вещей, которые я не знаю).
Быстрая подсказка об использовании whatprovides
:
»yum whatprovides libtinfo
No matches found.
»yum whatprovides libtinfo.so.5
[2 matches]
»yum whatprovides "*/libtinfo.so.5"
[4 matches]
;)
Необходимо установить 32 бита glibc:
# yum install glibc.i686
Это удаляет введение в заблуждение 'никакого такого файла или каталога' сообщение при попытке выполнить двоичный файл на 32 бита. С этим система Fedora на 64 бита способна к выполнению двоичных файлов на 32 бита.
Это также удаляет вводящее в заблуждение 'не динамическое исполняемое' сообщение ldd
при вызове ldd
на динамическом исполняемом файле на 32 бита.
Теперь необходимо установить недостающие библиотеки на 32 бита двоичные файлы под adt-bundle-linux/sdk/platform-tools
связаны против:
# yum install zlib.i686 libstdc++.i686 ncurses-libs.i686 libgcc.i686
Вот именно.
Некоторый фон, как получить вышеупомянутые имена пакета. Например, смотря на вывод
$ ldd adb
linux-gate.so.1 => (0xf774f000)
librt.so.1 => /lib/librt.so.1 (0xf7725000)
libncurses.so.5 => not found
libpthread.so.0 => /lib/libpthread.so.0 (0xf770b000)
libstdc++.so.6 => not found
libm.so.6 => /lib/libm.so.6 (0xf76df000)
[..]
средства, это 2 библиотеки все еще отсутствуют для adb.
Для каждого 'не найденного' у нас есть к поиску имя пакета, например:
$ yum whatprovides '*libstdc++.so.6'
[..]
libstdc++-4.7.2-2.fc17.i686 : GNU Standard C++ Library
[..]
Теперь мы берем имя основания корпуса и добавляем '.i686' к нему для получения версии на 32 бита.
glibc.i686
позволяет ldd
работать правильно с i386 двоичными файлами.
– Krystian
22.01.2018, 15:08
Можно установить необходимый пакет с:
sudo yum install redhat-lsb.i686
ldd
. По причине: Я не убежден, звоняfile
на версии комплектаadb
дисплеи: ELF 32-разрядный исполняемый файл LSB, Intel 80386 - ничто, чтобы сделать с эмуляцией ARM - и/usr/bin/adb (от фетрового пакета инструментов андроида) не на самом деле доступно как ELF 64-разрядный исполняемый файл LSB, x86-64. – maxschlepzig 07.12.2012, 17:16adt-bundle-linux/sdk/platform-tools/adb
это отображает 'не динамический исполняемый файл'. Относительно ПУТИ - это не проблема - полностью определение пути, например../adt-bundle-linux/sdk/platform-tools/adb
в терминале не работает (результаты в 'zsh: никакой такой файл или каталог [..]'). – maxschlepzig 07.12.2012, 17:24