2012年08月26日

[Ruby] 自分でインストールしたSQLiteを優先して使う

homebrewでsqliteをインストールしたところ /usr/local/bin にインストールされました。
ただ、これだとプリインストールされていたsqliteが使われてしまいます。
そこで…。

Homebrewを快適に使うために設定してる4つのこと | Macとかの雑記帳
http://tukaikta.blog135.fc2.com/blog-entry-208.html

こちらに書かれていた通りに「/etc/paths」を書き換えました。
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

.bashrcで書き換える方法というのもあるらしいのですが…?
このMacは自分しか使わないし、とりあえずはこれで良いや。
タグ:SQLite
posted by t2low at 23:28| Ruby

2012年08月22日

[Ruby] rbenvのアンインストールとRVM、Railsのインストール

前回の続きです。

rvmやめてrbenvにしてみた - Meltdown Countdown rev.
http://marutanm.hatenablog.com/entry/20110818/p1

t2low:~ t2low$ rm -rf ~/.rbenv/
t2low:~ t2low$ rm -rf /usr/local/bin/rbenv
t2low:~ t2low$ rm -rf /usr/local/Cellar/rbenv/

rbenvのアンインストールがよくわからなかったので、上のサイトを参考に削除してみましたが…Homebrewでインストールしたんだから、アンインストールする手段もあったんじゃ…?
時すでに遅し、ですが。
あと「rbenv-install」ってコマンドが残りました。消し方わからんし、とりあえず放置します…。

続いてRailsのインストールです。
これはせっかく買った改訂新版 基礎Ruby on Rails (IMPRESS KISO SERIES)を見て行いました。
20ページに書いてあるとおりです。
t2low:~ t2low$ sudo gem install rails --version "~> 3.2.1" --no-rdoc --no-ri
Password:
Fetching: i18n-0.6.0.gem (100%)
Fetching: multi_json-1.3.6.gem (100%)
Fetching: activesupport-3.2.8.gem (100%)
Fetching: builder-3.0.0.gem (100%)
Fetching: activemodel-3.2.8.gem (100%)
Fetching: rack-1.4.1.gem (100%)
Fetching: rack-cache-1.2.gem (100%)
Fetching: rack-test-0.6.1.gem (100%)
Fetching: journey-1.0.4.gem (100%)
Fetching: hike-1.2.1.gem (100%)
Fetching: tilt-1.3.3.gem (100%)
Fetching: sprockets-2.1.3.gem (100%)
Fetching: erubis-2.7.0.gem (100%)
Fetching: actionpack-3.2.8.gem (100%)
Fetching: arel-3.0.2.gem (100%)
Fetching: tzinfo-0.3.33.gem (100%)
Fetching: activerecord-3.2.8.gem (100%)
Fetching: activeresource-3.2.8.gem (100%)
Fetching: mime-types-1.19.gem (100%)
Fetching: polyglot-0.3.3.gem (100%)
Fetching: treetop-1.4.10.gem (100%)
Fetching: mail-2.4.4.gem (100%)
Fetching: actionmailer-3.2.8.gem (100%)
Fetching: rack-ssl-1.3.2.gem (100%)
Fetching: thor-0.16.0.gem (100%)
Fetching: json-1.7.5.gem (100%)
Building native extensions. This could take a while...
Fetching: rdoc-3.12.gem (100%)
Depending on your version of ruby, you may need to install ruby rdoc/ri data:

<= 1.8.6 : unsupported
= 1.8.7 : gem install rdoc-data; rdoc-data --install
= 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
Fetching: railties-3.2.8.gem (100%)
Fetching: rails-3.2.8.gem (100%)
Successfully installed i18n-0.6.0
Successfully installed multi_json-1.3.6
Successfully installed activesupport-3.2.8
Successfully installed builder-3.0.0
Successfully installed activemodel-3.2.8
Successfully installed rack-1.4.1
Successfully installed rack-cache-1.2
Successfully installed rack-test-0.6.1
Successfully installed journey-1.0.4
Successfully installed hike-1.2.1
Successfully installed tilt-1.3.3
Successfully installed sprockets-2.1.3
Successfully installed erubis-2.7.0
Successfully installed actionpack-3.2.8
Successfully installed arel-3.0.2
Successfully installed tzinfo-0.3.33
Successfully installed activerecord-3.2.8
Successfully installed activeresource-3.2.8
Successfully installed mime-types-1.19
Successfully installed polyglot-0.3.3
Successfully installed treetop-1.4.10
Successfully installed mail-2.4.4
Successfully installed actionmailer-3.2.8
Successfully installed rack-ssl-1.3.2
Successfully installed thor-0.16.0
Successfully installed json-1.7.5
Successfully installed rdoc-3.12
Successfully installed railties-3.2.8
Successfully installed rails-3.2.8
29 gems installed

