Symbolic Link: No such file or directory

I created a symbolic Link from a File at "/opt/bladir/bla" to "bla". So "bla" is now in "/usr/bin/bla". But if I want to call "bla" at terminal, there comes the no such file or directory error. I looked up at "/usr/bin/bla" and the file is linking correctly at "/opt/bladir/bla".

What can be the error?

P.S. here is my terminal "entry": sudo ln -s /opt/bladir/bla bla

Thanks!

€: Problem solved. According to the Feature List, 12.04 should have Multiarch support... 'should'. I got the ia32-libs from synaptic and now the program wents just fine. As it looks, my symbolic links where correct.

Thank you for all the answers!


Solution 1:

EDIT: the solution below does not work. It is apparent that the symbolic link is broken, because file -L cannot open the symbolic link /usr/bin/bla. In this case, do the following:

sudo ln -sf /opt/bladir/bla /usr/bin/bla

using full paths (-f is to force overwriting the previous symbolic link, if there is one).

Hm. I think that the program "bla" may be looking for things that are installed in /opt/bladir and cannot find them. For example, it can be a shell script wrapper around a Java executable, with path relative to current directory: but your current directory is /usr/bin/, and not /opt/bladir/.

If the following works

file -L /usr/bin/bla

...then it is definitely not a problem with your symbolic link.

Check whether "bla" is a shell script that you can modify, take a look inside -- maybe you will find the problem. Possibly, adding /opt/bladir to your PATH would be a better solution.

Solution 2:

Seems that you had a different problem than me since you said,

"I looked up at "/usr/bin/bla" and the file is linking correctly at "/opt/bladir/bla"."

However, for others coming here, I wanted to put ~/julia-1.5.3/bin/julia on PATH via symlink, so I basically did cd /home/username/ and then sudo ln -s julia-1.5.3/bin/julia /usr/local/bin/julia. When I typed julia, it said bash: /usr/local/bin/julia: No such file or directory. When I did ls -all /usr/local/bin, I found the issue; it was linking to the dangling relative directory: julia -> julia-1.5.3/bin/julia.

Anyway, I just had to redo it with the absolute path, and it worked: sudo ln -sf /home/username/julia-1.5.3/bin/julia /usr/local/bin/julia