Других причин для засовывания в официальный 64-битовый ADT bundle _динамически слинкованных 32-битовых программ_ я не вижу.
Началось с того, что adb тупо не запускался, ругаясь на отсутствующую библиотеку:
$ adb
adb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
Поставил libncurses, убедился, что ldconfig его видит:
$ /sbin/ldconfig -p | grep ncurses
libncursesw.so.5 (libc6,x86-64) => /lib/x86_64-linux-gnu/libncursesw.so.5
libncurses.so.5 (libc6,x86-64) => /lib/x86_64-linux-gnu/libncurses.so.5
Ан фиг, adb всё равно не запускается. Пригляделся повнимательнее..
$ ldd `which adb`
linux-gate.so.1 => (0xf77c4000)
librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf77a1000)
libncurses.so.5 => not found
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf7787000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf769b000)
libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xf7675000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7658000)
libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xf74f5000)
libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xf74f0000)
/lib/ld-linux.so.2 (0xf77c5000)
Опаньки. Оно в натуре 32-битовое..
$ file /usr/local/src/android/adt-bundle-linux-x86_64-20130514/sdk/platform-tools/adb
/usr/local/src/android/adt-bundle-linux-x86_64-20130514/sdk/platform-tools/adb: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped
И эту хрень они называют _bundle_. В списке системных требований присутствует только “64-bit distributions must be capable of running 32-bit applications”, ни слова про разделяемые библиотеки нет.
Оригинал этой записи в личном блоге.
Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме.