== Package, install Skype 2.2.0.35 on CentOS 5 == CentOS 5 has its own **GCC Standard C++ Library** package, but it is relatively old: {{{ $ rpm -q --provides libstdc++-4.1.2-48.el5.i386 |grep GLIBC libstdc++.so.6(GLIBCXX_3.4) libstdc++.so.6(GLIBCXX_3.4.1) libstdc++.so.6(GLIBCXX_3.4.2) libstdc++.so.6(GLIBCXX_3.4.3) libstdc++.so.6(GLIBCXX_3.4.4) libstdc++.so.6(GLIBCXX_3.4.5) libstdc++.so.6(GLIBCXX_3.4.6) libstdc++.so.6(GLIBCXX_3.4.7) libstdc++.so.6(GLIBCXX_3.4.8) $ }}} Precompiled version of **Skype 2.2 Beta for Linux** requires a slightly newer version, {{{libstdc++.so.6(GLIBCXX_3.4.9)}}}. Will install the {{{libstdc++}}} package from **Fedora 10**, and make sure that it won't overwrite the one that came with the CentOS. 1. Download, install the GCC Standard C++ Library RPM from the Fedora 10 archive. {{{ # rpm -i --relocate /usr/lib=/usr/local/lib \ http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/10/Fedora/i386/os/Packages/libstdc++-4.3.2-7.i386.rpm # # rpm -ql libstdc++-4.3.2-7 /usr/local/lib/libstdc++.so.6 /usr/local/lib/libstdc++.so.6.0.10 # # ( cd /usr/local/lib ; ls -log libstdc++* ) lrwxrwxrwx 1 19 Apr 6 12:00 libstdc++.so.6 -> libstdc++.so.6.0.10 -rwxr-xr-x 1 954544 Nov 5 2008 libstdc++.so.6.0.10 # # whereis libstdc++.so.6 libstdc++.so: /usr/lib/libstdc++.so.6 /usr/local/lib/libstdc++.so.6 # }}} Now will download a few files, build and install the RPM. 2. Download statically compiled version of Skype (to avoid installation of **Qt 4**). {{{ # cd /usr/src/redhat/SOURCES # wget http://www.skype.com/go/getskype-linux-static/skype_static-2.2.0.35.tar.bz2 }}} 3. Download a simple patch, and a {{{.spec}}} file. {{{ # url=http://punkts.org/sw/el5 # wget $url/skype-2.2.0.25-shell.patch # wget $url/skype.sh # # cd /usr/src/redhat/SPECS # wget $url/skype.spec # }}} 4. Build, then install the package. {{{ # rpmbuild -bb skype.spec [...] # # rpm -i /usr/src/redhat/RPMS/i386/skype-2.2.0.35-*.i386.rpm # }}} What was the patch needed for? {{{ $ rpm -ql skype |grep desktop /usr/share/applications/skype.desktop $ $ grep Exec /usr/share/applications/skype.desktop Exec=skype.sh $ $ rpm -ql skype |grep bin/skype /usr/bin/skype /usr/bin/skype.sh $ $ pr -to3 /usr/bin/skype.sh #!/bin/sh LD_PRELOAD=/usr/local/lib/libstdc++.so.6 /usr/bin/skype $ }}} === Upgrade to CentOS 5.6 === If you'd followed instructions given above, and now are trying to upgrade your system to **CentOS 5.6**, you may encounter the following error: {{{ # yum update [...] ERROR with rpm_check_debug vs depsolve: libstdc++.so.6(GLIBCXX_3.4.9) is needed by (installed) skype-2.2.0.25-2.el5.punkts.i386 libstdc++.so.6(GLIBCXX_3.4.9) is needed by (installed) skype-2.2.0.25-2.el5.punkts.i386 libstdc++.so.6(GLIBCXX_3.4.9) is needed by (installed) skype-2.2.0.25-2.el5.punkts.i386 libstdc++.so.6(GLIBCXX_3.4.9) is needed by (installed) skype-2.2.0.25-2.el5.punkts.i386 Complete! (1, [u'Please report this error in https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%205&component=yum']) # }}} To work around this problem uninstall the {{{libstdc++-4.3.2-7}}} package, upgrade {{{libstdc++}}} to the version that comes with CentOS 5.6, and then install the {{{libstdc++-4.3.2-7}}} package back in place. {{{ # rpm -e --nodeps libstdc++-4.3.2-7 # # yum update libstdc++ [...] Updated: libstdc++.i386 0:4.1.2-50.el5 libstdc++.x86_64 0:4.1.2-50.el5 Dependency Updated: cpp.x86_64 0:4.1.2-50.el5 gcc.x86_64 0:4.1.2-50.el5 gcc-c++.x86_64 0:4.1.2-50.el5 gcc-gfortran.x86_64 0:4.1.2-50.el5 libgcc.i386 0:4.1.2-50.el5 libgcc.x86_64 0:4.1.2-50.el5 libgfortran.x86_64 0:4.1.2-50.el5 libstdc++-devel.x86_64 0:4.1.2-50.el5 Complete! # # rpm -i --relocate /usr/lib=/usr/local/lib libstdc++-4.3.2-7.i386.rpm }}} === See Also === http://freedesktop.org/wiki/Specifications/desktop-entry-spec \\ Desktop Entry Specification http://wiki.centos.org/HowTos/Skype \\ Skype on CentOS