Railsってよくわかってなかったのですが、gemの集合なんですかね。
t2low:~ t2low$ rails -v
Rails 3.2.8

最後にバージョンを確認しておしまい。
ようやくRailsの勉強に入ります。
長かった。
posted by t2low at 00:26| Ruby

2012年08月21日

[Ruby] rbenvへの乗り換え?

先日rvmのインストールを終えたばかりだというのに、巷の「rbenvいいよ」という記事を見かけてrbenvに乗り換えてみようかと作業を開始しました。
(この時点でてきとーにrvmのアンインストールをしたせいか、プリインストールのrubyにも影響してしまったらしく、まともに動かない状態)

Ruby on Rails 3.2 を Mac OS X にインストールする手順をかなり丁寧に説明してみました - Rails 雑感 - Ruby on Rails with OIAX
http://www.oiax.jp/rails/zakkan/rails_3_1_installation_on_macosx.html

参考にさせていただいた記事はこちら↑。
とりあえず、手順どおりに進めます。
途中からですけど。
t2low:~ t2low$ brew install rbenv
==> Downloading https://github.com/sstephenson/rbenv/tarball/v0.3.0
######################################################################## 100.0%
==> Caveats
To enable shims and autocompletion, add rbenv init to your profile:
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
==> Summary
/usr/local/Cellar/rbenv/0.3.0: 32 files, 160K, built in 8 seconds

インストールできたみたい。
t2low:~ t2low$ brew install ruby-build
==> Downloading https://github.com/sstephenson/ruby-build/tarball/v20120524
######################################################################## 100.0%
==> ./install.sh
/usr/local/Cellar/ruby-build/20120524: 45 files, 196K, built in 6 seconds
t2low:~ t2low$

かんたんかんたん(コピペだし)。
t2low:~ t2low$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
t2low:~ t2low$ source ~/.bash_profile

rbenvの初期設定でしょうか。
よくわからないまま進んでいきます…。
t2low:~ t2low$ CONFIGURE_OPTS="--with-readline-dir=/usr/local" rbenv install 1.9.3-p194
Downloading http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz...
Installing yaml-0.1.4...
Installed yaml-0.1.4 to /Users/t2low/.rbenv/versions/1.9.3-p194
Downloading http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz...
Installing ruby-1.9.3-p194...
Installed ruby-1.9.3-p194 to /Users/t2low/.rbenv/versions/1.9.3-p194

これはrubyのインストールでしょうかね。
結構時間かかりました。
t2low:~ t2low$ rbenv rehash
t2low:~ t2low$ rbenv global 1.9.3-p194
t2low:~ t2low$ rbenv version
1.9.3-p194 (set by /Users/t2low/.rbenv/version)
t2low:~ t2low$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin12.0.0]

rubyがきちんと再インストールされました。
よかったよかった…。
できなかったらどうしようかと…。
t2low:~ t2low$ cat ~/.gemrc 
install: --no-ri --no-rdoc
update: --no-ri --no-rdoc

