今天在64服务器上:发现好像bash 坏了,用户名前边   用-bash 显示,,前几天就发现这个问题,,,但是当时忙没有解决,,,,,今天来看看到底是怎么回事!

File Exists but... "-bash: No such file or directory"

网上找到一篇文章,是说ubuntu系统的,我现在使用的是RHEL6.1 ,先不说其他的,先实践再说,完了看效果!!

-----------------粘贴网上原文---------原文地址:http://superuser.com/questions/344533/no-such-file-or-directory-error-in-bash-but-the-file-exists

On Ubuntu, I get a 'No such file or directory' error when I try to execute a command.

I have checked with ls -la , the file adb is there and it has 'x' flag So why I am getting a 'No such file or directory'?

~/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
asked Oct 9 '11 at 2:52
michael

1,631133760
 
    
what do you get if you run file adb – jdigital Oct 9 '11 at 5:43
    
i get this '$ file adb adb: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped ' – michael Oct 13 '11 at 3:56

7 Answers

It's an executable file that misses required libraries. Use ldd to see what it needs, then provide these files.

answered Oct 9 '11 at 9:39
Daniel Beck

80.3k9191252
 
10  
i get this '$ ldd ./adb not a dynamic executable' – michael Oct 11 '11 at 0:36

Android SDK requires 32-bit libraries. You probably are on 64-bit and need the 32-bit libs. Here are the troubleshooting directions from developer.android.com

For Ubuntu 13.10 (Saucy Salamander) and above, install the libncurses5:i386libstdc++6:i386, and zlib1g:i386 packages using apt-get:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386

For earlier versions of Ubuntu, install the ia32-libs package using apt-get:

apt-get install ia32-libs
answered Nov 22 '11 at 19:15
hoffmanc

621144
 
2  
damn that installs a lot of stuff. But it works. – Travis R May 1 '12 at 2:43
1  
Like michael, "file" told me it was a 32 bit ELF binary and ldd told me it was not a dynamic executable. Installing these 32 bit libraries fixed the problem. – Eponymous Sep 10 '12 at 19:06
2  
Most misleading error message EVER! o_O – MathematicalOrchid Apr 23 '14 at 16:46
    
re:{Here are the troubleshooting directions from developer.android.com} I don't see any troubleshooting directions there... – ruslo May 18 at 12:58
sudo apt-get install --reinstall libc6-i386

is also need for me.

answered Apr 12 '12 at 14:55
Shawe

411
 
3  
Did you mean that helped? Any idea why? Where did you get this from? – Tom Wijsman Apr 12 '12 at 15:56

I was also seeing the same after switching my machine from 32 bit ubuntu to 64 bit. Bash would report 'No such file or directory' of files that clearly existed with the execute attribute.

sudo apt-get install --reinstall libc6-i386

Fixed the problem. These are the "GNU C Library: 32-bit shared libraries for AMD64"

Seems like this is a bug in bash. Note that I also changed the default shell from dash to bash using

sudo dpkg-reconfigure dash

before I tried running the 32 bit executable. So I'm not sure if the problem would have happened with the default dash shell

answered Jul 24 '13 at 19:01
 

On a fresh Xubuntu 13.10 x64 install I got adb to run with:

sudo apt-get install --reinstall libc6-i386
sudo apt-get install libstdc++6:i386

And also zlib1g:i386 to make aapt work.

and if you still miss something use:

lld adb
answered Oct 21 '13 at 1:49
Stéphane

1536
 
    
This worked great for me, but I had to call sudo dpkg --add-architecture i386; sudo apt-get updateto make libstdc++6:i386 available – nicopico Feb 12 '14 at 15:53

For adb make sure you have the SDK unpacked and have run the SDK Manager to fully populate the SDK. Additionally make sure you have the following installed: A.) JDK 6 or better B.) lib32stdc++6 C.) lib32ncurses5

