Penguin
Note: You are viewing an old revision of this page. View the current version.

error while loading shared library. cannot open shared object file

This occurs when it can't load a shared library, use "ldd(1)" to determine which libraries this program is trying to link against and which ones are missing or can't be linked against. eg
ldd /bin/cat

No such file or directory

If you see this message when trying to run a program, even though you can plainly see it right in front of you, there are a couple of possibilities:

  • If it is some kind of script, it might point to an interpreter that doesn't exist on your system. For example, it used to be common to see perl scripts whose first line was
    1. /usr/local/bin/perl

But if you had perl installed as /bin/perl or /usr/bin/perl you would get this message.

  • Your dynamic binary executable is linked against a specific dynamic library on your system that has the same name (but different binary interfaces??) as the machine that the file was compiled on. This is particularly annoying as you can also get this message when trying to use ldd(1) to find out which dynamic library is causing the problem! If ldd(1) doesn't work, you are probably missing /lib/ld.so or /lib/ld-linux.so
  • More commonly this program is linked against a library that doesn't exist on your machine. If all your programs are saying this, try echo /lib/*, you'll probably find it empty :)

Xlib: connection to ":0.0" refused by server

Xlib: connection to ":0.0" refused by server Xlib: Client is not authorized to connect to Server some_app: unable to open display ":0.0"

The user running the command is different to the user that started the X-server, or is otherwise not allowed by the X server to create new (graphical) windows.

Also see the XAuthNotes? page on giving other users permission to open graphical windows on your X server.

-bash: /path/to/script: /bin/bash: bad interpreter: Permission denied

  • bash: /path/to/script: /bin/bash: bad interpreter: Permission denied

/bin/bash exists and runs fine; the probably cause is the "u+x" bit is not set on the script. (a+x should overwrite it, shouldn't it?)

My experimentation suggests that /bin/bash probably isn't executable, and since it is a bash script the kernel is trying to start bash. Judging by the number of people doing searchs we're having a large number of people have this problem with bash and perl. Still have no idea what's going on? try

chmod a+rx /bin/bash /usr/bin/perl /usr/local/bin/perl /path/to/your/script/here

this will mark these all as executable and readable by everyone.

It seems highly unlikely that you got into a user run-level if bash and/or perl aren't executable. Based on Plug's experience with linuxsms, it seems this is caused by the script being not executable by you, but set executable by group and/or other -- JohnMcPherson


ping: sendto: Operation not permitted

PING 192.168.66.10 (192.168.66.10): 56 data bytes ping: sendto: Operation not permitted ping: wrote 192.168.66.10 64 chars, ret=-1

The interface you are pinging out of (192.168.66.10) is firewalled. Fix your firewall :)

Kernel/libc Error Messages

See ErrorMessages

Error Messages for specific Applications

See ApplicationErrorMessages

Humorous Error Messages

FunnyApplicationErrorMessages