[Ubuntu/Kubuntu] パッケージをアップグレードしたらVMware Server Consoleが動かなくなった場合の対処

2008/11/28PC::VMware

Kubuntu 8.04を導入しているメインマシンに導入されているVMware Server Consoleが先日のKernel 2.6.24-21から2.6.24-22へのパッケージアップグレードを機に動作しなくなった。その際に再びVMware Server Consoleが動作するように対処したときのメモ。

環境

VMware Server ホスト

  • Debian GNU/Linux 4.0(etch)/i386
  • VMware Server 1.0.6

VMware Server クライアント

  • Kubuntu 8.04.1 日本語ローカライズド(i386)
  • VMware Server Console 1.0.6

現象

VMware Server ConsoleがKatapultから起動させることが出来なくなった。で、vmware-server-console-distribに含まれているインストールスクリプトを叩いて再インストールしても立ち上がらず。直接VMware Server Consoleを叩くと以下のようなエラーを吐いていることを確認。

kaede@reika:/usr/local/bin/vmware-server-console-distrib$ vmware-server-console
/usr/lib/vmware-server-console/bin/vmware-server-console: /usr/lib/vmware-server-console/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_3.4' not found (required by /usr/lib/libcairo.so.2)
/usr/lib/vmware-server-console/bin/vmware-server-console: /usr/lib/vmware-server-console/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/libstdc++.so.6)
/usr/lib/vmware-server-console/bin/vmware-server-console: /usr/lib/vmware-server-console/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_3.4' not found (required by /usr/lib/libcairo.so.2)
/usr/lib/vmware-server-console/bin/vmware-server-console: /usr/lib/vmware-server-console/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/libstdc++.so.6)
/usr/lib/vmware-server-console/bin/vmware-server-console: /usr/lib/vmware-server-console/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_3.4' not found (required by /usr/lib/libcairo.so.2)
/usr/lib/vmware-server-console/bin/vmware-server-console: /usr/lib/vmware-server-console/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/libstdc++.so.6)

対処法

VMware Serverクライアントに導入されているGCCは4.2.4 (Ubuntu 4.2.4-1ubuntu3)。要求されているGCCは3.4または4.2.0。このあたりの整合性の問題でエラーを吐いて起動しないと考えられる。
いろいろ調べた結果、以下のファイルをリネームすればいいらしい。

$ cd /usr/lib/vmware-server-console/lib
$ sudo mv libpng12.so.0/libpng12.so.0{,.bak}
$ sudo mv libgcc_s.so.1/libgcc_s.so.1{,.bak}

他にもwrapper-gtk24.shにパッチを当てる方法でも対処できるらしい。参考にしたWebサイトにてその方法も紹介されています。

おそらく

対象のlibgcc_sライブラリについて調べてみたらvmware-server-consoleにて用意されたものの他に導入されていた。

$ find /usr -name "libgcc_s*"
/usr/lib/gcc/i486-linux-gnu/4.2/libgcc_s.so
/usr/lib/vmware-server-console/lib/libgcc_s.so.1
/usr/lib/vmware-server-console/lib/libgcc_s.so.1/libgcc_s.so.1.bak

おそらくVMware Server Consoleにて用意されているライブラリを優先的に参照し、GCCのバージョン不整合によりエラーが発生しているものと考えられる。一方、GCCのバージョンと整合性が取れているものは/usr/lib/gcc/i486-linux-gnu/4.2/以下に導入されていると考えられる。
問題のファイルをリネームすることで、優先順位が低く設定されているVMware Server Consoleにて用意されている方ではないlibgcc_sが利用させるようになり、エラーが解消されるのであろう。

参考

2008/11/24(月)サブマシンセットアップ

少し前になりますがOpteron 254(2.80GHz) Dual/4GB/Quadro FX1400なデスクトップパソコンを購入したのですが、なかなか時間が無くセットアップ出来ていませんでした。
と、いうことでこの週末を利用してサブマシンをセットアップすることに。


選定OS

Windows XP Professional x64 Edition
このデスクトップパソコンに付属してきたOS。メインで利用する気はさらさらありませんが、もったいないのでインストール。
Ubuntu Desktop 8.10(Intrepid Ibex)/amd64
Kubuntu 8.10をいきなり導入するよりもUbuntu 8.10を導入した上でKubuntu環境を構築した方が幸せになれそうなので。
NetBSD 4.0/amd64
泣く子も黙るNetBSDです。使いこなすことが出来たら便利なのでしょうが、そのためには環境が必要です。ということで勉強の為にインストール(ぉ
CentOS 5.2/x86_64
Ubuntuはamd64環境だとあまり幸せになれないことはわかっているので、KDE3.5がまともに動いてamd64環境でもそれなりに幸せになれるディストリビューションとして選定。

ということで

さくさく導入。NetBSD入れるときにgrubを上書きしてしまったりして苦労したのは内緒。


やっぱり

Ubuntu/Kubuntu 8.10のKDE環境はKDE4.1になってしまっています。


実感としてKDE3.5と比較し、やはりまだまだこなれていないというのが正直なところ。
時間が解決するとはいえ、使い慣れたKDE3.5が使いたい。ということで、サブマシンではCentOS 5.2を利用することがメインとなりそうです。

2008/11/09(日)本日の創作物。

カレントディレクトリ配下のwavファイルをmp3に変換するシェルスクリプトを作ってみた。

#!/bin/sh

ls ./*.wav | while read line;do
    lame -h -V0 "$line"
done

というか、これくらいだったらスクリプトを書かなくても出来る気がするのだけど。。。
どなたか他の方法を知っていたら教えて下さい。