hoffmanc was the closest to getting it right, I don't really understand why the answer from Daniel Beck is marked as correct when it's not even close and has nothing to do with the problem.

Incidentally, if you try to run a truly non-existant command (i.e.:

# fakecommand

you'll get: fakecommand: command not found, whereas in your situation the output you are seeing is actually coming from adb even though it's not very clear that is the case.

answered Apr 14 '12 at 18:00
Justin Buser

809911
 

Ubunto seems to have some issues with LSB compatibility, so try this if you are on Ubunto

apt-get install lsb

Note that ldd will sort of show that all the libraries are there, but they are not.

usmp-vm-lamp01$ ldd lmgrd
linux-vdso.so.1 => (0x00007fffb33fe000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f10b0a48000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f10b074c000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f10b0535000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f10b0175000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f10aff71000)
/lib64/ld-lsb-x86-64.so.3 => /lib64/ld-linux-x86-64.so.2 (0x00007f10b0c67000)
usmp-vm-lamp01$ locate libpthread.so.0
/lib/x86_64-linux-gnu/libpthread.so.0
usmp-vm-lamp01$ locate libm.so.6
/lib/x86_64-linux-gnu/libm.so.6
usmp-vm-lamp01$ locate /lib64/ld-lsb-x86-64.so.3
usmp-vm-lamp01$
answered Jun 9 '14 at 21:26
Mark Lakata

697614
 
    
I was having this problem with a speech recognition package called Julius. This is what fixed it for me. – Fireandlight27 Oct 16 '14 at 14:16

----------------- -------------------------------------------------

我的操作步骤!

 

702 find / | grep rhel6.1                               找到yum的安装包目录 
703 cd /home/mdsoss/rhel6.1_x64               cd 到该目录 
704 ls
705 cd Packages/                                                                       -----------------------
706 ls                                                                                                        |
707 ls libncurse*                                                                                         |
708 ls *ncurse*                                 |
709 rpm -ivh ncurses-devel-5.7-3.20090208.el6.i686.rpm                               |
710 rpm -ivh ncurses-devel-5.7-3.20090208.el6.x86_64.rpm                          |
711 ls                                                                                     -----------------------------无用
712 ls *stdc++*
713 rpm -ivh libstdc++-devel-4.4.5-6.el6.x86_64.rpm
714 rpm -ivh compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm
715 rpm -ivh libstdc++-4.4.5-6.el6.x86_64.rpm
716 rpm -ivh libstdc++-docs-4.4.5-6.el6.x86_64.rpm                                安装所有的相关包
717 rpm -ivh libstdc++-4.4.5-6.el6.i686.rpm
718 rpm -ivh libstdc++-devel-4.4.5-6.el6.i686.rpm
719* ls
720 ls *ncurse*
721 rpm -ivh ncurses-devel-5.7-3.20090208.el6.i686.rpm
722 rpm -ivh ncurses-libs-5.7-3.20090208.el6.i686.rpm
723 rpm -ivh ncurses-libs-5.7-3.20090208.el6.x86_64.rpm
724 rpm -ivh ncurses-term-5.7-3.20090208.el6.x86_64.rpm                      安装所有的相关包
725 rpm -ivh ncurses-5.7-3.20090208.el6.x86_64.rpm
726 rpm -ivh ncurses-base-5.7-3.20090208.el6.x86_64.rpm
727 rpm -ivh ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
728 rpm -ivh ncurses-devel-5.7-3.20090208.el6.i686.rpm
729 ls *zlib*
730 rpm -ivh zlib-1.2.3-25.el6.x86_64.rpm
731 rpm -ivh zlib-1.2.3-25.el6.i686.rpm
732 rpm -ivh zlib-devel-1.2.3-25.el6.i686.rpm
733 rpm -ivh zlib-devel-1.2.3-25.el6.x86_64.rpm                                安装所有的相关包
734 rpm -ivh jzlib-1.0.7-7.5.el6.x86_64.rpm
735 ls *ia*
736 rpm -ivh yum-plugin-aliases-1.1.30-6.el6.noarch.rpm
737 rpm -ivh libpciaccess-0.10.9-4.el6.x86_64.rpm                        安装所有的相关包------ia相关包没找见  安装pci相关包
738 rpm -ivh libpciaccess-0.10.9-4.el6.i686.rpm
739 ls *libc6*
740 ls *c6*
741 ls *libc*
742 rpm -ivh glibc-2.12-1.25.el6.x86_64.rpm
743 rpm -ivh glibc-devel-2.12-1.25.el6.x86_64.rpm
744 rpm -ivh glibc-2.12-1.25.el6.i686.rpm
745 rpm -ivh glibc-common-2.12-1.25.el6.x86_64.rpm                   安装libc所有的相关包
746 rpm -ivh glibc-devel-2.12-1.25.el6.x86_64.rpm
747 rpm -ivh glibc-devel-2.12-1.25.el6.i686.rpm
748 rpm -ivh glibc-headers-2.12-1.25.el6.x86_64.rpm
749 rpm -ivh glibc-utils-2.12-1.25.el6.x86_64.rpm
750 yum install glibc-utils
751 ls
752 ls *lsb*
753 rpm -ivh redhat-lsb-4.0-3.el6.x86_64.rpm
754 rpm -ivh redhat-lsb-graphics-4.0-3.el6.x86_64.rpm                   安装lsb所有的相关包,怕有一些LSB兼容性的问题
755 rpm -ivh redhat-lsb-printing-4.0-3.el6.x86_64.rpm
756 rpm -ivh redhat-lsb-4.0-3.el6.i686.rpm
757 yum install redhat-lsb-4.0-3.el6.i686
758 ls
759 su - wgj1                                                                                   切换到之前的用户,,一切都变得正常了!!

 

感觉今天有点小成就,又解决了一个问题,积硅步至千里!!!

------------------追更:现在我可能找到了根源,,,之前我在该用户下使用的是 默认的 bash   ----之后在这个环境下我启动了 zookeeper和kafka集群  ,,,之后又在该用户下编译了公司的代码,,,修改为csh,,,,,可能当时是这个原因照成上述情况,,,,之后我在该目录下 安装了flume  在该用户的  .bashrc 里边增加了java的环境变量!后边执行了  flume 或者 kafka bin下边的其他依赖java环境的脚本  命令,,,之后报的这个错,,,建议看完这边文章的朋友,先检查一下自己的 shell   看是不是 shell  引起的冲突!!!

今天又学了一招,牛逼!!!解决"-bash:No such file or directory"问题的更多相关文章

  1. 没必要看源码。。把文档学通就已经牛逼了(我们大多还是在应用层,还达不到研究的程度。附class与examples大全链接)

    [学霸]深圳-鑫 2017/7/11 13:54:07只是学习怎么用QT的话,不用看源码.看帮助文档就很好要学习编码风格与思路,就看看源码 [学神]武汉-朝菌 2017/7/11 13:54:39没必 ...

  2. 感觉还是要学点c才牛逼

    2019-04-06 $gcc -o hello hello.c  //-o选项用来指定输出文件的文件名. gcc *.c -o hello  //使用通配符编译当前目录下的所有c文件 $ gcc - ...

  3. 我喜欢ASP.NET的MVC因为它牛逼的9大理由(转载)

    我很早就关注ASP.NET的mvc的,因为最开始是学了Java的MVC,由于工作的原因一直在做.Net开发,最近的几个新项目我采用了MVC做了,我个一直都非常喜欢.Net的MVC.我们为什么使用MVC ...

  4. 从苦逼到牛逼,详解Linux运维工程师的打怪升级之路

    做运维也快四年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点. 运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感 ...

  5. UVA10200-Prime Time/HDU2161-Primes,例题讲解,牛逼的费马小定理和欧拉函数判素数。

                                                    10200 - Prime Time 此题极坑(本菜太弱),鉴定完毕,9遍过. 题意:很简单的求一个区间 ...

  6. 不用 Notepad++,还有更牛逼的选择!

    来源:oschina.net/news/110987/no-notepad-plus-plus 这两天 Notepad++ 牛逼了,然后引发了大家的关注,具体事件内容请大家自行百度,其实作为文本编辑工 ...

  7. Windows 必备——cmder 一款比cmd牛逼的Win软件

    Windows 必备--cmder 一款比cmd牛逼的Win软件一款Windows环境下的命令行替换工具:cmder这款工具简洁美观易用,支持大部分的linux命令,支持ssh连接Linux,比起自带 ...

  8. 为什么我会认为SAP是世界上最好用最牛逼的ERP系统,没有之一?

    为什么我认为SAP是世界上最好用最牛逼的ERP系统,没有之一?玩过QAD.Tiptop.用友等产品,深深觉得SAP是贵的有道理! 一套好的ERP系统,不仅能够最大程度承接适配企业的管理和业务流程,在技 ...

  9. 最牛逼android上的图表库MpChart(三) 条形图

    最牛逼android上的图表库MpChart三 条形图 BarChart条形图介绍 BarChart条形图实例 BarChart效果 最牛逼android上的图表库MpChart(三) 条形图 最近工 ...

随机推荐

  1. WPF 自定义ListBox

     如题,要实现一个如下的列表,该如何实现? 在设计过程中,会遇到如下问题: 1.ListBox中ListBoxItem的模板设计 2.ListBox中ListBoxItem的模板容器设计 3.List ...

  2. 如何安装虚拟机VMware

    虚拟机可以帮我们在一台电脑上面来模拟出多台电脑,而且可以装不同的系统.下面就教大家怎么装VMware虚拟机 1.下载Vmware安装包,建议下载VMware10 这个有中文版的,其他版本的都是英文的哦 ...

  3. [Django]模型学习记录篇--基础

    模型学习记录篇,仅仅自己学习时做的记录!!! 实现模型变更的三个步骤: 修改你的模型(在models.py文件中). 运行python manage.py makemigrations ,为这些修改创 ...

  4. NOIP模拟赛20161023

    题目名 双色球 魔方 czy的后宫 mex 源文件 ball.cpp/c/pas cube.cpp/c/pas harem.cpp/c/pas mex.cpp/c/pas 输入文件 ball.in c ...

  5. PAT 1041. 考试座位号(15)

    每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座 ...

  6. C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 角色成员功能的改进支持公司加入到角色

    我们公司有1万多个网点,每个网点都可以看成是一个公司,公司对不同的网点有不同的策略,商业逻辑,每个网点的人员也都是在不断变化,全国有接近10万从业人员,当我们设计好业务逻辑程序后,不可能因为这些人员的 ...

  7. Javascript 获取链接(url)参数的方法

    有时我们需要在客户端获取链接参数,一个常见的方法是将链接当做字符串,按照链接的格式分解,然后获取对应的参数值.本文给出的就是这个流程的具体实现方法. 当然,我们也可以用正则直接匹配,文章中也给出了一个 ...

  8. 通过实战理解C语言精要——函数篇

      前言 本篇博客是对C语言函数部分的重点内容和细枝末节通过实战得到的经验的总结精炼,不涵盖C语言函数的全部内容,所有提炼内容均来自提炼与实战,阅读需要对函数部分有一定基础,可用于对C语言函数的理解提 ...

  9. TaskScheduler一个.NET版任务调度器

    TaskScheduler是一个.net版的任务调度器.概念少,简单易用. 支持SimpleTrigger触发器,指定固定时间间隔和执行次数: 支持CronTrigger触发器,用强大的Cron表达式 ...

  10. Matlab2015基本语句语法04

    1. 输入.输出.格式化输出 1) 读入数据:input >>number: num=input('Give me your number: '); >>string: str ...