2012年7月11日水曜日

Ruby on Railsをさくらレンタルサーバにインストール・・・ができないことが判明した件

最初に結論から書くと,さくらのレンタルサーバにrailsをインストールするのは難しいようだ.
数年前まではいけたっぽいけど,今は無理みたい.





学会ページ作成のために,さくらレンタルサーバにRailsを導入して,Railsの勉強をしてみる.
基本的な手順は以下の通り.

  1. RubyGemsをインストール
  2. gemを使ってrailsをインストール

ただし,レンタルサーバなのでローカルに入れなければ行けない.
とりあえず,インストール場所は
~/local/bin

~/local/lib

以下にしてみる.
というわけで,以下手順.

RubyGemsをインストール

http://rubyforge.org/frs/?group_id=126
で最新版を探してダウンロード
$ cd
$ mkdir src
$ cd src
$ wget http://rubyforge.org/frs/download.php/76073/rubygems-1.8.24.tgz

インストールする場所を作成
$ mkdir local

$ tar zxvf rubygems-1.8.24.tgz
$ ruby setup.rb --prefix=$HOME/local/
RubyGems 1.8.24 installed



== 1.8.24 / 2012-04-27



* 1 bug fix:



  * Install the .pem files properly. Fixes #320

  * Remove OpenSSL dependency from the http code path





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



RubyGems installed the following executables:

        /home/name/local/bin/gem18

$ cd
$ emacs .cshrc
...

set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/\

bin $HOME/local/bin)

setenv RUBYLIB $HOME/local/lib

setenv GEM_HOME $HOME/local/lib/ruby/gem

$ sources .cshrc
$ gem --version
1.8.24

Railsをインストール

$ gem18 install rails --include-dependencies
chown/chgrp: Operation not permitted
エラーだ.
解決策はこちら
http://playet.jugem.jp/?eid=56

$ setenv RB_USER_INSTALL true
$ gem18 install rails --include-dependencies

成功したように見えるのに,なぜかrailsが入っていない.
おや?
Pathに
$HOME/local/lib/ruby/gem/bin
が必要だった.
.cshrcに追加
...

set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin $HOME/local/bin $HOME/local/lib/ruby/gem/bin)

$ source .cshrc
$ rails -v
Rails 3.2.6
お~.できたできた.

それじゃ,早速アプリケーションを作成してみましょうかね.

$ cd
$mkdir Rails
$ rails new HelloWolrd
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/local/bin/ruby18 extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal'
or 'yum install sqlite-devel' and check your shared library search path (the
location where your sqlite3 shared library is located).
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/usr/local/bin/ruby18
        --with-sqlite3-dir
        --without-sqlite3-dir
        --with-sqlite3-include
        --without-sqlite3-include=${sqlite3-dir}/include
        --with-sqlite3-lib
        --without-sqlite3-lib=${sqlite3-dir}/lib
        --enable-local
        --disable-local


Gem files will remain installed in /home/name/local/lib/ruby/gem/gems/sqlite3-1.3.6 for inspection.
Results logged to /home/name/local/lib/ruby/gem/gems/sqlite3-1.3.6/ext/sqlite3/gem_make.out
An error occured while installing sqlite3 (1.3.6), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.6'` succeeds before bundling.
おや?
続けていくと,次々怒られるので,順番にgemでインストールしていって見る.
$ gem18 install coffee-script
$ gem18 install coffee-rails
$ gem18 install sass
$ gem18 install sass-rails
$ gem18 install sqlite3

ここまで順調だったが,ここで問題発生.
Make sure that `gem install sqlite3 -v '1.3.6'` succeeds before bundling.

だけど,さくらに入っているのはsqlite3 ver 3.7.9 20
とりあえず古いバージョンをインストールしてみる.
$ gem install sqlite3-ruby --version=1.2.4
$ rails new HelloWorld
...
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
        /usr/local/bin/ruby18 extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal'
