Updated: June 5, 2013
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.
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.
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
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.
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.
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.
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
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.
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:
Then, rerun ldconfig:
Now, let's see if this works. And it does. On Xubuntu, no less. Bob is our uncle!
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.
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.