Es crea la pàgina amb «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.e...».
 
Cap resum de modificació
Línia 1: Línia 1:
Package, install Skype 2.2.0.35 on CentOS 5
Source -> http://punkts.org/trac/wiki/Skype22ForCentOS5
 
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:
CentOS 5 has its own GCC Standard C++ Library package, but it is relatively old:
Línia 13: Línia 15:
libstdc++.so.6(GLIBCXX_3.4.7)   
libstdc++.so.6(GLIBCXX_3.4.7)   
libstdc++.so.6(GLIBCXX_3.4.8)   
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.
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.
Línia 19: Línia 21:
   1. Download, install the GCC Standard C++ Library RPM from the Fedora 10 archive.  
   1. Download, install the GCC Standard C++ Library RPM from the Fedora 10 archive.  


# rpm -i --relocate /usr/lib=/usr/local/lib \
# 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
    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
# rpm -ql libstdc++-4.3.2-7
/usr/local/lib/libstdc++.so.6
/usr/local/lib/libstdc++.so.6
/usr/local/lib/libstdc++.so.6.0.10
/usr/local/lib/libstdc++.so.6.0.10
#
 
# ( cd /usr/local/lib ; ls -log libstdc++* )
# ( cd /usr/local/lib ; ls -log libstdc++* )
lrwxrwxrwx 1    19 Apr  6 12:00 libstdc++.so.6 -> libstdc++.so.6.0.10
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
-rwxr-xr-x 1 954544 Nov  5  2008 libstdc++.so.6.0.10
#
 
# whereis libstdc++.so.6
# whereis libstdc++.so.6
libstdc++.so: /usr/lib/libstdc++.so.6 /usr/local/lib/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.
Now will download a few files, build and install the RPM.
Línia 46: Línia 47:
# wget $url/skype-2.2.0.25-shell.patch
# wget $url/skype-2.2.0.25-shell.patch
# wget $url/skype.sh
# wget $url/skype.sh
#
 
# cd /usr/src/redhat/SPECS
# cd /usr/src/redhat/SPECS
# wget $url/skype.spec
# wget $url/skype.spec
#
 


   4. Build, then install the package.  
   4. Build, then install the package.  
Línia 55: Línia 56:
# rpmbuild -bb skype.spec
# rpmbuild -bb skype.spec
  [...]
  [...]
#
 
# rpm -i /usr/src/redhat/RPMS/i386/skype-2.2.0.35-*.i386.rpm  
# rpm -i /usr/src/redhat/RPMS/i386/skype-2.2.0.35-*.i386.rpm  
#
 


What was the patch needed for?
What was the patch needed for?
Línia 63: Línia 64:
$ rpm -ql skype |grep desktop
$ rpm -ql skype |grep desktop
/usr/share/applications/skype.desktop
/usr/share/applications/skype.desktop
$
 
$ grep Exec /usr/share/applications/skype.desktop
$ grep Exec /usr/share/applications/skype.desktop
Exec=skype.sh
Exec=skype.sh
$
 
$ rpm -ql skype |grep bin/skype
$ rpm -ql skype |grep bin/skype
/usr/bin/skype
/usr/bin/skype
/usr/bin/skype.sh
/usr/bin/skype.sh
$
 
$ pr -to3 /usr/bin/skype.sh
$ pr -to3 /usr/bin/skype.sh
   #!/bin/sh
   #!/bin/sh
   LD_PRELOAD=/usr/local/lib/libstdc++.so.6 /usr/bin/skype
   LD_PRELOAD=/usr/local/lib/libstdc++.so.6 /usr/bin/skype
$


Upgrade to CentOS 5.6
 
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:
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:
Línia 89: Línia 90:
Complete!
Complete!
(1, [u'Please report this error in https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%205&component=yum'])
(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.
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
# rpm -e --nodeps libstdc++-4.3.2-7
#
 
# yum update libstdc++
# yum update libstdc++
  [...]
  [...]
Línia 108: Línia 109:


Complete!
Complete!
#
 
# rpm -i --relocate /usr/lib=/usr/local/lib libstdc++-4.3.2-7.i386.rpm
# rpm -i --relocate /usr/lib=/usr/local/lib libstdc++-4.3.2-7.i386.rpm

Revisió del 18:00, 27 gen 2012

Source -> http://punkts.org/trac/wiki/Skype22ForCentOS5

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. 
  1. 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
  1. rpm -ql libstdc++-4.3.2-7

/usr/local/lib/libstdc++.so.6 /usr/local/lib/libstdc++.so.6.0.10

  1. ( 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

  1. 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). 
  1. cd /usr/src/redhat/SOURCES
  2. 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. 
  1. url=http://punkts.org/sw/el5
  2. wget $url/skype-2.2.0.25-shell.patch
  3. wget $url/skype.sh
  1. cd /usr/src/redhat/SPECS
  2. wget $url/skype.spec


  4. Build, then install the package. 
  1. rpmbuild -bb skype.spec
[...]
  1. 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:

  1. 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.

  1. rpm -e --nodeps libstdc++-4.3.2-7
  1. 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!

  1. rpm -i --relocate /usr/lib=/usr/local/lib libstdc++-4.3.2-7.i386.rpm