В Ubuntu при попытке выполнить команду появляется ошибка «Нет такого файла или каталога».
Я проверил ls -la
, файл adb
там, и у него есть флаг 'x' Так почему я получаю «Нет такого файла или каталога»?
~/Programs/android-sdk-linux_x86/platform-tools$ ./adb
bash: ./adb: No such file or directory
~/Programs/android-sdk-linux_x86/platform-tools$ ls -la
total 34120
drwxrwxr-x 3 silverstri silverstri 4096 2011-10-08 18:50 .
drwxrwxr-x 8 silverstri silverstri 4096 2011-10-08 18:51 ..
-rwxrwxr-x 1 silverstri silverstri 3764858 2011-10-08 18:50 aapt
-rwxrwxr-x 1 silverstri silverstri 366661 2011-10-08 18:50 adb
-rwxrwxr-x 1 silverstri silverstri 906346 2011-10-08 18:50 aidl
-rwxrwxr-x 1 silverstri silverstri 328445 2011-10-08 18:50 dexdump
-rwxrwxr-x 1 silverstri silverstri 2603 2011-10-08 18:50 dx
drwxrwxr-x 2 silverstri silverstri 4096 2011-10-08 18:50 lib
-rwxrwxr-x 1 silverstri silverstri 14269620 2011-10-08 18:50 llvm-rs-cc
-rwxrwxr-x 1 silverstri silverstri 14929076 2011-10-08 18:50 llvm-rs-cc-2
-rw-rw-r-- 1 silverstri silverstri 241 2011-10-08 18:50 llvm-rs-cc.txt
-rw-rw-r-- 1 silverstri silverstri 332494 2011-10-08 18:50 NOTICE.txt
-rw-rw-r-- 1 silverstri silverstri 291 2011-10-08 18:50 source.properties
file adb
Ответы:
Это исполняемый файл, в котором отсутствуют необходимые библиотеки. Используйте,
ldd
чтобы увидеть, что ему нужно, затем предоставьте эти файлы.источник
Android SDK требует 32-битных библиотек. Вы, вероятно, на 64-битной и вам нужны 32-битные библиотеки. Вот инструкции по устранению неполадок от developer.android.com
Для Ubuntu 13.10 (Дерзкий Salamander) и выше, установите
libncurses5:i386
,libstdc++6:i386
иzlib1g:i386
пакеты с помощью APT-GET:Для более ранних версий Ubuntu установите
ia32-libs
пакет, используя apt-get:источник
Это также нужно для меня.
источник
Я также видел то же самое после переключения моей машины с 32-битной Ubuntu на 64-битную. Bash сообщит «Нет такого файла или каталога» файлов, которые явно существуют с атрибутом execute.
Исправлена проблема. Это «Библиотека GNU C: 32-битные разделяемые библиотеки для AMD64»
Похоже, это ошибка в Bash. Обратите внимание, что я также изменил оболочку по умолчанию с тире на bash, используя
прежде чем я попытался запустить 32-битный исполняемый файл. Так что я не уверен, что проблема произошла бы с панелью инструментов по умолчанию
источник
На новой установке Xubuntu 13.10 x64 я
adb
запустил:А также
zlib1g:i386
сделатьaapt
работу.и если вы все еще что-то упускаете, используйте:
источник
sudo dpkg --add-architecture i386; sudo apt-get update
чтобы сделать libstdc ++ 6: i386 доступнымldd adb
Для adb убедитесь, что вы распаковали SDK и запустили SDK Manager, чтобы полностью заполнить SDK. Кроме того, убедитесь, что у вас установлено следующее: A.) JDK 6 или лучше B.) lib32stdc ++ 6 C.) lib32ncurses5
hoffmanc был самым близким к получению этого права, я не очень понимаю, почему ответ от Даниэля Бека помечается как правильный, когда он даже не близок и не имеет никакого отношения к проблеме.
Кстати, если вы попытаетесь запустить действительно несуществующую команду (то есть:
вы получите: fakecommand: command not found, тогда как в вашей ситуации вывод, который вы видите, на самом деле идет от adb, хотя не совсем понятно, в чем дело.
источник
Ubunto, похоже, имеет некоторые проблемы с совместимостью LSB, поэтому попробуйте это, если вы находитесь на Ubunto
Обратите внимание, что ldd будет показывать, что все библиотеки есть, но их нет.
источник