View on GitHub

IRAF Community Distribution

IRAF maintained by the community

Home | Installation | Packages | X11IRAF | PyRAF | Forum

ecl and cl not found on path

HenryL wrote on Jun 03, 2008

Good to see you still going strong Mike.

I'm doing a new installation of 2.14 on an ubuntu 8.04 64 bit desktop system.
It's my first install of 2.14.
At my age I have probably got something wrong that is really simple, but here goes.

/myplace/iraf/> cl
/iraf/iraf/bin.linux/ecl.e: Command not found.

I've checked for the link;
/iraf/iraf/bin.linux -> /iraf/irafbin/bin.linux

Yet, if I take a look;
> ls -al /iraf/irafbin/bin.linux

1137 -rwxr-xr-x 1 iraf iraf 1159588 2008-01-14 16:24 /iraf/irafbin/bin.linux/cl.e*
1301 -rwxr-xr-x 1 iraf iraf 1328364 2008-01-14 16:24 /iraf/irafbin/bin.linux/ecl.e*

I've checked permissions and ownership all the way up the line. All is owned by iraf:iraf and there is execute permission for the binaries.

I've run 'install' a couple of extra times, and find no errors.

Thanks loads for any help you can give me.

Mike Fitzpatrick wrote on Jun 03, 2008

HI Henry,

Good to hear from you again.

What happens if you try running the /iraf/iraf/bin.linux/ecl.e file directly? A 'command not found' usually indicates the command isn't in your path, but it can also happen when e.g. a symlink to a command file isn't valid, there's a permissions problems further up in the path (e.g. is /iraf world readable, etc), or the command cannot be executed for some reason.

You might also try starting as "cl -old" to fire up the old CL to see if that works. If it does, the problem may just be limited to the ECL binary and if so I'd suspect it's because of a missing termcap/ncurses library (e.g. does "ldd /iraf/iraf/bin.linux/ecl.e" show anything missing?). You can workaround the last problem by getting a static binary from http://iraf.net/ftp/pub/fitz/ecl.e and just replace the binary you have after making it executable. Hope this helps.

Cheers,
-Mike

HenryL wrote on Jun 03, 2008

I recalled this morning that I had a problem like this on another 64 bit installation while trying to run some 32 bit applications.

Running the wonderful 'ldd' command did the trick.
For thos who don't know, this command gives the library dependencies of an executable.

> ldd /iraf/iraf/bin.linux/ecl.e
shows us

linux-gate.so.1 => (0xffffe000)
libncurses.so.5 => /lib32/libncurses.so.5 (0xf7eb8000)
libm.so.6 => /lib32/libm.so.6 (0xf7e93000)
libc.so.6 => /lib32/libc.so.6 (0xf7d43000)
/lib/ld-linux.so.2 (0xf7ef5000)

This gave me the clue that I was missing some 32 bit libraries.

It turns out that on ubuntu, we only have to load up the package 'lib32ncurses5'. This also loads another 32 bit c library.

I believe that I have seen other 64/32 bit postings. I suspect that we may not have loaded every 32 bit library we will need, but so far so good.

[edit]
We found further problems for those using 'xgterm' and 'ds9'.
For these we needed the following ubuntu packages installed:

libx11-dev
ia32-libs

Cheers.

al374 wrote on Jun 03, 2008

Hi my name is alec, and I'm trying to load IRAF on Ubuntu and I believe i have the exact same problem. I'm wondering how you searched for and loaded the extra libraries and files needed to run the cl command, ds9 and xgterm

When I type the command

ldd /iraf/iraf/bin.linux/ecl.e

It tells me..

"not a dynamic executable"

-Thanks for your help

Mike Fitzpatrick wrote on Jun 03, 2008

The 'not a dynamic executable' simply means the binary is linked statically, which it should be. If you go to the $iraf/bin.linux directory and try executing the 'ecl.e' file (e.g. with "./ecl.e") it should either start or give you an error message of some kind (post that)).

