Cap resum de modificació
Cap resum de modificació
Línia 8: Línia 8:


   libstdc++.so.6(GLIBCXX_3.4)
   libstdc++.so.6(GLIBCXX_3.4)
   libstdc++.so.6(GLIBCXX_3.4.1)
   libstdc++.so.6(GLIBCXX_3.4.1)
   libstdc++.so.6(GLIBCXX_3.4.2)
   libstdc++.so.6(GLIBCXX_3.4.2)
   libstdc++.so.6(GLIBCXX_3.4.3)
   libstdc++.so.6(GLIBCXX_3.4.3)
   libstdc++.so.6(GLIBCXX_3.4.4)
   libstdc++.so.6(GLIBCXX_3.4.4)
   libstdc++.so.6(GLIBCXX_3.4.5)
   libstdc++.so.6(GLIBCXX_3.4.5)
   libstdc++.so.6(GLIBCXX_3.4.6)
   libstdc++.so.6(GLIBCXX_3.4.6)
   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).
Precompiled version of Skype 2.2 Beta for Linux requires a slightly newer version, libstdc++.so.6(GLIBCXX_3.4.9).
Línia 24: Línia 23:
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 http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/10/Fedora/i386/os/Packages/libstdc++-4.3.2-7.i386.rpm
   # 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
   # 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.


  2. Download statically compiled version of Skype (to avoid installation of Qt 4).  
2. Download statically compiled version of Skype (to avoid installation of Qt 4).  


# cd /usr/src/redhat/SOURCES
  # cd /usr/src/redhat/SOURCES
# wget http://www.skype.com/go/getskype-linux-static/skype_static-2.2.0.35.tar.bz2
  # 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.  
3. Download a simple patch, and a .spec file.  


# url=http://punkts.org/sw/el5
  # url=http://punkts.org/sw/el5
# 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
  # wget $url/skype.spec


# cd /usr/src/redhat/SPECS
4. Build, then install the package.  
# 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


  # rpmbuild -bb skype.spec
      [...]
  # 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?


$ 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
 
      /usr/bin/skype
$ rpm -ql skype |grep bin/skype
      /usr/bin/skype.sh
/usr/bin/skype
  $ pr -to3 /usr/bin/skype.sh
/usr/bin/skype.sh
      #!/bin/sh
 
      LD_PRELOAD=/usr/local/lib/libstdc++.so.6 /usr/bin/skype
$ pr -to3 /usr/bin/skype.sh
  #!/bin/sh
  LD_PRELOAD=/usr/local/lib/libstdc++.so.6 /usr/bin/skype
 


Upgrade to CentOS 5.6
Upgrade to CentOS 5.6
Línia 84: Línia 71:
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:


# yum update
  # yum update
[...]
      [...]
ERROR with rpm_check_debug vs depsolve:
      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
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'])


      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.
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++
      [...]
[...]


Updated:
      Updated:
  libstdc++.i386 0:4.1.2-50.el5                libstdc++.x86_64 0:4.1.2-50.el5                 
        libstdc++.i386 0:4.1.2-50.el5                libstdc++.x86_64 0:4.1.2-50.el5                 


Dependency Updated:
      Dependency Updated:
  cpp.x86_64 0:4.1.2-50.el5                    gcc.x86_64 0:4.1.2-50.el5                       
        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               
        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                     
        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           
        libgfortran.x86_64 0:4.1.2-50.el5            libstdc++-devel.x86_64 0:4.1.2-50.el5           


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:06, 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.

  # 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