2012年7月18日水曜日

MacOS X 10.7.4 で Homebrew 0.9.2 を用いてMono 2.10.5 を入れて C# LINQ を体験する

体験という程のことではなく,やってみた.って程度.
動機
Ruby 2.0 メモ: Lazy と LINQ とループ融合
Xcodeの更新と問題
  1. App StoreのXcodeからインストールしたのだが起動しようとするとCrush.
  2. com.apple.dt.IDE.IDEInterfaceBuilderKit が無いとかいう問題のようだがよくわからない
  3. ~/Library/Preferences/com.apple.dt.*.plistなどの動かしたがだめだったが,plistをダブルクリックしたら起動(古いXcode類を破棄するかどうかのダイアログ)しはじめた.偶然かもしれないがメモ(古いXcode類(/DeveloperのものやInstall Xcode.appなど)がいたのがまずかったのかもしれない).
Command Line Tools for Xcodeをインストール
  1. Xcodeのメニューバーアイテム Xcode/Open Developer Tool/More Developer Tools… よりApple DeveloperサイトのDownloadページを開く.
  2. ログイン
  3. Command Line Tools for Xcodeの最新(今回は June 2012)をDownload(ファイル名は command_line_tools_for_xcode_june_2012.dmg ).
  4. dmgにはインストーラーが入っているのでそのままインストール.
ちなみにQuartz Composer等は上記DownloadページのGraphics Toolsから入れる)
Homebrewのインストール
Installation · mxcl/homebrew Wiki · GitHubの通りコマンドを実行
$ /usr/bin/ruby -e "$(/usr/bin/curl -fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)"

…

==> Installation successful!
You should run `brew doctor' *before* you install anything.
Now type: brew help
$
確認
$ brew doctor
Your system is raring to brew.
$
ちなみに,
$ brew --version
0.9.2
$
Monoのインストール
どこかのサイト(メモするの忘れてた)でみた通りやってみた.ので一つ目のコマンドがなんで必要かわかってない
$ brew tap adamv/alt
Cloning into '/usr/local/Library/Taps/adamv-alt'...
remote: Counting objects: 1073, done.
remote: Compressing objects: 100% (509/509), done.
remote: Total 1073 (delta 643), reused 946 (delta 551)
Receiving objects: 100% (1073/1073), 178.16 KiB | 98 KiB/s, done.
Resolving deltas: 100% (643/643), done.
Warning: Could not tap adamv/alt/flex_sdk over mxcl/master/flex_sdk
Tapped 32 formula
$
$ brew install mono
==> Downloading http://download.mono-project.com/sources/mono/mono-2.10.5.tar.bz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/mono/2.10.5 --with-glib=embedded --en
==> make
make  all-recursive

…

MCS     [net_4_0] mono-api-info.exe
error CS0006: Metadata file `../../class/lib/net_2_0/Mono.Cecil.dll' could not be found
Compilation failed: 1 error(s), 0 warnings
make[8]: *** [mono-api-info.exe] Error 1
make[7]: *** [do-all] Error 2
make[6]: *** [all-recursive] Error 1
make[5]: *** [all-recursive] Error 1
make[4]: *** [profile-do--net_4_0--all] Error 2
make[3]: *** [profiles-do--all] Error 2
make[2]: *** [all-local] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
config.log was copied to /Users/Work/Library/Logs/Homebrew
==> Build Environment
HOMEBREW_VERSION: 0.9.2
HEAD: (none)
CPU: 8-core 64-bit sandybridge
OS X: 10.7.4-x86_64
Xcode: 4.3.3 => /Developer
CLT: 1.0.0.9000000000.1.1249367152
X11: 2.6.4 @ /usr/X11
CC: /usr/bin/clang
CXX: /usr/bin/clang++ => /usr/bin/clang
LD: /usr/bin/clang
CFLAGS: -Os -w -pipe -march=native -Qunused-arguments -mmacosx-version-min=10.7
CXXFLAGS: -Os -w -pipe -march=native -Qunused-arguments -mmacosx-version-min=10.7
CPPFLAGS: -isystem /usr/local/include
LDFLAGS: -L/usr/local/lib
MACOSX_DEPLOYMENT_TARGET: 10.7
MAKEFLAGS: -j8
Error: Failed executing: make (mono.rb:16)
If `brew doctor` does not, this may help you fix or report the issue:
    https://github.com/adamv/homebrew-alt/issues/new
$
で停止.
なんとなく勢いで再度同じコマンドを実行してみたら,
$ brew install mono
==> Downloading http://download.mono-project.com/sources/mono/mono-2.10.5.tar.bz2
Already downloaded: /Library/Caches/Homebrew/mono-2.10.5.tar.bz2
==> ./configure --prefix=/usr/local/Cellar/mono/2.10.5 --with-glib=embedded --enable-nls=no --host=x86_64-apple-darwin10
==> make
==> make install
Warning: Non-executables were installed to "bin".
Installing non-executables to "bin" is bad practice.
The offending files are:
/usr/local/Cellar/mono/2.10.5/bin/mono-gdb.py
/usr/local/Cellar/mono/2.10.5/bin/mono-sgen-gdb.py
==> Summary
/usr/local/Cellar/mono/2.10.5: 859 files, 153M, built in 82.2 minutes
$
なんかうまくいっちゃった.
ちなみに.
$ mono --version
Mono JIT compiler version 2.10.5 (tarball 2012年 7月18日 水曜日 19時39分54秒 JST)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
 TLS:           normal
 SIGSEGV:       normal
 Notification:  kqueue
 Architecture:  amd64
 Disabled:      none
 Misc:          softdebug 
 LLVM:          supported, not enabled.
 GC:            Included Boehm (with typed GC)
$ dmcs --version
Mono C# compiler version 2.10.5.0
$
MonoでC# LINQする
動機のページにあったとおりa.cs, b.cs, c.csを用意.
$ which dmcs
/usr/local/bin/dmcs
$ which mono
/usr/local/bin/mono
$
$ dmcs a.cs
$ mono a.exe 
=> 3, 13, 23
$
$ dmcs b.cs
$ mono b.exe 
1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20-21-22-23-=> 3, 13, 23
$
$ dmcs c.cs
$ mono c.exe 
3
13
23
$
というメモ.

0 件のコメント: