我正在尝试从 ubuntu 11.10 运行一个可执行文件,并且这发生在几个不同的文件上。
我尝试运行该文件,它显示“没有这样的文件或目录”
它不是文件,因为该文件只是从一个包中下载的,并且确切的文件在我的三个朋友的计算机上运行良好。我最近重新安装了 ubuntu 11.10 的新分区。
这不是权限问题,因为我已尝试以 sudo 身份运行它,并尝试过 chmod,并且编辑了实际文件的权限以授予自己权限并允许它作为可执行文件运行。
我唯一的猜测是 Ubuntu 中某个地方的某些深层设置被意外激活,导致我无法运行可执行文件。我在很多地方都看到过同样的问题,但从未得到满意的答案。有人知道为什么 ubuntu 会这样做吗?
请尽快提供帮助,我今天需要运行这个程序。这是一个主要的 ubuntu 问题,导致我无法在这个操作系统上做任何事情。
我正在运行的代码是一个简单的 *.sh 函数。我导航到文件夹并输入 ./start.sh
并且它可以正常执行文件。该文件调用该目录中名为 bin 的文件夹中的另一个可执行文件。在执行此操作之前,它将 bin 添加到 $PATH,因此这不是问题。但是当它尝试调用该可执行文件时,它说找不到该文件。这是 start.sh 的代码
#!/bin/sh
SDKPATH=$(dirname $(readlink -f $0))
UOBPATH=$SDKPATH/share/uobjects/
USPATH=$SDKPATH/share/scripts/
# Edit this script as you want :)
SCRIPT=balltracking.u
$SDKPATH/bin/urbi-launch --start $UOBPATH/* -- --host 0.0.0.0 --port 54000 -f
$USPATH/$SCRIPT
然而,不仅仅是这个文件。我进入了其他几个文件,并尝试以类似的方式运行可执行文件,但出现了同样的错误。同样,这些相同的文件可以在其他计算机上使用相同的命令正常执行。唯一的区别是他们安装了 WUBI 而我正在使用分区。我不知道问题可能是什么。
答案1
假设两者都urbi-launch
存在balltracking.u
问题,我建议您对这两个脚本都尝试一下。首先转到脚本所在的目录。执行ls -Ll <script>
并确认脚本授予您执行权限。Ll 是大写和小写的“el”,它授予您权限并在脚本是链接的情况下跟踪符号链接。这可确保您获得脚本的权限,而不会意外链接。
如果权限看起来正确,则尝试通过将每个脚本作为命令调用来运行它./<script>
。
如果成功,那么这不是 Ubuntu 的问题,脚本可以正确执行。如果执行不正确,请提供权限列表和命令结果,id
以便我们了解您的问题。
如果脚本在命令行中运行,那么start.sh
问题就出在您的脚本上。让它回显路径,这样您就可以看到实际使用的是什么。另一种缩小路径设置范围的方法是将其他每个脚本的显式路径硬编码到 start.sh 中。如果这种方法有效,那么问题肯定出在您的start.sh
脚本上以及您如何确定路径。
最后,我强烈建议您在脚本中采用以下 stype 作为变量名,使用${variable}
而不是$variable
因为添加花括号可以保证不会意外地将其他字符添加到变量名中,从而创建没有值的新变量。
答案2
也许您的可执行文件是 32 位的,并且您没有安装 32 位库。
使用以下命令安装它们:
sudo apt-get install ia32-libs