This is a discussion on "No such file or directory" message. within the Slackware Linux Support forums, part of the Unix Operating Systems category; --> Hi. I have updated my system to Slackware 9.1 with kernel 2.4.22 and glibc-2.3.2 The old installation was Slackware ...
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| Hi. I have updated my system to Slackware 9.1 with kernel 2.4.22 and glibc-2.3.2 The old installation was Slackware 7 with Kernel 2.2.13 and glibc-2.1.2 Most of my apps transferred wothout problems but one gives the message "No such file or directory". Even if I get it sorted out I am curious about this message. It occurrs even if I attempt to run the binary with the command ./app-prog. It is not a startup script - app-prog in this case is the principal binary, In an editor ELF appears in the first few bytes, and it is about 1 Meg in size. If the problem is a missing library shouldn't I get a more explicit message? Help appreciated. |
| |||
| Michael Clarke <mclarke@online.ie> wrote: > Most of my apps transferred wothout problems but one gives the message > "No such file or directory". > Even if I get it sorted out I am curious about this message. It occurrs > even if I attempt to run the binary with the command ./app-prog. Normally it means that an essential shared library, i.e. libc, cannot be found, and even the library LOADER isn't there. For instance any "ELF - non GLIBC" applications will do this if you haven't got the libc5 and ldso packages (out of pasture in SW 8.0) installed. iThis is the loader that is needed for libc.so.5 executables: lrwxrwxrwx 1 root root 13 Jul 28 14:04 ld-linux.so -> ld-linux.so.1 lrwxrwxrwx 1 root root 17 Jul 28 14:04 ld-linux.so.1 -> ld-linux.so.1.9.9 -rwxr-xr-x 1 root root 22404 Aug 22 1999 ld-linux.so.1.9.9 Current glibc uses the .2 version of the loader. -- ************************************************** ****************** ** Eef Hartman, Delft University of Technology, dept. EWI/TW ** ** e-mail: E.J.M.Hartman@math.tudelft.nl, fax: +31-15-278 7295 ** ** snail-mail: P.O. Box 5031, 2600 GA Delft, The Netherlands ** ************************************************** ****************** |
| |||
| Thank you. I owe myself a study of libraries; linkers; loaders; and any other `l's needed to run applications. I expect the Info documentation gives thorough coverage of the subject. If you know of a good tutorial, let me know. My main skill is hardware design. I am proficient in C but my knowledge of OS technology is rudimentary. Eef Hartman wrote: > Michael Clarke <mclarke@online.ie> wrote: > >>Most of my apps transferred wothout problems but one gives the message >>"No such file or directory". >>Even if I get it sorted out I am curious about this message. It occurrs >>even if I attempt to run the binary with the command ./app-prog. > > > Normally it means that an essential shared library, i.e. libc, cannot > be found, and even the library LOADER isn't there. > For instance any "ELF - non GLIBC" applications will do this if you > haven't got the libc5 and ldso packages (out of pasture in SW 8.0) > installed. > > iThis is the loader that is needed for libc.so.5 executables: > lrwxrwxrwx 1 root root 13 Jul 28 14:04 ld-linux.so -> ld-linux.so.1 > lrwxrwxrwx 1 root root 17 Jul 28 14:04 ld-linux.so.1 -> ld-linux.so.1.9.9 > -rwxr-xr-x 1 root root 22404 Aug 22 1999 ld-linux.so.1.9.9 > Current glibc uses the .2 version of the loader. |
| |||
| Michael Clarke <mclarke@online.ie> wrote: > Thank you. I owe myself a study of libraries; linkers; loaders; and any > other `l's needed to run applications. I expect the Info documentation > gives thorough coverage of the subject. If you know of a good tutorial, > let me know. My main skill is hardware design. I am proficient in C but > my knowledge of OS technology is rudimentary. Most of what I learned is by "doing it" for the last (about) 10 years. But in essence Linux went through three major revisions of object and executable files, with corresponding shared libraries and ditto loaders: a.out format (the "standard" Unix format), uses libc.so.4 and the "ldso" loader (those libraries are stil in Slackware 8.0's "pasture/libc4-attic" directory) ELF format (new portable format), uses libc.so5 and the ld-linux.so cq ld-linux.so.1 loader Those libraries (and both loaders) are in "pasture/libc5-attic" As neither of these change anymore (and haven't been the "default" since Slackware 7.0) Patrick doesn't include them anymore since SW 8.1 Current format is "GLIBC2", aka libc.so.6 and the loader is ld-linux.so.2 (which is a link to ld-<your C library version>.so GLIBC2 and the older so.5 format are NOT compatible (argument lists of many system functions have changed)! So the libraries are not exchangable in any way, you need the right kind for the executables. You won't see many a.out executables anymore, but ELF non-glibc2 you still see sometimes. Even GLIBC2 isn't fully upwards compatible, everytime IT changes you will see a major release from Slackware to adapt to this: Slackware 7.1 used GLIBC2.1 (so 2.1.x versions of the libraries), in 8.x we were at 2.2.x (we ended with 2.2.5) and now in 9.x we're at 2.3.x (2.3.1 in 9.0, 2.3.2 in 9.1). Out of my /lib dir: -rwxr-xr-x 1 root root 1458907 May 19 2003 /lib/libc-2.3.2.so lrwxrwxrwx 1 root root 13 Dec 12 11:50 /lib/libc.so.6 -> libc-2.3.2.so -rwxr-xr-x 1 root root 177047 May 19 2003 /lib/libm-2.3.2.so lrwxrwxrwx 1 root root 13 Dec 12 11:50 /lib/libm.so.6 -> libm-2.3.2.so from which you can see that I'm running SW 9.1, but to support so.5 we also got: lrwxrwxrwx 1 root root 14 Jul 28 14:04 /lib/gnulibc1/libc.so.5 -> libc.so.5.4.46 -rwxr-xr-x 1 root root 614840 Aug 22 1999 /lib/gnulibc1/libc.so.5.4.46 rwxrwxrwx 1 root root 13 Jul 28 14:04 /lib/gnulibc1/libm.so.5 -> libm.so.5.0.9 -rwxr-xr-x 1 root root 32168 Aug 22 1999 /lib/gnulibc1/libm.so.5.0.9 and the loaders are: -rwxr-xr-x 1 root root 699071 May 19 2003 /lib/ld-2.3.2.so lrwxrwxrwx 1 root root 31 Nov 21 14:58 /lib/ld-linux.so.1 -> /lib/gnulibc1/ld-linux.so.1 lrwxrwxrwx 1 root root 11 Dec 12 11:50 /lib/ld-linux.so.2 -> ld-2.3.2.so lrwxrwxrwx 1 root root 13 Jul 28 14:04 /lib/gnulibc1/ld-linux.so -> ld-linux.so.1 lrwxrwxrwx 1 root root 17 Jul 28 14:04 /lib/gnulibc1/ld-linux.so.1 -> ld-linux.so.1.9.9 -rwxr-xr-x 1 root root 22404 Aug 22 1999 /lib/gnulibc1/ld-linux.so.1.9.9 (ps, this is NOT the default location, but the "gnulib1" dir is shared (NFS) by all our machines so we don't have to keep on reinstalling it). I think the "pasture" package installs in /usr/i386-slackware-linux-gnulibc1/lib or something like it. -- ************************************************** ****************** ** Eef Hartman, Delft University of Technology, dept. EWI/TW ** ** e-mail: E.J.M.Hartman@math.tudelft.nl, fax: +31-15-278 7295 ** ** snail-mail: P.O. Box 5031, 2600 GA Delft, The Netherlands ** ************************************************** ****************** |
| ||||
| On 2004-01-08, Eef Hartman <E.J.M.Hartman@math.tudelft.nl> wrote: <original post snipped> > > Most of what I learned is by "doing it" for the last (about) 10 years. > But in essence ..... <eminently coherent explication of history of linux libraries snipped> If this was Slashdot I would want your reply modded up (way up). First time I have seen such a concise explication of this issue which has been as confusing for me as the O.P. Thanks! Moss Hart |
| Thread Tools | |
| Display Modes | |
|
|