なんか.gemrcを作るらしいです。デフォルトの設定でしょうか。
続いて、railsもインストールしちゃいます。
t2low:~ t2low$ rbenv exec gem install rails --version="~> 3.2.6"
Fetching: i18n-0.6.0.gem (100%)
Fetching: multi_json-1.3.6.gem (100%)
Fetching: activesupport-3.2.8.gem (100%)
Fetching: builder-3.0.0.gem (100%)
Fetching: activemodel-3.2.8.gem (100%)
Fetching: rack-1.4.1.gem (100%)
Fetching: rack-cache-1.2.gem (100%)
Fetching: rack-test-0.6.1.gem (100%)
Fetching: journey-1.0.4.gem (100%)
Fetching: hike-1.2.1.gem (100%)
Fetching: tilt-1.3.3.gem (100%)
Fetching: sprockets-2.1.3.gem (100%)
Fetching: erubis-2.7.0.gem (100%)
Fetching: actionpack-3.2.8.gem (100%)
Fetching: arel-3.0.2.gem (100%)
Fetching: tzinfo-0.3.33.gem (100%)
Fetching: activerecord-3.2.8.gem (100%)
Fetching: activeresource-3.2.8.gem (100%)
Fetching: mime-types-1.19.gem (100%)
Fetching: polyglot-0.3.3.gem (100%)
Fetching: treetop-1.4.10.gem (100%)
Fetching: mail-2.4.4.gem (100%)
Fetching: actionmailer-3.2.8.gem (100%)
Fetching: rack-ssl-1.3.2.gem (100%)
Fetching: thor-0.16.0.gem (100%)
Fetching: railties-3.2.8.gem (100%)
Fetching: bundler-1.1.5.gem (100%)
Fetching: rails-3.2.8.gem (100%)
Successfully installed i18n-0.6.0
Successfully installed multi_json-1.3.6
Successfully installed activesupport-3.2.8
Successfully installed builder-3.0.0
Successfully installed activemodel-3.2.8
Successfully installed rack-1.4.1
Successfully installed rack-cache-1.2
Successfully installed rack-test-0.6.1
Successfully installed journey-1.0.4
Successfully installed hike-1.2.1
Successfully installed tilt-1.3.3
Successfully installed sprockets-2.1.3
Successfully installed erubis-2.7.0
Successfully installed actionpack-3.2.8
Successfully installed arel-3.0.2
Successfully installed tzinfo-0.3.33
Successfully installed activerecord-3.2.8
Successfully installed activeresource-3.2.8
Successfully installed mime-types-1.19
Successfully installed polyglot-0.3.3
Successfully installed treetop-1.4.10
Successfully installed mail-2.4.4
Successfully installed actionmailer-3.2.8
Successfully installed rack-ssl-1.3.2
Successfully installed thor-0.16.0
Successfully installed railties-3.2.8
Successfully installed bundler-1.1.5
Successfully installed rails-3.2.8
28 gems installed

これでインストール完了ですかね?確認してみます。
t2low:~ t2low$ rbenv rehash
t2low:~ t2low$ rails -v
Rails is not currently installed on this system. To get the latest version, simply type:

$ sudo gem install rails

You can then rerun your "rails" command.

なんかきちんとインストールされていないみたい。
このメッセージが出たときは…という対処法が載っていたのでそのまま続行します。
t2low:~ t2low$ rbenv exec gem install railties --version="~> 3.2.6"
Successfully installed railties-3.2.8
1 gem installed
t2low:~ t2low$ rbenv rehash
t2low:~ t2low$ rails -v
Rails is not currently installed on this system. To get the latest version, simply type:

$ sudo gem install rails

You can then rerun your "rails" command.

これでもダメみたい…。
全然わかりません。


…と、このあたりまで進めていたところ、twitterで知人からRVMも良いよ、という連絡をもらいました。
入門レベルの勉強をしている時期は身近に詳しい人がいた方が捗るだろう、というのと、 ちょうどわからなくなってたことも考えて、もう一度RVMで環境構築することにしました。
ということでここまで。
タグ:rails ruby rvm rbenv
posted by t2low at 09:11| Ruby

2012年08月20日

[Ruby][Sqlite3] SQLite3のインストール

Ruby on Rails の入門書を買いました。これです。


これにRailsにはSQLiteが要るということと、Macにもともとインストールされていると書かれていました。
最新版を使うなら…ということでコマンドも書かれていたのですが、MacPortを使う方法でした。
Homebrewでも同じようなもんかしらと以下を試してみました。
t2low:readline t2low$ sqlite3 -version
3.7.12 2012-04-03 19:43:07 86b8481be7e76cccc92d14ce762d21bfb69504af
t2low:readline t2low$ brew install sqlite3
==> Installing sqlite dependency: readline
==> Downloading http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz
######################################################################## 100.0%
==> Patching
patching file callback.c
patching file input.c
patching file patchlevel
patching file support/shobj-conf
patching file vi_mode.c
==> ./configure --prefix=/usr/local/Cellar/readline/6.2.4 --mandir=/usr/local/Cellar/readline/6.2.4/share/man --infodir=/usr/loc
==> make install
==> Caveats
This formula is keg-only, so it was not symlinked into /usr/local.

OS X provides the BSD libedit library, which shadows libreadline.
In order to prevent conflicts when programs look for libreadline we are
defaulting this GNU Readline installation to keg-only.

Generally there are no consequences of this for you.
If you build your own software and it requires this formula, you'll need
to add its lib & include paths to your build variables:

