!!!Linuxの選択 !!利用するLinuxを選択する。 CentOS 5.5(RedHat Linux Clone OS)の64bit版を利用する。 *CentOS:http://www.centos.org/ !!インストール作業 *テキストマイニングで扱うデータが多い為,Rで計算するとメモリエラーが表示される。 **この改善策は,64bitOSとR(64bit版)を利用することにより,扱えるメモリ容量(2GB超)が増加すると知ったからである{{fn http://phoenixx.sakura.ne.jp/R/wiki.cgi?page=BugTrack%2D%A3%D2%C8%F7%CB%BA%CF%BF%2F16}}。 **OSは,32bit版OSではなく,64bit版OSを利用する。 **Rも32bit版ではなく,64bit版を利用する。 *動作環境 **Panasonic Let's Note CF-W8(CPU:Core2Duo MEM:4GB) **VMWARE 1.0.9 でCentOS5.5(64bitOS)をインストール {{ref_image r_demo2.jpg}} !!!LinuxにRをインストール !!R(64bit版)をインストール *かなり強引なインストール方法です。きちんと整理し,シェル形式で書くつもりです。 **以下,CentOS5.5(64bit)をインストール後,R(64bit)をダウンロードし,インストールを行ったログです。 [root@localhost kinya]# cd /usr/local/src/ [root@localhost src]# wget http://cran.md.tsukuba.ac.jp/bin/linux/redhat/el5/x86_64/R-2.10.0-2.el5.x86_64.rpm [root@localhost src]# wget http://cran.md.tsukuba.ac.jp/bin/linux/redhat/el5/x86_64/R-core-2.10.0-2.el5.x86_64.rpm [root@localhost src]# wget http://cran.md.tsukuba.ac.jp/bin/linux/redhat/el5/x86_64/R-devel-2.10.0-2.el5.x86_64.rpm [root@localhost src]# wget http://cran.md.tsukuba.ac.jp/bin/linux/redhat/el5/x86_64/libRmath-2.10.0-2.el5.x86_64.rpm [root@localhost src]# wget http://cran.md.tsukuba.ac.jp/bin/linux/redhat/el5/x86_64/libRmath-devel-2.10.0-2.el5.x86_64.rpm [root@localhost src]# ls R-2.10.0-2.el5.x86_64.rpm libRmath-2.10.0-2.el5.x86_64.rpm R-core-2.10.0-2.el5.x86_64.rpm libRmath-devel-2.10.0-2.el5.x86_64.rpm R-devel-2.10.0-2.el5.x86_64.rpm [root@localhost src]# rpm -ivh libRmath-2.10.0-2.el5.x86_64.rpm [root@localhost src]# rpm -ivh libRmath-devel-2.10.0-2.el5.x86_64.rpm [root@localhost src]# yum -y install bzip2-devel* [root@localhost src]# yum -y install gcc* [root@localhost src]# yum -y install perl* [root@localhost src]# yum -y install tetex-latex* [root@localhost src]# yum -y install xdg-utils* [root@localhost src]# yum -y install libX* [root@localhost src]# yum -y install pcre-devel* [root@localhost src]# yum -y install tcl-devel* [root@localhost src]# yum -y install tk-devel* [root@localhost src]# wget http://packages.sw.be/perl-File-Recurse/perl-File-Recurse-0.11-1.2.el5.rf.noarch.rpm [root@localhost src]# wget ftp://ftp.pbone.net/mirror/centos.karan.org/el5/extras/testing/i386/RPMS/perl-File-Copy-Recursive-0.35-1.el5.kb.noarch.rpm [root@localhost src]# wget http://packages.sw.be/perl-File-Copy-Recursive/perl-File-Copy-Recursive-0.38-1.el5.rf.noarch.rpm [root@localhost src]# ls R-2.10.0-2.el5.x86_64.rpm libRmath-devel-2.10.0-2.el5.x86_64.rpm R-core-2.10.0-2.el5.x86_64.rpm perl-File-Copy-Recursive-0.35-1.el5.kb.noarch.rpm R-devel-2.10.0-2.el5.x86_64.rpm perl-File-Copy-Recursive-0.38-1.el5.rf.noarch.rpm libRmath-2.10.0-2.el5.x86_64.rpm perl-File-Recurse-0.11-1.2.el5.rf.noarch.rpm [root@localhost src]# rpm -ivh perl-File-Recurse-0.11-1.2.el5.rf.noarch.rpm [root@localhost src]# rpm -ivh perl-File-Copy-Recursive-0.38-1.el5.rf.noarch.rpm [root@localhost src]# rpm -ivh R-core-2.10.0-2.el5.x86_64.rpm [root@localhost src]# rpm -ivh R-devel-2.10.0-2.el5.x86_64.rpm [root@localhost src]# rpm -ivh R-2.10.0-2.el5.x86_64.rpm *ここまで終了すると,GNOMEの端末コンソールより,Rを立ち上げる。 **demo(graphics)とコマンドを打つと,以下のような綺麗なグラフのデモを見ることができる。 **Rのコマンドラインから次のように入力する。 > demo(graphics) {{ref_image r_demo3.jpg}} !!MeCabのインストール *形態素分析器MeCabをインストール [root@localhost kinya]# cd /usr/local/src/ [root@localhost src]# ls R-2.10.0-2.el5.x86_64.rpm libRmath-devel-2.10.0-2.el5.x86_64.rpm R-core-2.10.0-2.el5.x86_64.rpm perl-File-Copy-Recursive-0.35-1.el5.kb.noarch.rpm R-devel-2.10.0-2.el5.x86_64.rpm perl-File-Copy-Recursive-0.38-1.el5.rf.noarch.rpm libRmath-2.10.0-2.el5.x86_64.rpm perl-File-Recurse-0.11-1.2.el5.rf.noarch.rpm [root@localhost src]# wget http://downloads.sourceforge.net/project/mecab/mecab/0.98/mecab-0.98.tar.gz?use_mirror=jaist&ts=1280729466 [root@localhost src]# wget http://downloads.sourceforge.net/project/mecab/mecab-ipadic/2.7.0-20070801/mecab-ipadic-2.7.0-20070801.tar.gz?use_mirror=jaist&ts=1280729552 [root@localhost src]# ls R-2.10.0-2.el5.x86_64.rpm mecab-0.98.tar.gz R-core-2.10.0-2.el5.x86_64.rpm mecab-ipadic-2.7.0-20070801.tar.gz R-devel-2.10.0-2.el5.x86_64.rpm perl-File-Copy-Recursive-0.35-1.el5.kb.noarch.rpm libRmath-2.10.0-2.el5.x86_64.rpm perl-File-Copy-Recursive-0.38-1.el5.rf.noarch.rpm libRmath-devel-2.10.0-2.el5.x86_64.rpm perl-File-Recurse-0.11-1.2.el5.rf.noarch.rpm [root@localhost src]# tar xvfz mecab-0.98.tar.gz [root@localhost src]# cd mecab-0.98 [root@localhost mecab-0.98]# ./configure --with-charset=utf8 --enable-utf8-only [root@localhost mecab-0.98]# make [root@localhost mecab-0.98]# make install [root@localhost mecab-0.98]# cd .. [root@localhost src]# tar xvfz mecab-ipadic-2.7.0-20070801.tar.gz [root@localhost src]# cd mecab-ipadic-2.7.0-20070801 [root@localhost mecab-ipadic-2.7.0-20070801]# ./configure --with-charset=utf8 [root@localhost mecab-ipadic-2.7.0-20070801]# make [root@localhost mecab-ipadic-2.7.0-20070801]# make install *MeCabの動作確認 **インストールした後,以下のサンプルプログラムを入力し,うまく表示されればOK。 [root@localhost src]# echo "今日はいい天気です。" | mecab 今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー は 助詞,係助詞,*,*,*,*,は,ハ,ワ いい 形容詞,自立,*,*,形容詞・イイ,基本形,いい,イイ,イイ 天気 名詞,一般,*,*,*,*,天気,テンキ,テンキ です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス 。 記号,句点,*,*,*,*,。,。,。 EOS **茶筅(ちゃせん)オプションを使うと次の通りになります。 [root@localhost src]# echo "今日はいい天気です。" | mecab -Ochasen 今日 キョウ 今日 名詞-副詞可能 は ハ は 助詞-係助詞 いい イイ いい 形容詞-自立 形容詞・イイ 基本形 天気 テンキ 天気 名詞-一般 です デス です 助動詞 特殊・デス 基本形 。 。 。 記号-句点 EOS !!RMeCabのインストール *RMeCabは,うまくwgetできなかったので,GNOME上のブラウザからダウンロードする。 **http://groups.google.com/group/rmecab/files **ファイル名は,次の通り。 **RMeCab_0.86_R_x86_64-unknown-linux-gnu.tar.gz root権限で,ダウンロードしてきたので,以下のフォルダに該当ソフトがあるので,移動する。 [root@localhost src]# cd /root/ [root@localhost ~]# ls Desktop anaconda-ks.cfg install.log install.log.syslog [root@localhost ~]# cd DEesktop/ [root@localhost Desktop]# ls RMeCab_0.86_R_x86_64-unknown-linux-gnu.tar.gz [root@localhost Desktop]# mv RMeCab_0.86_R_x86_64-unknown-linux-gnu.tar.gz /usr/local/src/ [root@localhost Desktop]# cd /usr/local/src/ */usr/local/srcの現在の中身は,次の通り [root@localhost src]# ls R-2.10.0-2.el5.x86_64.rpm R-core-2.10.0-2.el5.x86_64.rpm R-devel-2.10.0-2.el5.x86_64.rpm RMeCab_0.86.tar.gz RMeCab_0.86_R_x86_64-unknown-linux-gnu.tar.gz libRmath-2.10.0-2.el5.x86_64.rpm libRmath-devel-2.10.0-2.el5.x86_64.rpm mecab-0.98 mecab-0.98.tar.gz mecab-ipadic-2.7.0-20070801 mecab-ipadic-2.7.0-20070801.tar.gz perl-File-Copy-Recursive-0.35-1.el5.kb.noarch.rpm perl-File-Copy-Recursive-0.38-1.el5.rf.noarch.rpm perl-File-Recurse-0.11-1.2.el5.rf.noarch.rpm *Rに先ほどダウンロードしてきたパッケージを読み込ませると・・・ 下記のエラーがR上で表示されるため,/etc/ld.so.confに追記する。 (エラー内容) Error in dyn.load(file, DLLpath = DLLpath, ...) : 共有ライブラリ '/usr/lib64/R/library/RMeCab/libs/RMeCab.so' を読み込めません libmecab.so.1: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません エラー: 'RMeCab' に対するパッケージもしくは名前空間のロードが失敗しました [root@localhost library]# vi /etc/ld.so.conf.d/mecab.conf /usr/local/libを追加する。 [root@localhost library]# /sbin/ldconfig ←設定を反映させる。 *Rに先ほどダウンロードしてきたパッケージを読み込ませる。 [root@localhost src]# R R version 2.10.0 (2009-10-26) Copyright (C) 2009 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Rは、自由なソフトウェアであり、「完全に無保証」です。 一定の条件に従えば、自由にこれを再配布することができます。 配布条件の詳細に関しては、'license()'あるいは'licence()'と入力してください。 Rは多くの貢献者による共同プロジェクトです。 詳しくは'contributors()'と入力してください。 また、RやRのパッケージを出版物で引用する際の形式については 'citation()'と入力してください。 'demo()'と入力すればデモをみることができます。 'help()'とすればオンラインヘルプが出ます。 'help.start()'でHTMLブラウザによるヘルプがみられます。 'q()'と入力すればRを終了します。 [以前にセーブされたワークスペースを復帰します] > install.packages("RMeCab_0.86_R_x86_64-unknown-linux-gnu.tar.gz" , destdir = "." , repos = NULL) install.packages("RMeCab_0.86.tar.gz", destdir = ".", repos = NULL) 中で警告がありました: 引数 'lib' が欠けています:/usr/lib64/R/library を使います * installing *binary* package ‘RMeCab’ ... * DONE (RMeCab) *RMeCabの動作確認 [root@localhost library]# R R version 2.10.0 (2009-10-26) Copyright (C) 2009 The R Foundation for Statistical Computing ISBN 3-900051-07-0 Rは、自由なソフトウェアであり、「完全に無保証」です。 一定の条件に従えば、自由にこれを再配布することができます。 配布条件の詳細に関しては、'license()'あるいは'licence()'と入力してください。 Rは多くの貢献者による共同プロジェクトです。 詳しくは'contributors()'と入力してください。 また、RやRのパッケージを出版物で引用する際の形式については 'citation()'と入力してください。 'demo()'と入力すればデモをみることができます。 'help()'とすればオンラインヘルプが出ます。 'help.start()'でHTMLブラウザによるヘルプがみられます。 'q()'と入力すればRを終了します。 > > library(RMeCab) > RMeCabC("コーヒーに300円使いました。") [[1]] 名詞 "コーヒー" [[2]] 助詞 "に" [[3]] 名詞 "300" [[4]] 名詞 "円" [[5]] 動詞 "使い" [[6]] 助動詞 "まし" [[7]] 助動詞 "た" [[8]] 記号 "。" > > res <- RMeCabC("これはペンです。") > res [[1]] 名詞 "これ" [[2]] 助詞 "は" [[3]] 名詞 "ペン" [[4]] 助動詞 "です" [[5]] 記号 "。" > unlist(res) 名詞 助詞 名詞 助動詞 記号 "これ" "は" "ペン" "です" "。" > q() Save workspace image? [y/n/c]: y !!!WindowsとVMWARE上のR(Linux)とのデータ共有 !!Sambaの設定 !Sambaのインストール [root@localhost ~]# yum -y install samba !Sambaサーバーアクセス用ユーザ作成 [root@localhost ~]# useradd user [root@localhost ~]# passwd user Changing password for user user. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. !ホームディレクトリを作成(新規ユーザ) [root@localhost ~]# mkdir /etc/skel/samba !ホームディレクトリを作成(既存ユーザ) [root@localhost ~]# vi mkhomedir.sh #!/bin/bashfor user in `ls /home` do id $user > /dev/null 2>&1 [ $? -eq 0 ] && \ [ ! -d /home/$user/samba ] && \ mkdir /home/$user/samba && \ chown $user:$user /home/$user/samba && \ echo "/home/$user/samba create" done [root@localhost ~]# sh mkhomedir.sh /home/user/samba create !共有ディレクトリを作成 [root@localhost ~]# mkdir /home/samba [root@localhost ~]# chown nobody:nobody /home/samba !Samba設定 [root@localhost ~]# vi /etc/samba/smb.conf 参考サイト http://centossrv.com/samba.shtml !Sambaがうまく動かない場合,次の作業も行った。(1) ・ネットワーク設定(設定内容は,参考URLから拝借) ・natする。dhcp は使わない。 $ cat /etc/sysconfig/network-scripts/ifcfg-eth0 # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] DEVICE=eth0 BOOTPROTO=static HWADDR=00:50:56:7E:06:58 IPADDR=192.168.249.10 NETMASK=255.255.255.0 GATEWAY=192.168.249.2 ONBOOT=yes ・変更を反映させる為に次のコマンドで更新。 # /sbin/service network restart 参考URL http://d.hatena.ne.jp/ZIGOROu/20090111/1231673135 !Sambaがうまく動かない場合,次の作業も行った。(2) ・SElinuxが原因? # getenforce で状態確認 # setenforce 0 SELinux無効化 ・iptablesが原因? ・確認方法 /etc/init.d/iptables stop ・これでアクセスできたらiptablesが原因 ・sambaを許可 iptables -I INPUT 3 -p tcp --dport 445 -j ACCEPT iptables -I INPUT 3 -p tcp --dport 139 -j ACCEPT iptables -I INPUT 3 -p udp --dport 138 -j ACCEPT iptables -I INPUT 3 -p upd --dport 137 -j ACCEPT 参考URL(サンプル事例をコピーさせて頂きました) http://d.hatena.ne.jp/red_snow/20100805/1280984405 !Sambaがうまく動かない場合,次の作業も行った。(3) ・Windowsは,sambaのhome directryを認識できなかった為,次の作業を行った。 原因は,Linux側の設定が,localhost.localdomainとなっている事。 ・network ファイルを開いて設定を変更 # vi /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=yes HOSTNAME=localhost.localdomain ・変更例 NETWORKING=yes NETWORKING_IPV6=yes HOSTNAME=vm-host ・Linuxを再起動させる # reboot 参考URL http://wopose.blogspot.com/2009/10/vmware-centos-samba.html !!Linux(Samba)-Windowsでの不具合 *文字コードの不具合 **Linux(Samba)側 UTF-8,Windows側 SJIS **資料(.TXT処理済)をSambaにアップロード **TeratermでRを起動させる。→Windows側からプログラムをコピー&ペーストをして処理をさせる。 **以上の処理で資料の文字を読み取らず,テキストマイニングできないエラーが生じた。 *理由 **Windowsで作成した資料の文字コードは,SJIS(Sambaでは,CP932)。Linux(Samba)は,UTF-8。 **このような理由から,Linux側では,SJISのデータは,文字化けをしていた模様。 *解決策 **Linux(Samba)側にアップしたデータをエディタで開き,文字コードをUTF-8で保存しなおす必要あり。 *その他の解決策? **Linux(Samaba)側の設定(/etc/samba/smb.conf)の文字コードを変更すればOK? **参考URL **http://d.hatena.ne.jp/rsyudo/20070621/p1 !!!LinuxPCの複数台活用 PC Clusterを参照 {{footnote_list}}