Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

When attempting to run various pieces of software (notably Steam and Yenka), I have come across an error similar to this: enter code here error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory

I'm running a 64 bit system, with an NVidia Optimus card (I dual boot for certain windows only software that requires a dedicated graphics card). I have bumblebee installed, and I am using the nvidia-current driver, rather that one downloaded from NVidia, as recommended.

The library (libGL.so.1) is not present in the top directory of /usr/lib, however it is present in /usr/lib32/nvidia-current, as a softlink to /usr/lib32/nvidia-current/libGL.so.304.64.

A section of the output from ldconfig -p:

libGL.so.1 (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
libGL.so (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/libGL.so
libGL.so (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so

Obviously a library with that name is being loaded, but they are located in /usr/lib/x86_64-linux-gnu, however installed software doesn't seem to able to 'see' it. For Steam, running it with optirun causes it to work, but this is not the case for Yenka. I assume that optirun causes the library stored in /usr/lib32/nvidia-current to be used, which allows Steam to run, so I can't understant why Yenka won't run.

Can anyone explain why software can't see the normal mesa library, and why Yenka refuses to run with the nvidia-current library?

share|improve this question
add comment

4 Answers

I am having the same issue after installing skype ...so you can do either thing to fix this error..

1st one is run the application by following command ...for example i m running skype..

LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1 skype

S O U R C E

2nd that what i did

sudo nano /etc/ld.so.conf.d/skype.conf

and add the following line in it

/usr/lib/i386-linux-gnu/mesa/

save & exit

and lastly run

sudo ldconfig -v

i hope this will fix your libGL.so.1 error as it did mine

You can also find libGL.so.1

   find / -name libGL.so.1
share|improve this answer
    
I managed to fix it in the end. Unfortunately, I can't remember how, but I remember it consisted of creating random symlinks to the library, running ldconfig a lot, and then removing the aforementioned symlinks. Everything works fine now. –  jdp407 Mar 21 '13 at 20:56
    
This worked fine! Finally! Also, I remember doing what @jdp407 said before these steps. –  Gundars Mēness Aug 18 '13 at 9:53
add comment

With the nvidia drivers installed skype is looking for an i386 lib provided by the nvidia package. Since that doesn't exist, it is ok to use the i386 libGL.so.1 provided by mesa.

Tested on (ubuntu-gnome raring, using nvidia-325) and (ubuntu-gnome saucy, using nvidia-319) we were able to fix this by the following:

update-alternatives --display i386-linux-gnu_gl_conf

This will show you what the available options are.

i386-linux-gnu_gl_conf - auto mode
  link currently points to /usr/lib/nvidia-325/alt_ld.so.conf
/usr/lib/i386-linux-gnu/mesa/ld.so.conf - priority 500
  slave i386-linux-gnu_xorg_extra_modules: /usr/lib/i386-linux-gnu/xorg/x11-extra-modules
/usr/lib/nvidia-325/alt_ld.so.conf - priority 8602
Current 'best' version is '/usr/lib/nvidia-325/alt_ld.so.conf'

so, do the following:

sudo update-alternatives --config i386-linux-gnu_gl_conf

then select the best alternative (I selected i386-linux-gnu/mesa/ld.so.conf): In the output below there are two choices for the alternative i386-linux-gnu_gl_conf (providing /etc/ld.so.conf.d/i386-linux-gnu_GL.conf).

  Selection    Path                                     Priority   Status
------------------------------------------------------------
* 0            /usr/lib/nvidia-325/alt_ld.so.conf        8602      auto mode
  1            /usr/lib/i386-linux-gnu/mesa/ld.so.conf   500       manual mode
  2            /usr/lib/nvidia-325/alt_ld.so.conf        8602      manual mode

Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib/i386-linux-gnu/mesa/ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in manual mode

After you have completed that, try running:

sudo ldconfig

and then you're done.

share|improve this answer
1  
I had the exact same and this worked perfectly, thanks very much (Ubuntu 13.10) –  Xtremesupremacy3 Oct 4 '13 at 19:33
add comment

I'm not sure if this'll help clarify or not but I had the same issue with skype and libGL.so.1. Also running 13.04 with an optimus card and bumblebee.

I got the issue running skype without optirun, but it worked fine with. I just changed the desktop file to run with optirun every time and voila. fixed!

share|improve this answer
add comment

I had a similar problem and solved it by installing 32bit libs on my 64bit system: apt-get install ia32-libs

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.