/dev/null

(◞‸◟)

CentOS 6でSkypeにログインできなくなったので、最新版のSkypeをCUIでインストール

以前このような記事を書いた。

CentOS6.4にSkypeを入れてbotでお話させる - /dev/null

その後それなりに動いてはいたのだが、サーバーを再起動して再度Skypeを実行させても起動されていない。 どうやらSkypeの古いVersionではログインすら出来なくなった模様。

弊社ではSkypeの古いバージョンの廃止を計画しておりますが、お客様がご利用のSkypeはこのバージョンに該当します。 引き続きデスクトップでSkypeにサインインするには、最新バージョンをダウンロードする必要があります。 新しいバージョンはパフォーマンスが向上しており、最新の機能やセキュリティの更新が含まれているため、最高のSkype体験をお楽しみいただけます。

最近Skypeを更新されましたか? その場合、このメールの内容は無視していただいて構いません。

今すぐ更新: http://www.skype.com/download.

新しいLinux用クライアントをインストールし直します。 なお、環境は先の記事通りであるとします。

まず最新のクライアントをDL。

wget http://download.skype.com/linux/skype-4.3.0.37.tar.bz2

解凍

tar lvxf skype-4.3.0.37.tar.bz2

配置

mv skype-4.3.0.37 /opt/skype

前回使ったスクリプトで起動する。

/opt/skype/skype: error while loading shared libraries: libQtDBus.so.4: cannot open shared object file: No such file or directory 

/opt/skype/skype: error while loading shared libraries: libQtWebKit.so.4: cannot open shared object file: No such file or directory

/opt/skype/skype: error while loading shared libraries: libQtGui.so.4: cannot open shared object file: No such file or directory

各種libが足りないよう。

すべての製品 の Skype サポート| Skype サポート

公式の手順を追っていく。

yumで色々インストールから。

yum update
yum install glibc.i686 nss-softokn-freebl.i686 alsa-lib.i686 libXv.i686 
libXScrnSaver.i686 libtiff.i686 glib2.i686 libSM.i686 libXrender.i686 fontconfig.i686 
pulseaudio-libs.i686 alsa-plugins-pulseaudio.i686 file-roller

CUIなのでfile-rollerは使えません。

debianパッケージをwget

wget ht
tp://ftp.us.debian.org/debian/pool/main/q/qt4-x11/libqt4-webkit_4.6.3-4+squeeze1_i386.deb
wget http://ftp.us.debian.org/debian/pool/main/q/qt4-x11/libqt4-phonon_4.6.3-4+squeeze1_i386.deb
wget http://ftp.us.debian.org/debian/pool/main/q/qt4-x11/libqt4-xmlpatterns_4.6.3-4+squeeze1_i386.deb

CentOSでdpkgは使えないのでdebファイルの展開に、arコマンドを使います。

ar xv libqt4-phonon_4.6.3-4+squeeze1_i386.deb

tar zvxf data.tar.gz

sudo cp ./usr/lib/lib* /opt/skype

これをそれぞれのdebファイルに繰り返します。

更に起動スクリプトを書き換えます。

start() {
    log_daemon_msg "Starting" "skype"
    if ! dircheck "$LOGFILE" || ! dircheck "$XAUTHFILE"; then
        log_end_msg 1
        echo
        RETVAL=1
        return
    fi
    MCOOKIE=`mcookie` && \
+    LD_LIBRARY_PATH=/opt/skype/:$LD_LIBRARY_PATH
    sudo -u "$DAEMON_USER" env XAUTHORITY=$XAUTHFILE sh -c "xauth add \":$XSERVERNUM\" \"$XAUTHPROTO\" \"$MCOOKIE\" >> \"$LOGFILE\" 2>&1" && \
    sudo -u "$DAEMON_USER" env XAUTHORITY=$XAUTHFILE sh -c "Xvfb :$XSERVERNUM -screen 0 800x600x8 -nolisten tcp >> \"$LOGFILE\" 2>&1 & echo \$!" >"$PIDFILE" &&
    sleep 3 && \
    (sudo -u "$DAEMON_USER" env DISPLAY=:$XSERVERNUM XAUTHORITY=$XAUTHFILE SKYPE="$SKYPE" sh -c "echo \"$USERNAME $PASSWORD\" | nohup \"$SKYPE\" --dbpath=\"$DBPATH\" --pipelogin &") >> "$LOGFILE" 2>&1 && \
    (log_end_msg 0 && [ -d /var/lock/subsys ] && touch /var/lock/subsys/skype || true) \
        || (RETVAL=$?; kill -TERM `cat $PIDFILE`; log_end_msg 1)
}

LD_LIBRARY_PATH=/opt/skype/:$LD_LIBRARY_PATHの行を足します。

これで再度起動。

/opt/skype/skype: error while loading shared libraries: libQtGui.so.4: cannot open shared object file: No such file or directory

libQtGui.so.4が足りないのでファイルを提供しているパッケージを探します。

yum provides libQtGui.so.4

1:qt-x11-4.6.2-28.el6_5.i686 : Qt GUI-related libraries
Repo        : updates
Matched from:
Other       : libQtGui.so.4



1:qt-x11-4.6.2-26.el6_4.i686 : Qt GUI-related libraries
Repo        : base
Matched from:
Other       : libQtGui.so.4

qt-x11-4.6.2-28.el6_5.i686が該当するのでインストール

yum install -y qt-x11-4.6.2-28.el6_5.i686

再度起動すると、きちんと動くようになります。 APIなどは提供が停止されているのでおそらく動かないでしょう。