27

I am trying to install ioquake on my ubuntu server.

When I try to run it, I get this message:

# ./ioquake3
./ioquake3.x86_64: error while loading shared libraries: libSDL-1.2.so.0: cannot open shared object file: No such file or directory

I thought I had everything working right, here is where the libSDL is:

# cd /usr/lib64
# /usr/lib64# ls -l
total 2308
lrwxrwxrwx 1 root root      15 Oct 15 00:25 libSDL-1.1.so.0 -> libSDL-1.2.so.0
lrwxrwxrwx 1 root root      20 Oct 15 00:25 libSDL-1.2.so.0 -> libSDL-1.2.so.0.11.4
-rwxr-xr-x 1 root root 2358903 Jan 19  2012 libSDL-1.2.so.0.11.4

And my path:

# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib64

What am I doing wrong?

ErocM
  • 521
  • 3
    I think that this is a message from libSDL rather than about libSDL. Run strace ./ioquake.x86_64. This will show all system calls (takes way more time to execute). It will show which attempt to open which file will fail. – January Oct 15 '12 at 05:02
  • I installed trace. When I run it straight up, I get the help. When I run strace ./ioquake.x86_64 as you suggested I get command not found. I'm getting a headache :( – ErocM Oct 15 '12 at 05:15
  • I installed strace* – ErocM Oct 15 '12 at 05:20
  • From the OpenArena FAQ, this message appears when libSDL isn't installed, so I don't think it came from it. Not the best idea, but just to be sure, have you tried to rename libSDL-1.2.so.0.11.4 into libSDL-1.2.so.0 ? – NorTicUs Oct 15 '12 at 11:12
  • even if the first worked for you: please mark the second (23 upvotes) as answer as it is actually right for 99% of people. – tatsu May 28 '17 at 13:00

6 Answers6

30

This worked for me:

sudo apt-get install libsdl1.2debian:i386

Joril
  • 2,326
  • 3
    this is the better answer this should be marked as answer. – tatsu May 28 '17 at 12:59
  • 1
    The current chosen answer tells us to apt update and apt reinstall, but you don't need any of that, all you need is to install the i386 architecture of libsdl. This should be the correct answer. – Henrique de Sousa Aug 13 '20 at 01:54
  • I needed to install libsdl1.2debian, not libsdl1.2debian:i386, in order to get OpenArena to open in Ubuntu 20.04. – kas Nov 18 '20 at 06:12
  • Note that i386 is for 32-bit, so you don't need it for 64-bit machine - meaning you can just do sudo apt-get install libsdl1.2debian – tsveti_iko Jan 12 '21 at 15:07
  • @tsveti_iko well it's been a few years, maybe ioquake needed the 32 bit version even on a 64 bit machine? – Joril Jan 13 '21 at 09:34
  • Thanks, I needed the 32-bit version for apps such as Deflemask, and the error message didn't make it clear. Maybe running file my_executable would allow spotting 32-bit executables in those cases. – hsandt Feb 12 '22 at 16:13
16

Try the following in terminal:

sudo apt-get update

followed by

sudo apt-get install --reinstall libsdl1.2debian

Post any error messages you might see

kiri
  • 28,246
  • 16
  • 81
  • 118
Anonymous
  • 176
  • 2
  • 3
2

I know this is a year late. But this should fix it:

dpkg --add-architecture i386
sudo apt-get install libsdl1.2debian

The problem is that you are running a program compiled for a 32 bit architecture with 64 bit libraries.

Eric Carvalho
  • 54,385
Douther
  • 21
  • 1
2
sudo apt-get install libsdl1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev
Zanna
  • 70,465
0

No one else's answer solved this for me. This did though:

$ sudo apt-get install libsdl1.2debian libsdl-image1.2 libsdl-ttf2.0-0 libopenal1 libsndfile1 libncursesw5

Something to do with 64 bit dependencies not being installed due to 32 bit libraries, I'm not sure.

Shardj
  • 101
0

This question is still relevant to Ubuntu 14.04 for old but still in use programs such as GCCG (Generic Collectible Card Game).

There are two very large answers on the subject:

  1. How to run 32-bit app in Ubuntu 64-bit?
  2. How to install ia32-libs in Ubuntu 14.04 LTS (Trusty Tahr)
Paul
  • 101
  • 1