How to install Skype in Ubuntu 13.04 - Tutorial

Updated: June 5, 2013

Note: This article was written before version Skype Linux 4.2 was officially released, so some of the stuff written here might no longer apply, and everything could work smooth as butter. Or not. So do read please.

Recently, I caught a whiff of a new rumor slash worry that Skype cannot be installed on the latest edition of Ubuntu, namely 13.04 Raring Ringtail. Moreover, some people specifically pointed out that Skype would not work on non-Unity flavors, like Xubuntu or such.

Well, I decided to check this rumor and verify if it's true. And if so, provide you with a workaround or three to how you can get Skype running. This will be a valuable lesson, as we will do a few rather geeky things, so stay with me. Now, commence.

Teaser

Install Skype

You can try using the Ubuntu Software Center, or you can download the Debian installer from the official site. Do note the installer only comes in 32-bit flavor, so people running 64-bit systems might feel a little anxious. But there's no reason, really. If you double-click the downloaded file, Ubuntu Software Center will launch and prompt you to install the package. It will also sort out all the little dependencies in the background. This is somewhat like what we did with Steam recently.

Skype via USC

If you choose to install the package from the command line, you will need to force the architecture, in other words, something like this:

sudo dpkg -i --force-architecture skype-ubuntu*.deb

Run Skype

Once the package is installed, run it. It will most likely fail. Now, you need to debug the issue a little in order to understand what might have gone wrong. We will use our hacking skills, which you acquired after reading a ton of my so-called super duper tutorials. First thing, we will execute Skype from the command line.

Command line, core dumped

You will see the following error:

Segmentation fault (core dump)

Core dump & basic debugging

Normally, core dumps are saved in the current working directory (cwd). If you check the contents, you will most likely see there's no core file created. Now, we will recall my no less useful GNU Debugger (gdb) tutorial. There, we talked about how to collect memory cores of crashing applications. Namely, the shell limits are probably set in such a way that applications cannot really dump core files to disk. In BASH, you can check with ulimit -a.

Limits

Indeed, the core file size is set to 0. We will change that:

ulimit -c unlimited

Now, if you rerun, the core will be collected.

Core dumped

Once again, we will invoke the power of the gdb tutorial, and examine the core inside the debugger. What we want is the trace of the last functions executed prior to the crash, as this can point us in the right direction.

gdb `which skype` core

GDB, bt

Some progress. This is geeky, and the stack is possibly corrupt, because Skype was compiled using sheep and ethereal powers, but we see that the crash originated in the libGL shared library. You might be tempted to blame the Nvidia driver, but there's no reason really.

The simple explanation is as follows. Skype expects to find libGL under mesa directory, under /usr/lib32, whereas your system has the library under /usr/lib/i386-gnu-linux. These little string changes and notations can confuse applications. Now that we know this, we can implement a fix. One options is to create a symbolic link, and then recreate the necessary runtime bindings with ldconfig. Both with sudo.

Symbolic link

If this does not work, then you can try this hack. It will force Skype to use the native system libraries in their expected place, instead of searching for them in legacy directories and traversing symbolic links. As sudo, create the following file:

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

Inside, paste a single line:

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

Then, rerun ldconfig:

sudo ldconfig

Test Skype

Now, let's see if this works. And it does. On Xubuntu, no less. Bob is our uncle!

Skype runs

Skype runs, full screen

Working, test call

More reading

You might also like the following:

A whole bunch of Skype related tricks on Ask Ubuntu.

Skype Community Ubuntu 13.04 thread with similar symptoms.

Several more hacking guides for you, if you please.

Conclusion

There you go. Skype works, including the less obvious Xfce desktop. I tested this on other flavors, with identical results. So now you have a solid solution to getting Skype to work until an official fix is released. And this is true for all FUTURE releases!

Best of all, this tutorial teaches you a whole lot of things, including subtle differences between 32-bit and 64-bit software, how to install packages from the command line or through Ubuntu Software Center, how to change shell limits, collect application memory cores, how to troubleshoot issues using a proper debugger, how to make changes to system files and configurations, and still more. You asked for Skype, you got it, plus extras. I hope you find this guide useful. As you can see, problems are sometimes much simpler than they seem. Enjoy your international chats.

Cheers.