LDFLAGS -L/usr/local/Cellar/readline/6.2.4/lib
CPPFLAGS -I/usr/local/Cellar/readline/6.2.4/include
==> Summary
/usr/local/Cellar/readline/6.2.4: 30 files, 1.6M, built in 17 seconds
==> Installing sqlite
==> Downloading http://sqlite.org/sqlite-autoconf-3071300.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/sqlite/3.7.13 --enable-dynamic-extensions
==> make install
/usr/local/Cellar/sqlite/3.7.13: 9 files, 1.9M, built in 27 seconds

インストール前はSQLiteのバージョンは3.7.12だったようです。
Homebrewで3.7.13がインストールされました。

バージョンを再度確認
t2low:readline t2low$ sqlite3 -version
3.7.12 2012-04-03 19:43:07 86b8481be7e76cccc92d14ce762d21bfb69504af

変わってませんね…。
t2low:readline t2low$ /usr/local/bin/sqlite3 -version
3.7.13 2012-06-11 02:05:22 f5b5a13f7394dc143aa136f1d4faba6839eaa6dc

インストールされたところが違うようです。
こっちを使うように設定すれば良いのかしら?
古いもの(プリインストールされてたもの)はアンインストールした方が良いのかしら…?
それともプリインストールされたSQLite3をアップデートする方法がある???
MacもUNIX(Linux)の文化もわからなくてどうしたら良いのか…。

まぁ、遅いし明日以降にしよう。


追記<2012/08/24>
Homebrewを快適に使うために設定してる4つのこと | Macとかの雑記帳
http://tukaikta.blog135.fc2.com/blog-entry-208.html

ここを読んだら、/usr/local/bin/の優先順位を上げれば良いというに読める。
posted by t2low at 02:36| Ruby

2012年08月18日

[Ruby] rubyのアップデート続き

前回の記事の続きです。
tappli blog: [Ruby] rubyのアップデート
http://blog.tappli.com/article/57624952.html

参考にさせていただいているサイトはこちら。
RVMのインストール - にたまごほうれん草
http://d.hatena.ne.jp/emergent/20120408/1333886864

rvmにパスが通っていないのは不便なので、パスを通そうと思って~/.bash_profileを開きました。
そこには見覚えのない記述が…。
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

いまいち意味は理解でませんが、これを読み込み直したら何かが起きそうな気がする、と思い、以下を実行しました。
t2low:~ t2low$ source .bash_profile 

んで、以下確認。
t2low:~ t2low$ .rvm/bin/rvm -v

