1

I recently downloaded a program called Worldforge, it is a game maker which is open source. I downloaded its executable file and gave it the permissions to run but when i went to start it it came back with this error:

/tmp/.mount_dskVs4/usr/bin/ember.bin: error while loading shared libraries: librtmp.so.0: cannot open shared object file: No such file or directory

I have tried searching for an answer but the only one I found which was relevant did not work, I would be greatful if anyone could help in any way.

David Foerster
  • 35,754
  • 55
  • 92
  • 145
mass334
  • 13
  • 4
  • Which version of the client application are you using? Just to rule out potential different behaviour during my tests and yours. – David Foerster Oct 26 '16 at 10:13

1 Answers1

0

It's not trivial to get the librtmp0 package in Xenial, so my first idea is to use librtmp.so.1 from the librtmp1 package instead since there's a good chance that the library is backwards-compatible.

To achieve that we need to create a symbolic link to it in a location where the program executable can find it. Since this is kind of a hack, it would be preferable if other applications don't find the same link automatically. Helpfully, this application adds ~/.ember/lib to its library search path by default.

I suggest that you

  1. assure that the librtmp1 package is installed,

    sudo apt install librtmp1
    
  2. create the directory ~/.ember/lib,

    mkdir -p ~/.ember/lib
    
  3. put the symbolic link there.

    ln -sT /usr/lib/$(uname -m)-linux-gnu/librtmp.so.1 ~/.ember/lib/librtmp.so.0
    

If the application now fails with a "missing symbol" error message (or something like that) please update your question with the error message and notify me with a comment so I can address it.


If there are more missing shared libraries you can search for their packages and

  • install them if they're available in Xenial or

  • search for newer version of the same shared library (without the version number at the end of the package name) repeat the above process for it.

David Foerster
  • 35,754
  • 55
  • 92
  • 145
  • I have followed your instructions yet the same error still comes up I'm not sure whether WorldForge added ~/.ember/lib to it's search path or not. – mass334 Oct 25 '16 at 20:40
  • What's the output of `readlink -e ~/.ember/lib/librtmp.so.0`? – David Foerster Oct 25 '16 at 23:06
  • It came back with /usr/lib/x86_64-linux-gnu/librtmp.so.1 – mass334 Oct 26 '16 at 05:17
  • Hmm… Could you try to add the library search path explicitly like so: `LD_LIBRARY_PATH=~/.ember/lib ./ember-0.7.2.1-x86_64`. – David Foerster Oct 26 '16 at 10:13
  • It have run the command and it came back with bash: ./ember-0.7.2.1-x86_64: No such file or directory As for what version of the application I am using, i'm currently running version 0.7.2.1 – mass334 Oct 27 '16 at 05:33
  • That was just an example to set the `LD_LIBRARY_PATH` environment variable for a single command. I meant for you to you replace the name of the executable with whatever you have. It's the name of file how I downloaded it. – David Foerster Oct 27 '16 at 08:04