D.I.'s Memorandum

日常の切出し、自己投資の感想、Mac等の設定、響いた言葉、リンクなど。
<< Weekend / 週末 | main | Walking / 散歩 >>
スポンサーサイト

一定期間更新がないため広告を表示しています

Installation of "Ruby on Rails" using MacPorts / MacPortsを使った「Ruby on Rails」のインストール
JUGEMテーマ:コンピュータ

表題の件について。
1週間以上悩んだけど、次のサイトで解決。
■ Mac ( Snow Leopard ) に RubyOnRails3 環境構築 « foot mark

【MacPortsでruby1.9をインストール】
$ sudo port install ruby19

【gemのインストール】
$ gem1.9 -v
1.3.7
$ which gem1.9
/opt/local/bin/gem1.9
$ sudo mv /usr/bin/gem /usr/bin/gem1.3.5
$ sudo ln -s /opt/local/bin/gem1.9 /usr/bin/gem
$ gem -v
1.3.7

【Railsのインストール】
$ sudo gem install rails
$ sudo mv /usr/bin/rails /usr/bin/rails2.3.5
$ sudo ln -s /opt/local/bin/rails /usr/bin/rails
$ rails -v
Rails 3.0.3

*****
大まかな手順としては、次の通り。
・Xcodeの導入
・MacPortsの導入
・Ruby1.9の導入
・RubyGemsの導入

1,2については省略し、3つ目から。
$ sudo port install ruby19

ただ、面倒であれば4つ目に任せるとよい。
$ sudo port install rb-rubygems +ruby19


但し、私の環境ではエラーが起きた。
Error: Target org.macports.destroot returned: shell command failed (see log for details)
Log for rb-rubygems is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_ruby_rb-rubygems/main.log
Error: Status 1 encountered during processing.
To report a bug, see

具体的にどんなエラーが起きたのか、204行にもなるmain.logを眺めて見た。
version:1
:msg:main ---> Computing dependencies for rb-rubygems:info:main .:debug:main Searching for dependency: ruby19
...
:info:destroot shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_ruby_rb-rubygems/work/rubygems-1.3.7" && /opt/local/bin/ruby setup.rb install --prefix=/opt/local --destdir=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_ruby_rb-rubygems/work/destroot --vendor DESTDIR=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_ruby_rb-rubygems/work/destroot " returned error 127
:error:destroot Target org.macports.destroot returned: shell command failed (see log for details)
:debug:destroot Backtrace: shell command failed (see log for details)
while executing
"command_exec destroot"
(procedure "portdestroot::destroot_main" line 2)
invoked from within
"$procedure $targetname"
:info:destroot Warning: the following items did not execute (for rb-rubygems): org.macports.activate org.macports.destroot org.macports.install
:notice:destroot Log for rb-rubygems is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_ruby_rb-rubygems/main.log
実はこのエラーを解消するために、ネットを検索したり、
MacPortsの再構築をしてみたりと、約1週間かかった。
が、解決策を考えてみると、呆気なかった。

注目すべきは、エラーが起きた場所だ。
上記の太字部分に着目して検証してみた。
cdした先のディレクトリはあるが、「/opt/local/bin/ruby」がないのだ。
$ cd /opt/local/bin/
$ ls ruby*
ruby1.9
つまり、これをシンボリック・リンクするだけ。
$ sudo ln -s ruby1.9 ruby
$ $ ls -la ruby*
lrwxr-xr-x 1 root admin 7 5 22 18:49 ruby -> ruby1.9
-rwxr-xr-x 2 root admin 9040 5 21 15:08 ruby1.9
今一度、上記のコマンドを実行。
今度のエラーは163行のmail.logだ。
注目すべきは、最後にエラーが置きている箇所(太字)。
...
:debug:destroot Assembled command: 'cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_ruby_rb-rubygems/work/rubygems-1.3.7" && /opt/local/bin/ruby setup.rb install --prefix=/opt/local --destdir=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_ruby_rb-rubygems/work/destroot --vendor DESTDIR=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_ruby_rb-rubygems/work/destroot'
:info:destroot /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_ruby_rb-rubygems/work/rubygems-1.3.7/lib/rubygems/source_index.rb:68:in `installed_spec_directories': undefined method `path' for Gem:Module (NoMethodError)
...
:info:destroot shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_ruby_rb-rubygems/work/rubygems-1.3.7" && /opt/local/bin/ruby setup.rb install --prefix=/opt/local --destdir=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_ruby_rb-rubygems/work/destroot --vendor DESTDIR=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_ruby_rb-rubygems/work/destroot " returned error 1
:error:destroot Target org.macports.destroot returned: shell command failed (see log for details)
:debug:destroot Backtrace: shell command failed (see log for details)
while executing
"command_exec destroot"
(procedure "portdestroot::destroot_main" line 2)
invoked from within
"$procedure $targetname"
:info:destroot Warning: the following items did not execute (for rb-rubygems): org.macports.activate org.macports.destroot org.macports.install
:notice:destroot Log for rb-rubygems is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_ruby_rb-rubygems/main.log
これを地道に検証してみる。
「undefined method `path' for Gem:Module」について調べると、
同様にハマった人がいた。
■ Rails 3 をインストールする - hachiNote
けど、正直何を言っているのか、分からなかった。
だから、次のサイトを参照した。
■ Mac ( Snow Leopard ) に RubyOnRails3 環境構築 « foot mark
これで解決したっ!!!
スポンサーサイト
comment?









TrackbackURL
トラックバック機能は終了しました。
trackback
Search
SELECTED ENTRIES
TRANSLATION
RECENT COMMENTS
CATEGORIES
CALENDAR
Sun Mon Tue Wed Thu Fri Sat
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
<< August 2020 >>
楽天アフィリエイト
Google Adsense
UK広報ブロガー
RECENT TRACKBACK
ARCHIVES
LINKS
PROFILE
OTHERS
SPONSORED LINKS