or 'yum install sqlite-devel' and check your shared library search path (the
location where your sqlite3 shared library is located).
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.


Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/usr/local/bin/ruby18
        --with-sqlite3-dir
        --without-sqlite3-dir
        --with-sqlite3-include
        --without-sqlite3-include=${sqlite3-dir}/include
        --with-sqlite3-lib
        --without-sqlite3-lib=${sqlite3-dir}/lib
        --enable-local
        --disable-local


Gem files will remain installed in /home/name/local/lib/ruby/gem/gems/sqlite3-1.3.6 for inspection.
Results logged to /home/name/local/lib/ruby/gem/gems/sqlite3-1.3.6/ext/sqlite3/gem_make.out
An error occured while installing sqlite3 (1.3.6), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.6'` succeeds before bundling.
調べてみると,結構インストールのやり方が出てくるけど,皆情報が古い.
ここ1年で検索してみると,
http://okwave.jp/qa/q5323794.html
http://d.hatena.ne.jp/ar_tama/20120212/1329027876
を見る限り無理っぽい
なんてこったい.

2012年7月10日火曜日

Hadoop再インストール

Hadoopのインストールにチャレンジ中だけど,どうも通常のHadoopをインストールするよりも,CDH(Cloudera's Distribution including Apache Hadoop)をインストールする方が色々良さそうなので,インストールを試みた.
ところが,一度通常のHadoopをインストールしていると,どうも動きがおかしいということが分かったので,いっそOSから再インストール.


参考URL
http://www.ne.jp/asahi/hishidama/home/tech/apache/hadoop/hadoopCDH3.html

まずは,yumでCDHがダウンロードできるようにリポジトリを更新.
# cd /etc/yum.repos.d/
# wget http://archive.cloudera.com/redhat/cdh/cloudera-cdh3.repo
# yum update yum

次に,Hadoopをインストール.
# yum install hadoop-0.20
実行してみたら,エラー.何かと思ったら,
JAVAをインストールしていなかったw

素直にsun.javaからインストール.
rpmなら何も考えずにインストール可能.

次に実行したら,今度はホスト名が見つからないと怒られたので,
/etc/host
ホスト名を追加

最後に,
Hadoopの擬似分散モード用設定ファイル集のダウンロード
# yum -y install hadoop-0.20-conf-pseudo

# alternatives --display hadoop-0.20-conf
# alternatives --config hadoop-0.20-conf
で,
conf.pseudoを選択

最後に無事動いたかどうかを確認.
$ hadoop jar /usr/lib/hadoop/hadoop-*-examples.jar pi 4 2000
無事実行完了
ちなみに,実行中は
で,namenode情報
http://localhost:50030
で,MapReduce情報
を見ることが可能.
ちょっと重たいものを走らせてMapReduce情報を見ると,ちゃんと進行状況が分かって面白い.
通常版はインストールにめちゃめちゃ手間取ったけど,CDH版は一瞬でインストール完了.
さて,これから色々遊んでみよう.



2012年7月3日火曜日

HADOOPインストールトライ中

あまりにもTwitterデータの数が多すぎて,単体のマシンでは処理が難しくなってきたので,HADOOPを使ってみることにした.
 まずは,スタンドアロンな環境から.
基本的には,Hadoop徹底入門を参考にして入れてみる. 

  • OSはCentOS6.2
  • Hadoopのバージョンは0.20.205

0.20系が1.0につながるものらしいので,まあ,これでいいだろうと.

本の通りにインストール作業をすれば,基本的には大丈夫.
ただ,一点だけはまったのが, start-dfs.sh の実行.
普通の設定で実行しようとすると
Warning: $HADOOP_HOME is deprecated
と表示されうまく起動しない. そこで,
hadoop-env.sh
に,
export HADOOP_HOME_WARN_SUPPRESS="TRUE"
を追加.
これで,無事start-dfs.shが実行された. まだMapReduceにもたどり着いていないけど.