CentOS5にQt4,KLayout,Qt4Rubyをインストール

Post date: 2011/01/13 6:10:08

これらをアナジックスのツール群と同じ/home/anagix/anagix_toolsに入れる

1.Qt(~/anagix_tools/src/qt-everywhere-opensource-src-4.7.1/)のコンパイルにg++が

必要なので、yum install g++ と、yum install gcc-c++

X11/Xlib.h: No such file or directoryといわれるので、yum install xorg-x11-proto-devel

/usr/bin/ld: cannot find -lXextといわれるので、yum install libXext-devel

OpenGLのために、yum install mesa* freeglut-devel

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

注意: -qt3support はKLayoutのために必要

-dbus-linked -openglはQt4Rubyのために必要

以下のエラーが出たが、export LD_LIBRARY_PATH=/home/anagix/anagix_tools/lib してmake

すれば通った。OPENSSL_LIBSの設CDS_CIC_INST_DIR定はCentOSでは有効でないのかもしれない。

/usr/bin/ld: warning: libssl.so.0.9.8, needed by /home/anagix/anagix_tools/src/qt-everywhere-opensou\

rce-src-4.7.1/lib/libQtNetwork.so, not found (try using -rpath or -rpath-link)

/usr/bin/ld: warning: libcrypto.so.0.9.8, needed by /home/anagix/anagix_tools/src/qt-everywhere-open\

source-src-4.7.1/lib/libQtNetwork.so, not found (try using -rpath or -rpath-link)

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

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

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

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

make & make install

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

cmake -DCMAKE_INSTALL_PREFIX=/home/anagix/anagix_tools

make & make install でOK

6.Qt4Rubyのインストール

~/anagix_tools/src/qt4-qtruby-2.1.0 で、

export LD_LIBRARY_PATH=~/anagix_tools/qt-4.7.1/lib:/home/anagix/anagix_tools/lib

(これは要らなかったかもしれない)

export PATH=/home/anagix/anagix_tools/qt-4.7.1/bin:$PATH

と環境設定して

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_SMOKE=off -DENABLE_PHONON_SMOKE=off -DENABLE_QSCI_SMOKE=off -DENABLE_QWT_SMOKE=off -DENABLE_KDE_SMOKE=off -DENABLE_KDEVPLATFORM_SMOKE=off -DENABLE_KHTML_SMOKE=off -DENABLE_KTEXTEDITOR_SMOKE=off -DENABLE_SOLID_SMOKE=off -DENABLE_PLASMA_SMOKE=off -DENABLE_QTWEBKIT_RUBY=off -DENABLE_QTUITOOLS_RUBY=off -DENABLE_QTSCRIPT=off -DENABLE_QTTEST=off -DENABLE_PHONON_RUBY=off -DENABLE_QSCINTILLA_RUBY=off -DENABLE_QWT_RUBY=off -DENABLE_SOPRANO_RUBY=off -DENABLE_KDEVPLATFORM_RUBY=off -DENABLE_KORUNDUM_RUBY=off -DENABLE_KHTML_RUBY=off -DENABLE_KTEXTEDITOR_RUBY=off -DENABLE_SOLID_RUBY=off -DENABLE_KROSSRUBY=off -DENABLE_PLASMA_RUBY=off -DENABLE_QIMAGEBLITZ_SMOKE=off

RubyでQtRubyを使えること、およびKTLayoutでもQtRubyを使えることを確認できた。メデタシ

-----------------

2011-5-9 CentOS5.6に再度インストール。今回は、Qtは4.7.3。

1.Qtのconfigureでdbusが無いといわれたので、yum install dbus-devel

2.Qt4Rubyのコンパイルで以下のエラーが発生したので、missing.hの該当箇所をコメントアウトした。

/usr/include/unistd.h:268: error: declaration of ‘int eaccess(const char*, int) throw ()’ throws different exceptions

/home/anagix/anagix_tools/lib/ruby/1.8/i686-linux/missing.h:43: error: from previous declaration ‘int eaccess(const char*, int)’

QT4DIRを設定しなかった場合別のエラーが出て一度give upした。 LD_LIBRARY_PATHの設定はQt4Rubyのインストール

には不要だったようだ。

私の環境の場合、gem install qtbindings はエラーで止まってお手上げだった。

3.最後に、Qt4アプリを起動したところ、cannot restore segment prot after reloc: Permission deniedというエラーが出た。SElinuxに関係した以下のおまじないでOK.

chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /home/anagix/anagix_tools/lib/ruby/site_ruby/1.8/i686-linux/qtruby4.so