rvm 1.15.3 (stable) by Wayne E. Seguin , Michal Papis [https://rvm.io/]

おおお、パス通ってる。なんで?
コマンドの意味はまた今度勉強することにしよう。今はrubyのインストール中でした。
インストールコマンドは参考サイトのままです。

automakeというものが必要になるらしいので、予めインストールしておきます。
t2low:~ t2low$ brew install automake
==> Installing automake dependency: autoconf
==> Downloading http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz
Already downloaded: /Library/Caches/Homebrew/autoconf-2.69.tar.gz
==> Patching
patching file bin/autoreconf.in
==> ./configure --prefix=/usr/local/Cellar/autoconf/2.69
==> make install
/usr/local/Cellar/autoconf/2.69: 67 files, 1.9M, built in 5 seconds
==> Installing automake
==> Downloading http://ftpmirror.gnu.org/automake/automake-1.12.2.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/automake/1.12.2
==> make install
/usr/local/Cellar/automake/1.12.2: 129 files, 2.0M, built in 33 seconds

続いて、「rvm pkg install readline」を実行したところエラーが出ました。
エラーログを読め、というメッセージが出ていたので指定のログを読んでみると
どうやらmakeやCコンパイラにPATHが通ってなくてエラーになっているようです。
と思ったら、どうやらコマンドラインツールはインストールされていないようでした…。

Mac OS X Lionにしたらgccがなくてnode.jsがコンパイルできなくなった件 - 大人になったら肺呼吸
http://d.hatena.ne.jp/replication/20110726/1311687382

こちらのブログを参考にXcodeを使ってコマンドラインツールをダウンロードします。
XcodeのPreferencesを開いて、Downloadからインストールできるようです。
インストールが完了するとmakeやgccが使えるようになってました。

t2low:readline t2low$ rvm pkg install readline
Fetching readline-5.2.tar.gz to /Users/t2low/.rvm/archives
Extracting readline-5.2.tar.gz to /Users/t2low/.rvm/src
Applying patch '/Users/t2low/.rvm/patches/readline-5.2/shobj-conf.patch'...
Configuring readline in /Users/t2low/.rvm/src/readline-5.2.
Compiling readline in /Users/t2low/.rvm/src/readline-5.2.
Installing readline to /Users/t2low/.rvm/usr
Please note that it's required to reinstall all installed rubies:

rvm reinstall $(rvm list strings | tr "
" ',')
rvm all-gemsets do rvm gemset pristine


Fetching readline-6.2.tar.gz to /Users/t2low/.rvm/archives
Extracting readline-6.2.tar.gz to /Users/t2low/.rvm/src
Applying patch '/Users/t2low/.rvm/patches/readline-6.2/patch-shobj-conf.diff'...
Configuring readline in /Users/t2low/.rvm/src/readline-6.2.
Compiling readline in /Users/t2low/.rvm/src/readline-6.2.
Installing readline to /Users/t2low/.rvm/usr
Please note that it's required to reinstall all installed rubies:

rvm reinstall $(rvm list strings | tr "
" ',')
rvm all-gemsets do rvm gemset pristine

これは…インストールできたんでしょうか…?
まぁ、とりあえず次に進めます。
t2low:readline t2low$ rvm pkg install iconv
Fetching libiconv-1.13.1.tar.gz to /Users/t2low/.rvm/archives
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4605k 100 4605k 0 0 254k 0 0:00:18 0:00:18 --:--:-- 225k
Extracting libiconv-1.13.1.tar.gz to /Users/t2low/.rvm/src
Configuring libiconv in /Users/t2low/.rvm/src/libiconv-1.13.1.
Compiling libiconv in /Users/t2low/.rvm/src/libiconv-1.13.1.
Installing libiconv to /Users/t2low/.rvm/usr
Please note that it's required to reinstall all installed rubies:

rvm reinstall $(rvm list strings | tr "
" ',')
rvm all-gemsets do rvm gemset pristine

これもよくわからんです…。
いよいよrubyのインストールですね。
t2low:readline t2low$ rvm install 1.9.3 --with-readline-dir=$rvm_path/usr --with-iconv-dir=$rvm_path/usr
Fetching yaml-0.1.4.tar.gz to /Users/t2low/.rvm/archives
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 460k 100 460k 0 0 137k 0 0:00:03 0:00:03 --:--:-- 152k
Extracting yaml-0.1.4.tar.gz to /Users/t2low/.rvm/src
Configuring yaml in /Users/t2low/.rvm/src/yaml-0.1.4.
Compiling yaml in /Users/t2low/.rvm/src/yaml-0.1.4.
Installing yaml to /Users/t2low/.rvm/usr
Please note that it's required to reinstall all installed rubies:

rvm reinstall $(rvm list strings | tr "
" ',')
rvm all-gemsets do rvm gemset pristine


Building 'ruby-1.9.3-p194' using clang - but it's not (fully) supported, expect errors.
Installing Ruby from source to: /Users/t2low/.rvm/rubies/ruby-1.9.3-p194, this may take a while depending on your cpu(s)...

ruby-1.9.3-p194 - #downloading ruby-1.9.3-p194, this may take a while depending on your connection...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 9610k 100 9610k 0 0 2035k 0 0:00:04 0:00:04 --:--:-- 2232k
ruby-1.9.3-p194 - #extracting ruby-1.9.3-p194 to /Users/t2low/.rvm/src/ruby-1.9.3-p194
ruby-1.9.3-p194 - #extracted to /Users/t2low/.rvm/src/ruby-1.9.3-p194
ruby-1.9.3-p194 - #configuring
ruby-1.9.3-p194 - #compiling
ruby-1.9.3-p194 - #installing
Retrieving rubygems-1.8.24
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 371k 100 371k 0 0 480k 0 --:--:-- --:--:-- --:--:-- 1702k
Extracting rubygems-1.8.24 ...
Removing old Rubygems files...
Installing rubygems-1.8.24 for ruby-1.9.3-p194 ...
Installation of rubygems completed successfully.
ruby-1.9.3-p194 - adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
ruby-1.9.3-p194 - #importing default gemsets (/Users/t2low/.rvm/gemsets/)
Install of ruby-1.9.3-p194 - #complete
Ruby 'ruby-1.9.3-p194' was built using clang - but it's not (fully) supported, expect errors.

これは…成功したんでしょうか。
とりあえず、バージョンを見てみます。
t2low:readline t2low$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin12.0.0]

おおお、最新版になっている!
良かった良かった。

最後に参考にさせてもらった記事の最後のコマンドを実行しました。
rvm 1.9.3 --default

エラーなし。どうやら無事に行われたようです。
これはどういう意味があったんだろう?複数のrubyのうちどのバージョンを利用するか、という設定なのかしら。

結構時間がかかりました…。
これくらチャッチャと片付けられるような能力が欲しいです。
タグ:Mac ruby rvm
posted by t2low at 10:33| Ruby

2012年08月17日

[Ruby] rubyのアップデート

Macに入っているrubyは1.8.7でした。自分で入れたんでしたっけ。
t2low:Downloads t2low$ ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]

Ruby on railsをやるのには1.9.3が良いようですので、アップデートをしたいと考えました。
homebrewはインストールされているので、コマンド叩いてみればインストールされるんじゃないかと、よくわからないなりに実行してみました。てきとーです。
t2low:Downloads t2low$ brew install ruby
==> Installing ruby dependency: gettext
==> Downloading http://ftpmirror.gnu.org/gettext/gettext-0.18.1.1.tar.gz
######################################################################## 100.0%
==> Downloading patches
######################################################################## 100.0%
######################################################################## 100.0%
==> Patching
patching file gettext-tools/configure
patching file gettext-tools/Makefile.in
==> ./configure --disable-debug --prefix=/usr/local/Cellar/gettext/0.18.1.1 --without-included-gettext --without-included-glib -
==> make
==> make install
==> Caveats
This formula is keg-only, so it was not symlinked into /usr/local.

OS X provides the BSD gettext library and some software gets confused if both are in the library path.

Generally there are no consequences of this for you.
If you build your own software and it requires this formula, you'll need
to add its lib & include paths to your build variables:

LDFLAGS -L/usr/local/Cellar/gettext/0.18.1.1/lib
CPPFLAGS -I/usr/local/Cellar/gettext/0.18.1.1/include
==> Summary
/usr/local/Cellar/gettext/0.18.1.1: 366 files, 12M, built in 2.5 minutes
==> Installing ruby dependency: pkg-config
==> Downloading http://pkgconfig.freedesktop.org/releases/pkg-config-0.27.tar.gz

curl: (56) Recv failure: Operation timed out
Error: Download failed: http://pkgconfig.freedesktop.org/releases/pkg-config-0.27.tar.gz

エラーになりましたね。よくわかりません。
一応、バージョンを再確認。
t2low:Downloads t2low$ ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]

だめですネ。

Webを検索してみると、ちらほらrvmを使うという記事を見かけました。
@tokorom からもrvmが良いと教えられました。

使い分けとかをするレベルに達してないので、とりあえずは上書きバージョンアップができれば良かったのですが、それよりもrvmをインストールした方が早そうです(情報量的に)。
ということで、rvmをインストールしてみることにしました。

いろいろ検索してみると、いくつかの方法でインストールできるようです。
公式サイトっぽいところがrvm.ioだったので、ここに書かれたインストール方法に近いサイトを探して参考にさせてもらいました。

RVMのインストール - にたまごほうれん草
http://d.hatena.ne.jp/emergent/20120408/1333886864

このサイトに書かれていた通りに実行します。
(rvm.ioに書かれていたものとちょっと違う)
t2low:~ t2low$ curl -L get.rvm.io | bash -s stable
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 185 100 185 0 0 132 0 0:00:01 0:00:01 --:--:-- 200
100 9979 100 9979 0 0 2366 0 0:00:04 0:00:04 --:--:-- 4427
Downloading RVM from wayneeseguin branch stable
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 125 100 125 0 0 77 0 0:00:01 0:00:01 --:--:-- 99
100 1047k 100 1047k 0 0 77126 0 0:00:13 0:00:13 --:--:-- 123k

Installing RVM to /Users/t2low/.rvm/
Adding rvm PATH line to /Users/t2low/.bashrc /Users/t2low/.zshrc.
Adding rvm loading line to /Users/t2low/.bash_profile /Users/t2low/.zlogin.

# RVM: Shell scripts enabling management of multiple ruby environments.
# RTFM: https://rvm.io/
# HELP: http://webchat.freenode.net/?channels=rvm (#rvm on irc.freenode.net)
# Cheatsheet: http://cheat.errtheblog.com/s/rvm/
# Screencast: http://screencasts.org/episodes/how-to-use-rvm

# In case of any issues read output of 'rvm requirements' and/or 'rvm notes'

Installation of RVM in /Users/t2low/.rvm/ is almost complete:

* To start using RVM you need to run `source /Users/t2low/.rvm/scripts/rvm`
in all your open shell windows, in rare cases you need to reopen all shell windows.

# t2low,
#
# Thank you for using RVM!
# I sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne


rvm 1.15.3 (stable) by Wayne E. Seguin , Michal Papis [https://rvm.io/]

すんなりインストール成功したようです。

ログの中央付近に以下の出力がありました。
Installation of RVM in /Users/t2low/.rvm/ is almost complete:

どうやらユーザフォルダの下にインストールされたようです。
ユーザディレクトリで作業したから、ここにインストールされたんでしょうか。

一応バージョンを確認してみます。
t2low:~ t2low$ .rvm/bin/rvm -v

rvm 1.15.3 (stable) by Wayne E. Seguin , Michal Papis [https://rvm.io/]

だいじょーぶ、インストールされてますネ。
とりあえず、rvmのインストールは完了したようです。
この記事を書いてる今、もう3時を過ぎてしまったのでrubyのインストールはまた後日。
タグ:Mac ruby rvm
posted by t2low at 03:11| Ruby

2012年03月20日

[Ruby] RubyでTDD 勉強会

以前、一緒に働いていた@tokoromが勉強会を開いてくれるというので行って来ました。
参加者は僕と@e_aureum
本当なら@u_s_kも参加予定だったのですが体調不良で欠席。
講師側として@u1tnkも予定が合えば…ということだったのですが、多忙のため断念。
3人での開催となりました。

勉強会の内容は「RubyでTDD」。RubyとRSpecを使ってTDDをやってみるというもの。
僕も@e_aureumもRubyは初心者だったので、本当に簡単なところから入っていきました。
ちょっと実際の順番と違ったり、TDDとしておかしなところがあるかも知れませんが、そこは私の記憶力のなさのせいです。

■Calc
とりあえず、練習として計算を行うクラスでTDDしてみることになりました。
引数を1つ取る足し算と引き算ができます。値は累積されていきます。そんなクラスを作ります。
TDDの基本、まずはテストから書きます。

RSpecではテストコードは「○○_spec.rb」と命名するのが通例のようです。
まず、calc_spec.rbを作ります。

calc
┗Calc_spec.rb

-- calc_spec.rb --

require "Calc"

describe "Calc" do
it "0 + 3 = 3" do
calc = Calc.new
calc.add(3).should == 3
end
end

こんな感じでしょうか。(勉強会のときは確かいきなりこんなに書きませんでしたけど)
実行します。

実行は「rspec -I . calc_rspec.rb」
結果として、「F」が表示されたらNG。「.」が表示されたらOKだそうです。
結果は...どっちでもなくてエラーになりますね…。当然ですね、クラスがありません。
それではcalcクラスを作ります。

calc
┣Calc.rb
┗Calc_spec.rb

-- calc_spec.rb --

class Calc
end

クラスができたのでテストを実行します。
今度は実行はできましたが、「F」です。何がダメなのか出力を見ます。
F

Failures:

1) Calc 0 + 3 = 3
Failure/Error: calc.add(3).should == 3
NoMethodError:
undefined method `add' for #
# ./spec/Calc_spec.rb:7:in `block (2 levels) in '

Finished in 0.005 seconds
1 example, 1 failure

Failed examples:

rspec ./spec/Calc_spec.rb:5 # Calc 0 + 3 = 3

NoMethodErrorと出ているので、メソッドがないことがわかります。
とりあえず、メソッドを用意して0 + 3 = 3を満たすコードを書きます。
class Calc
def add(val)
3
end
end

Rubyは初めてだったのですが、最後に評価した式(?)が戻り値になるって面白いですね。
ここでもう一度テスト実行します。
(そういえば、当日は空のメソッドを一度作ってからテストしたことを思い出しました)
.

Finished in 0.007 seconds
1 example, 0 failures

無事通りました。成功です。完璧です。
なお、この時点ではメインのクラスとテストのクラスが同じディレクトリにありますが、specというディレクトリを作ってそちらにテストクラスを入れておくと良いようです。

calc
┣Calc.rb
┗spec
 ┗Calc_spec.rb

こんな感じ。
calcディレクトリにいるとき「rspec -I .」で実行できるようになるとのこと。

では、確認のためにテストを追加します。

it "0 + 5 + 2 = 7" do
calc = Calc.new
calc.add(5).should == 5
calc.add(2).should == 7
end

テスト結果は…
.F

Failures:

1) Calc 0 + 5 + 2 = 7
Failure/Error: calc.add(5).should == 5
expected: 5
got: 3 (using ==)
# ./spec/calc_spec.rb:12:in `block (2 levels) in '

Finished in 0.007 seconds
2 examples, 1 failure

Failed examples:

結果が「.F」となっているので、最初のテストはパスしたけど、追加したテストで失敗しているようです。
まぁ、3しか返さないメソッドなので当然ですね。修整します。
class Calc
def initialize
@value = 0
end

def add(val)
@value += val
end
end

通りました。ばっちりです。
initializeというのがjavaでいうコンストラクタ的なものらしいです。
@〜でメンバ変数だそうです。宣言なしで使えるってのはちょっと不安がありますけども。

続いては、テストコードのリファクタリングを行なうようです。
ちょっとこのへん記憶が曖昧なので、ガッと修正後のコードを載せます。
require "Calc"

describe Calc do
before(:each) do
@target = Calc.new
end
subject { @target }

it "0 + 3 = 3" do
subject.add(3).should == 3
end

it "0 + 5 + 2 = 7" do
subject.add(5).should == 5
subject.add(2).should == 7
end
end

修正点はこんな感じ

  • describeの後のダブルクォートを取った。特定のクラスの明示的な指定?だとか?
  • before部分。テストの前にやらせたいことを書くらしい。:eachだと各テスト毎、:allだと全体で1回だって。
  • subject部分。イマイチよくわかってません。あとで調べよう。

で、またテスト実行します。

..

Finished in 0.006 seconds
2 examples, 0 failures

うん、成功しますね。
とりあえず、練習はこんな感じ。
続きは…後日書けたら書きます。
タグ:ruby TDD RSpec
posted by t2low at 12:49| Ruby

2012年03月11日

[Ruby] RSpecのインストール

前の記事の続き。RSpecのインストール。
ぐぐったら、RSpecをインストールするにはRubyGemsが必要らしい。
(必要ないかもしれないけど、RubyGemsを使ってインストールできるらしい)

RubyGemsのインストールは、こちらのサイトを参考にさせてもらった。
http://d.hatena.ne.jp/gtaka555/20071012/p3
しかし、2007年の記事か…。
僕はだいぶ遅れているな…orz

ここ↓のページから[rubygems-1.8.17.zip]をダウンロード。
http://rubyforge.org/frs/?group_id=126
今日時点で一番新しいやつをダウンロードした。
ダウンロードしたzipを展開して、適当な場所に配置。


C:\rubygems-1.8.17>ruby setup.rb


これでRubyGemsがRubyをインストールしたディレクトリにセットアップされるのか。なるほど。
一応、セットアップが完了したことを確認。


C:\>gem -v
1.8.17


つづいて、RSpecのインストール。それはこっち↓を見ながら。
http://jp.rubyist.net/magazine/?0021-Rspec

以下のコマンドを実行。


C:\>gem install rspec


確認。


C:\>spec -v
'spec' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。


ん?
もしかして?


C:\>rspec -v
2.8.0


出た。
昔はrspecってコマンドじゃなくて、specってコマンドだったのかしら。
とりあえず、これで勉強会の準備はおしまい、かな。
タグ:ruby RSpec
posted by t2low at 11:52| Ruby

2012年03月10日

[Ruby] Rubyのインストール

今度、知人と勉強会が開かれることになりました。
題材は「RubyでTDD」
とりあえず「RubyとRSpecはインストールしといて」と言われましたが、Rubyはやったことがありません。
RSpecなんてなんなのかもわからないレベルです。

とりあえず、ぐぐってRubyのインストール。
http://www.ruby-lang.org/ja/
いろいろ種類があるようですが、Windows版RubyバイナリのActiveScriptRubyをダウンロードしました。
バージョンもいくつかあってよくわからんので、まぁ、最新のものを落としとけば良いだろうと。
「Ruby-1.9.3-p125 Microsoft Installer Package(2012-02-16)」これ。

ここ↓にインストールされたので、ここを環境変数に追加。
「C:\Program Files (x86)\Ruby-1.9.3\bin」
コマンドプロンプトを起動して、インストールされてることを確認。

> ruby -v
ruby 1.9.3p125 (2012-02-16) [i386-mswin32_100]

とりあえず、RubyはOKかな。
posted by t2low at 19:07| Ruby