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

2011/01/12 22:10 に 森山誠二郎 が投稿   [ 2011/05/10 1:15 に更新しました ]
これらをアナジックスのツール群と同じ/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
Comments