If what you're generally seeing is a 'command not found' message then check your path definition in your .cshrc or .bashrc file to be sure it includes the directory where you installed the iraf commands (typically /usr/local/bin). If you're seeing the message as in the original post where the 'cl' command is found but the binary isn't, then there may be something wrong in the way the distribution files were unpacked (i.e. check the $iraf/bin.linux directory to be sure there is something there).

-Mike

al374 wrote on Jun 03, 2008

when I try to execute ecl.e or the cl.e I get

bash: ./ecl.e: No such file or directory

bash: ./cl.e: No such file or directory

Which doesn't make sense, because I can us "ls" and see them there. But is a cshell it says command not found for both.

When I check my path echo $PATH

usr/local/bin is in it.

How exactly do I access my bashrc file?

al374 wrote on Jun 03, 2008

I found my bashrc file, and I pulled it up in gedit.

I don't see anywhere on it usr/local/bin.

Where would I edit it in?

Mike Fitzpatrick wrote on Jun 03, 2008

The PATH may be set in your .profile file (in your unix login directory), but the 'no such file' doesn't make sense. Is it only the ecl/cl binaries you cannot execute, or can you do e.g. "./x_system.e" to start it up (you should see a '>' prompt, type 'bye' to quit it)? Does an "ls -l ecl.e" show the file is executable and not zero-length?

al374 wrote on Jun 03, 2008

x_system.e gives the same error message. (in bash, no file or directory, and in csh no command found)

typing ls -l ecl.e shows

-rwx--x--x 1 359 users 2333921 2006-04-19 15:48 ecl.e

I altered my .profile from

# set PATH so it includes user's private bin if it exists
if [ -d ~/bin ] ; then
PATH=~/bin:"${PATH}"
fi

TO

# set PATH so it includes user's private bin if it exists
if [ -d ~/bin ] ; then
PATH=~/bin:/usr/local/bin:"${PATH}"
fi

Still no change though, same error

Mike Fitzpatrick wrote on Jun 03, 2008

What about the x_system.e binary? If you type the command "file ecl.e" does it show the binary as being an "ELF 32-bit LSB executable" or something else? Which version of IRAF is this, from the date on the binary I'm guessing v2.13????

-Mike

al374 wrote on Jun 03, 2008

Its v2.14. (When I installed it, the documentation read for 2.14.)

file ecl.e shows

ecl.e: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped

I am running on a 64 bit unbuntu computer. I don't know if that will make a difference or not.

Mike Fitzpatrick wrote on Jun 03, 2008

This means it is a dynamic executable and so we may be back to the original problem of the 32-bit libraries not being found. However, an earlier post said the 'ldd' command claimed it was not a dynamic executable, so I'm confused. Does ldd still say it's a static binary?

al374 wrote on Jun 03, 2008

The "ldd" command still says it is not a dynamic executable.

The thing is though, I don't have a /lib32, i have a /lib and /lib64.
I do have a /usr/lib32 which has in it

libfrtbegin.a libg2c.a libg2c.la libg2c.so

I don't know if that information is helpful or not.

Could the call path of ecl.e be looking for a /lib32 directory?

Mike Fitzpatrick wrote on Jun 03, 2008

Try getting the static binary from http://iraf.net/ftp/pub/fitz/ecl.e and install it instead. Even if it works, we'll need to be sure there aren't 32-bit issues with binaries like the x_system.e (which is why I ask).

al374 wrote on Jun 03, 2008

I moved the new ecl.e into iraf/iraf/bin.linux/ and reinstalled IRAF. There is no change.

Unless you have any other help. I feel like I might have loaded the binaries incorrectly or missed some type of step when installing. I'm going to go ahead and re-install the files for IRAF. I appreciate all your help.

Mike Fitzpatrick wrote on Jun 03, 2008

I'm about out of ideas at this point and don't have a system I can check against. If you haven't already seen it, you might also have a look at

http://mjhutchinson.com/journal/2006/11/05/install_iraf_on_ubuntu_edgy_amd64

or otherwise Google around for 'ubuntu iraf'

-Mike

Last post on Jun 03, 2008