So I looked around here in the forum and saw this old post about a problem I’m now also having with experimental builds. They put up this solution but it didn’t work for me:
[quote=“Ace, post:5, topic:6719”]I don’t get it.
If I use LD_LIBRARY_PATH to overwrite the normal path of the shared objects, wouldn’t it be statically linked?
Then again, I am just estimating what statically and dynamically means.
NOTE: ( As always am I taking no responsibility for my scripts so use with caution! ) ( Run it in your Cataclysm DDA directory if you get the same error as me. )
apt-get download libmodplug1:i386
apt-get download libsdl2-mixer-2.0-0:i386
dpkg-deb -x libmod* pwd
&& dpkg-deb -x libsdl* pwd
mv usr/lib/libmodplug.so.1.0.0 ./libmodplug.so.1 && mv usr/lib/i386-linux-gnu/libSDL2_mixer-2.0.so.0.0.0 ./libSDL2_mixer-2.0.so.0
rm -R usr/ && rm *.deb
Replace this “TARGET_FILE=$0” with this
" TARGET_FILE=$0 && export LD_LIBRARY_PATH=pwd
"
In the “cataclysm-launcher” file.
And then just run it like ./cataclysm-launcher[/quote]
I am not particularly technical so I might have done something wrong. I cd’d to the game folder and typed the commands EXACTLY as Ace had written, but I continue to get the same “no such file or directory” message. Is “pwd” supposed to be replaced with something? Am I supposed to put the libSDL2_mixer-2.0.so.0 and libmodplug.so.1 files somewhere specific in the directory?
Looking for help without too much technical jargon. I’m trying to learn this stuff still so go easy on me!
It would be helpful if you said what your problem is, I assume something about cataclysm not starting but that’s all I can get out of it.
Can you run it with just ./cataclysm or ./cataclysm-tiles from the game directory? If not what’s the error message? Where are you getting the game from?
I have no idea what these instructions are trying to accomplish, and I wrote most of the game.
I think he’s trying to move libmodplug.so.1.0.0 and libSDL2_mixer-2.0.so.0.0.0 to cata’s base directory then make the game use those files by modifying the launch script. In my experience installing libsdl2-mixer-2.0-0:i386 can cause incompatibilities with other packages and having a copy of the libraries just for cata would obviate the need to have it installed.
Downloaded the latest experimental tiles version (Jenkins) and now when I go to the directory and try to run ./cataclysm-tiles I get the error “./cataclysm-tiles: error while loading shared libraries: libSDL2_mixer-2.0.so.0: cannot open shared object file: No such file or directory”
What distro do you use? On Xubuntu 15.04 I fixed that by installing libsdl2-mixer-2.0-0:i386.
Ubuntu 14.04 LTS. In the quote I posted above, that command “sudo apt-get install libsdl2-mixer-2.0-0:i386” was in the instructions.
Tried doing it again though, thinking that perhaps the mistake was moving the file around instead of just leaving it where ever it gets installed to.
Tried to run ./cataclysm-tiles again, and got “./cataclysm-tiles: error while loading shared libraries: liblua5.2.so.0: cannot open shared object file: No such file or directory"
So I did:
sudo apt-get install liblua5.2-0:i386
Tried again:
”./cataclysm-tiles: error while loading shared libraries: libSDL2_ttf-2.0.so.0: cannot open shared object file: No such file or directory"
sudo apt-get install libSDL2_ttf-2.0:i386
And that doesn’t work, can’t find the package. Man, there’s a lot of stuff I need to get just to make the experimental build work!
As a side note, I hate being helpless - is there some place I can go to learn how to figure out the correct way to install these files when I see these errors? I guessed for liblua5.2-0:i386 through following patterns and trial and error. I want to understand the syntax better and be able to find files I need without having to read through forums or stackexchange for things to copy and paste.
The SDL packages are mostly libsdl2-*****-2.0-0:i386.
Moving installed libraries is usually a bad idea. If you need another copy of it somewhere copy it, don’t move it.
apt-cache search is a useful tool to find a specific package name. It will give you a list of packages with the string you entered in their name. For example with libSDL2_ttf-2.0.so.0 you would search libsdl2 and find the appropriate package in the list, in this case libsdl2-ttf-2.0-0:i386.
apt-cache search libsdl2
"sudo apt-get install libsdl2-mixer-2.0-0:i386" was in the instructions
That was apt-get download, not apt-get install. apt-get download will download the deb package needed to install whatever it you downloaded but wont install it immediately. apt-get install will download it and install it at the same time.
So now I just need libSDL2_ttf-2.0.so.0. - (./cataclysm-tiles: error while loading shared libraries: libSDL2_ttf-2.0.so.0: cannot open shared object)
I type:
sudo apt-get install libsdl2-ttf-2.0-0
And get:
Reading package lists… Done
Building dependency tree
Reading state information… Done
libsdl2-ttf-2.0-0 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 10 not upgraded.
And it continues to tell me I don’t have it. What could be the problem now?
I type:
sudo apt-get install libsdl2-ttf-2.0-0
sudo apt-get install libSDL2_ttf-2.0:i386
And that doesn't work, can't find the package.
Have you tried sudo apt-get install libsdl2-ttf-2.0-0:i386
Note where the underscores and where the minus are. libsdl2-ttf and libsdl2_ttf are not the same package. And the [tt]:i386[/tt] is important as well.
Thanks so much! I learned a lot of very important things from you guys. The game is working now!!
Hopefully from now on I can get the updates I need on my own, for Cataclysm and for other things.
Now to see if that bug I complained about in another recent thread is sticking around in the latest version.
Semi related: where would you put libraries for cata to use without having them installed system-wide? A lot of programs have a libs folder but I couldn’t find one for CDDA.
According to the old thread I saw on this problem, just sticking them in the directory with cataclysm-tiles was supposed to work. Clearly not though, since this worked while the other option didn’t. Perhaps they (might have been Kevin, too lazy to check atm) meant a specific folder but I too couldn’t find one containing libs files.
If you want to override your system libraries, use LD_LIBRARY_PATH, that’s what it’s for.
Stick the libraries somewhere, and do
export LD_LIBRARY_PATH="path/to/libraries"
If you want to do it every time, stick it in the launcher or your own launcher as per the previous instructions.