May 2014  |  01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

CentOS6にCINT(ROOT)のインストール

JUGEMテーマ:コンピュータ

昨日のメモの続き、実のところこちらが本来の目的で、昨日のはその準備とういうところ。
自宅のファンレスのしょぼいサーバのCPUでは、2日にわけてコンパイルしてちょうど良い感じでもある。
ちなみに、インストールをしたサーバマシンはShuttle DS47、CPUはCeleron 847
アプリ開発の作業には十分な性能だと信じてる。なにより、デュアルポートの低消費電力サーバとしてはありがたいマシンである。

さておき、ROOTのインストールをやってみた。ROOTのソーツリーはgitリポジトリからコピーできる。
$ git clone http://root.cern.ch/git/root.git
あとは、そのソースディレクトリで、メイクするだけ。
$ cd root/
$ make
としたいところだが、コンパイラは昨日インストールしたGCC11を使うので、インストールしたディレクトリのパス( /usr/local 下)の設定をする。
$  echo $PATH
で、/usr/local/bin が含まれることを確認し、
$  which gcc
/usr/local/bin/gcc
がコンパイルに使われることを確認する。また、昨日のメモのインストールの結果、コンパイラのライブラリのパスが/usr/local/lib64にインストールされているのでそこへのパスがLD_LIBRARY_PATH環境変数に含まれることを確認しなければ、設定する。
$ export LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib
$ echo $LD_LIBRARY_PATH 
さて、準備が整ったらメイクをする。
$ make
が、途中オブジェクトがないと言われるわけで、その都度、オブジェクトを指定してメイクして、また、メイク。
$ make
$ make core/metautils/src/RConversionRuleParser.o
$ make
$ make core/metautils/src/TClassEdit.o
$ make
        ...
そして、また、一休みして戻ると、うれしいメッセージが現れた。
   ============================================================
   ===                ROOT BUILD SUCCESSFUL.                ===
   === Run 'source bin/thisroot.[c]sh' before starting ROOT ===
   ============================================================
最後に、CINTを実行してみるには、その場所で、次のスクリプトを実行する。
$ . bin/thisroot.sh
あとは、好きに試してみる。
$ ./bin/root
*** DISPLAY not set, setting it to 192.168.1.27:0.0
PopupLogo, XOpenDisplay failed
  *******************************************
  *                                         *
  *        W E L C O M E  to  R O O T       *
  *                                         *
  *   Version   5.99/06      3 April 2014   *
  *                                         *
  *  You are welcome to visit our web site  *
  *          http://root.cern.ch            *
  *                                         *
  * !!! THIS IS A PREPRODUCTION VERSION !!! *
  * Please use 5.34 for any real work until *
  * ROOT 6 is released.                     *
  *                                         *
  *******************************************

ROOT 5.99/06 (heads/master@v5-99-06-340-gbd503dc,  5¥u6708 07 2014, 20:33:48 on linuxx8664gcc)
cling C/C++ Interpreter: type .? for help.
root [0] 

 

CentOS6にC11(GCC)のインストール

JUGEMテーマ:コンピュータ

数年ぶりに、ある知り合いからメールが来た。
C言語の判定文の内容(式)をスクリプト言語のようにリアルタイムで変られないかというような内容だった。
大抵のスクリプト言語を使うと eval()関数を使うことでアドホックな判定分を実装することができるのだけど、
コンパイル言語では、コンパイルとダイナミックロードというのが、一般的なソリューションとなる。
結局そこまでする気はないということだったので、その話はそれでおしまい。

後日談になるけど、CINTというC++言語のインタープリターをご記憶の方もいると思う。CERN(セルン:ヨーロッパ合同原子核研究機関)で開発されていた
調べてみると、CINTはROOTというシステムのインタープリタとして現在もCERNで開発が続いていた。
http://root.cern.ch/drupal/content/cint
※個人的にはDrupalをCMSに使っていたことにも驚いた。

少し古いけど日本語のドキュメントも見つかった。
http://www.dw-sapporo.co.jp/technology/root_cint_dw_documents/root_cint_dw_documents

では、ダウンロードしてインストールしようと思ったのだが。OSはCentOS 6.x。 しかし、C11 準拠の
コンパイラが必要ということでコンパイルできなかった。そこで、C11なるコンパイラをインストール
しなくてはというわけで、C11準拠らしい GCC 4.9 をインストールすることにした。GCC 4.9 をインストール
するには、SVNリポジトリからソースツリーをコピーする必要があるし、そのほか、ライブラリがいくつか
(GMPとMPFRとMPC)と、flex(lex)およびbison(yacc)というツールがエラーメッセージ出たので、
したがってインストールした。
 
# yum install subversion
# yum install gmp-devel
# yum install mpfr-devel
# yum install libmpc
# yum install libmpc-devel
# yum install bison
# yum install flex

そうして、GCC 4.9 をsvnリポジトリからチェックアウトしてインストールする手順は次のとおり。
 
# svn co svn://gcc.gnu.org/svn/gcc/tags/gcc_4_9_0_release gcc
# cd gcc
# ./configure --disable-multilib
# make distclean
# make -i
# make -i install

ここでは、gcc, g++が正しくできることが目的なので、maikeがドキュメント生成のあたりで止まるのを -i オプションを加えて強制的にインストールをした。

注)上記の作業はいずれも、rootアカウントにて作業することを前提で書いている。

とりあえず、ここで一休み。
 
1
pagetop