please help with openbsd 2.9

Please help. I have downloaded the openbsd 2.9 snapshot from ftp.openbsd.org. the following files were downloaded from the snapshot dir. ( the whole dir. was downloaded ) base29,bsd,bsd.rd,cdrom29.fs,cksum,comp29,etc29,all three floppy images,game29,index,install.ata,install.chs install.dbr,install.i386,install.linux,install.mbr install.os,install.pt,man29,md5,misc29,xbase29,xfont29,xserv29 and xshare29. I burned them to cdrom. i created my floppy29.fs boot image. The hard disk is clean with no partitions at this point. i was able to boot from the floppy and set the entire machine up perfectly. Everything works even network card and xserver. The problem i am having is being able to execute packages that were added via- pkg add. The packages state in -v mode that all went well and was registered. the added package will show up if i do a pkg info, however i can not get one single package to execute and the same error is given for all packages. Here is the error and xxx is the app.

/usr/libexec/ld.so: xxx: libc.so.26.2: No such file or directory.

for example i installed joe the editor.
pkg add -v joe-2.8p1.tgz all was extracted and registered. I am logged in as root when i install the packages and when i try to call them. When i am @ / logged in as root and type joe the above message is displayed. i installed 9menu to and when i call the app 9menu the exact same message is displayed.
/usr/libexec/ld.so: 9menu: libc.so.26.2: No such file or directory.

this has been the case with all installed packages. all other commands ( ping, traceroute, halt etc... ) work fine it is just all apps added after the original install. the computer is: compaq professional workstation ap400, 6gig ata/66 hd, 128meg ram, elsa synergy video card, pent!! 450. please explain what i have done wrong and steps to fix it.

thanks for your kindness. :slight_smile: have a great day.

You must check your shared lib directory (directories) for the version of libc.so in the directory (and the symbolic link to the current version). Please find the libc.so file and the symbolic link and post it so we can see what is going on.

Ok, thanks. would you mind explaining how to do the above. i am new to unix and need details and steps. what is a symbolic link and how do i find and read it.

thanks neo!!!!!

You can try two diff ways

1) ln -s `locate libc.so.26.2` /usr/lib/libc.so.26.2

this will locate libc.so.26.2 then create a sym link in /usr/lib.

2) Or add the path where "libc.so.26.2" resides by editing /etc/rc.conf (shlib_dirs= /path to/new lib )

this will add those path into 'rc.conf' file which specifies additional default directories (beyond the standard set) to be scanned by 'ldconfig' for shared libraries to include in the hints file used by the run-time linker '/usr/libexec/ld.so.' this is usefull if you have lots of shared libs in that dir.

In linux we do this by editing '/etc/ld.so.conf'

HTH

BTW What is symbolic link

-rwxr-xr-x   1 root     root         7736 Mar 21  2000 libutil-2.1.3.so*
lrwxrwxrwx   1 root     root           16 Aug 19  1994 libutil.so.1 -> libutil-2.1.3.so*

The example above is from my /lib directory on one of my servers. Notice that the shared library file is libutil-2.1.3.so, which was the current version when I did my installation. It might be libutil-2.1.5 now (for all I know :slight_smile: ) because shared lib (like all dynamic code) changes frequently to add features and to fix bugs in the code.<P>
However, all code that used the shared library must have a symbol or token to represent the library, this is normally something like libutil.so.X. Normally libutil.so.3 will work in code designed for libutil.so.2 (but not always!). <P>
So, when you install a new library, for example libutil-3.1.1 you must create a symbolic link (as required). In the example above, you might do an:

ln -sf libutil-3.1.1.so libutil.so.1

This might not be enough, because newer code might look for the token libutil.so.3 !! So, you also must do:

ln -sf libutil-3.1.1.so libutil.so.3

Which creates another symbolic link, as required. <P>
<A HREF=http://forums.unix.com/showthread.php?threadid=513&highlight=symbolic+link>'what is a symbolic link?' (the question) was discussed here</A>
<P>
Fixed typo (thanks MIB!)

You guys are awesome. Thanks for taking time from your schedule to help me, I appreciate it very much. Like I said Unix is new to me. I picked up a copy of slackware 5mo. ago just to see what this UNIX stuff was all about. I dont know why but for some reason The Dark Side just sucked me in. I bought a copy of Unix In A Nutshell 3RD edition but sometimes when you just dont understand what to look for you need to ask somebody for answers. I know some of my questions are stupid and elementary and I ask that you please forgive my ignorance on the subject and have patience as I try to grow.

find / -name libc.so.26.2 -print ---> returns nothing.
ln -s `locate libc.so.26.2` /usr/lib/libc.so.26.2 ----> returns nothing

I can find other files just fine so i know the find command is working. The files appears to not be there, but why would a snapshot not contain a critical file needed by the system seeing how a snapshot is just a recompiled version of the general release with errata applied? How to I get this file and apply it or do i have to format and start over with a different build?

Try doing this:

find / | grep libc | grep so

Please post the results. This will find all occurances of files that have libc and so in the names. We can go from there.

#find / | grep libc | grep so
/usr/lib/libc.so.27.1
/usr/lib/libc_r.so.5.1
/usr/lib/libcrypto.so.4.1
/usr/lib/libcurses++.so.1.1
/usr/lib/libcurses.so.8.0
/usr/src/lib/libc/net/iso_addr.3
/usr/src/lib/libc/net/iso_addr.c
/usr/src/lib/libc/net/resolver.3
/usr/src/lib/libc/stdlib/heapsort.c
/usr/src/lib/libc/stdlib/qsort.3
/usr/src/lib/libc/stdlib/qsort.c
/usr/src/lib/libc/stdlib/radixsort.3
/usr/src/lib/libc/stdlib/radixsort.c
/usr/src/lib/libc/sys/getsockname.2
/usr/src/lib/libc/sys/getsockopt.2
/usr/src/lib/libc/sys/socket.2
/usr/src/lib/libc/sys/socketpair.2
/usr/src/lib/libc_r/TEST/test_sock_1.c
/usr/src/lib/libc_r/TEST/test_sock_2.c
/usr/src/lib/libc_r/TEST/test_sock_2a.c
/usr/src/lib/libc_r/uthread/uthread_getsockname.c
/usr/src/lib/libc_r/uthread/uthread_getsockopt.c
/usr/src/lib/libc_r/uthread/uthread_setsockopt.c
/usr/src/lib/libc_r/uthread/uthread_socket.c
/usr/src/lib/libc_r/uthread/uthread_socketpair.c
/root/libc.so.26.2

I did a update frome the cvs server and now the file shows up but when i try to execute the app like joe the following is still the error.

#joe
/usr/libexec/ld.so: joe: libc.so.26.2: No such file or directory

Thanks

This should work for you:

cp   /root/libc.so.26.2  /usr/lib/libc.so.26.2

You might have to run ldconfig on your system afterwards. Copying the file from the root directory into the /usr/lib directory should work. If not, let us know.

Neo, did u mean: ln -sf libutil-3.1.1.so libutil.so.3 (ln instead ls ?)

Yes, of course. Sorry for the typo. I went back and edited the original post and changed ls to ln. Thanks again!