CentOS 4.8でQtRubyのインストールに再挑戦

Post date: 2011/01/07 8:31:58

再挑戦したものの見事玉砕。CentOS4.8ではdbusのバージョンが低く、Qtをdbus付き

でインストールできません。dbusを独自にインストールすることも考えたが、あまりに道は厳しそうなので、CentOS5で再挑戦することに方針変更した。

以下は敗戦の記録です:

1. cmake(cmake-2.8.3)のインストール

./bootstrap --prefix=/home/anagix/anagix_tools

make & make install

2. automoc(automoc4-0.9.88)のインストール

cmake -DCMAKE_INSTALL_PREFIX=/home/anagix/anagix_tools

make & make install でOK

のはずが、Qtのqmakeが無いとしかられるので先に進む

システムにインストールされているmocが使われる...

3. Qt(qt-everywhere-opensource-src-4.7.1)のインストール

今回は、以下のように-no-accessibilityはやめた

OPENSSL_LIBS='-L/home/anagix/anagix_tools/lib -lssl -lcrypto' ./configure -prefix ~/anagix_tools/qt-4.7.1 -openssl-linked -I/home/anagix/anagix_tools/include -nomake demos -nomake examples -no-qt3support -no-phonon -no-phonon-backend -no-webkit

メモ

・最初、qtのインストール先を~/anagix_toolsにしていたが、~/anagix_tools/qt-4.7.1に変更した

~/anagix_tools/binに入っていたqmakeなどを削除し(これをしないとQT_QMAKE_EXECUTABLE reported QT_INSTALL_LIBS as /home/anagix/anagix_tools/libというメッセージで悩む)、~/anagix_tools/qt-4.7.1/binをパスに加えて

qt4-rubyをコンパイルした

・klayoutでは、qt3supportが必要なことが判明したので、-qt3supportでコンパイルしなおした

・トラブルの記録:最初-staticでインストールし、次にダイナミックにかえた。何故かわからないが、

/plugins/imageformats以下に、 libqico.a、libqsvg.aしか作成されなかった。ダイナミックで、

以下のようなエラーで、libQtGui.soが作成されなかった(そのためklayoutのリンクに失敗)

.obj/release-shared/qimagereader.o(.text+0xdc1): In function `.L862':

: undefined reference to `QGifHandler::canRead(QIODevice*)'

4. QtRubyのインストールで、automoc4がないといわれるので、先に2をやっつけようとしたが

失敗。結局ubuntuで作成したautomoc4からコピーした(その後、どこかでmakeできた)

5.KLayout(klayout-0.21.3)のインストール

./build.sh -qt ~/anagix_tools -rblib ~/anagix_tools/lib/libruby-static.a -rbinc ~/anagix_tools/lib/ruby/1.8/i686-linux

今回は最終的にきれいにできた(ただし、QtRubyは動かない)

ポイントは、

・~/anagix_tools/qt-4.7.1/binをパスに入れる

・Qtをqt3supportでコンパイルする

6. QtRuby(qt4-qtruby-2.1.0)のインストール

CMakeLists.txtの指示に従い、cmake -DCMAKE_INSTALL_PREFIX=~/anagix_tools\

-DRUBY_EXECUTABLE=~/anagix_tools/bin/ruby -DRUBY_INCLUDE_PATH=~/anagix_tools\

/lib/ruby/1.8/i686-linux -DRUBY_LIBRARY=~/anagix_tools/lib/libruby-static.a -\

Wno-dev -DENABLE_SMOKE=on -DENABLE_QTRUBY=on -DENABLE_QTWEBKIT_SMOKE=off \

-DENABLE_QTSCRIPT_SMOKE=off -DENABLE_QTUITOOLS_SMOKE=off -DENABLE_QTTEST_S\

MOKE=off -DENABLE_PHONON_SMOKE=off -DENABLE_QSCI_SMOKE=off -DENABLE_QWT_SM\

OKE=off -DENABLE_KDE_SMOKE=off -DENABLE_KDEVPLATFORM_SMOKE=off -DENABLE_KH\

TML_SMOKE=off -DENABLE_KTEXTEDITOR_SMOKE=off -DENABLE_SOLID_SMOKE=off -DEN\

ABLE_PLASMA_SMOKE=off -DENABLE_QTWEBKIT_RUBY=off -DENABLE_QTUITOOLS_RUBY=of\

f -DENABLE_QTSCRIPT=off -DENABLE_QTTEST=off -DENABLE_PHONON_RUBY=off -DEN\

ABLE_QSCINTILLA_RUBY=off -DENABLE_QWT_RUBY=off -DENABLE_SOPRANO_RUBY=off -\

DENABLE_KDEVPLATFORM_RUBY=off -DENABLE_KORUNDUM_RUBY=off -DENABLE_KHTML_RUB\

Y=off -DENABLE_KTEXTEDITOR_RUBY=off -DENABLE_SOLID_RUBY=off -DENABLE_KROSS\

RUBY=off -DENABLE_PLASMA_RUBY=off -DENABLE_QIMAGEBLITZ_SMOKE=off

としたが、以下のエラーでストップ:

[ 50%] Building CXX object smoke/qtgui/CMakeFiles/smokeqtgui.dir/x_3.cpp.o

/home/anagix/anagix_tools/src/qt4-qtruby-2.1.0/smoke/qtgui/x_3.cpp:3947: error: base `QClipboard' with only non-default constructor in class without a constructor

ここでgive up

おまけ

1.QtRubyでdbusが必要とされているように見えたので、Qtをw/ dbus supportでコンパイルしようとしたが、

The QtDBus module cannot be enabled because libdbus-1 version 0.93 was not found.というエラーが

でる。Ubuntuではdbus-develがなく、pkg-configでdbusの情報を取れないのが原因のようだが、CentOSでは

dbus-develはありpkg-configは動く。configure に-vオプションをつけて原因がわかった:

configureのオプションとして -I /usr/include/dbus-1.0 -I /usr/lib/dbus-1.0/includeを指定する必要があった。

それでもCentOS4.8の場合、dbusのバージョンが古いようで、dbusつきではconfigureできない。