とりあえず勉強中のScalaを試す環境を作ってみようと思い、iMacに構築してみた。
以下備忘録を含めて。
開発環境をどこに作るべきか
開発の環境を作る上で、どういう形で構築するのか?ということを少し悩んでいました。
あまりにもローカルに依存すると移行時に手間がかかったり、ローカルがゴミだらけになってしまうからです。
会社のWindows機はあれこれとアプリを試したおかげでそれはもうひどい状態になってしまいました。。。
少なくとも自宅のPCに関してはそうはすまい!と思いつつもノートPCは一部ゴミが残ってしまっています。
これらの解決には、やはり仮想環境を構築して、仮想上での開発を行っていくのが効率的に感じています。仮想環境の構築にはWindows上ではサーバー機に関してはHyper-V。クライアント上ではVMWare Serverを利用していました。
Macに関してはHyper-Vは無理なので真っ先に思いついたのはVMWare。ところが、VMWareはMac版に関しては無料の環境を提供していませんでした。
MacでVMWareを利用するにはFusionを購入する必要があるみたいです。
VMWare Fusion
http://www.vmware.com/jp/products/fusion/overview.html
値段としては8000円ほどなので買えなくはない値段ではあるのですが、選択肢としてはその他にもあるようなのでもう少し吟味したい。
吟味したいからといって、このまま何も出来ないのももったいないのでとりあえず最低限の環境だけでもインストールしてみることにした。
MacPortsのインストール
環境の構築にはMacPortというものを利用するのが比較的容易だと紹介されていたのでおとなしくそれに従ってみる。
ちなみに以前Windows環境でScala環境を構築した際には公式ページからダウンロードしたものを利用した
MacPorts
http://www.macports.org/
ちょっと気になるのは
Please note that in order to install and run MacPorts on Mac OS X, your system must have installations of the following components:
- Apple’s Xcode Developer Tools (version 3.2.1 or later for Snow Leopard, 3.1.4 or later for Leopard, or 2.5 for Tiger), found at the Apple Developer Connection site or on your Mac OS X installation CDs/DVD. Ensure that the optional components for command line development are installed (“Unix Development” in the Xcode 3.x installer).
- The X11 windowing environment (A.K.A. “X11 User”) for ports that depend on the functionality it provides to run.
- The “X11 User” package is an optional installation on your system CDs/DVD for Tiger, enabled through the “Customize” button of the installer, whereas it is included by default on Leopard and Snow Leopard.
- You can use the xorg-server port instead of Apple’s X11.app if you wish.
という注意書きがあることだ。
Scala環境の構築に参考にさせていただいたサイトにはMacPortsインストール時にXCodeが必要なんていう話は見当たらなかったんだけど・・・。
まぁ、本当に必要かどうかはわからないけど、XCodeはそのうち遊んでみたいと思っていたものなのでインストールだけしておくことにした。
XCode
http://developer.apple.com/technologies/tools/whats-new.html
Appleに開発者登録を行ってダウンロード&インストール。
XCode以外にもツールはあるようだけど、とりあえず今回の趣旨からは外れるのでそれはまたの機会ということに。
MacPortsそのものは先にあげたサイトからダウンロードしてインストールするだけ。
ターミナルを起動し直さないと認識してくれなかったけど、いってしまえばその程度だった。
Scalaのインストール
MacPortsを使ってScalaインストールするには、コマンドで
$ sudo port install scala
ってうてばいいという話だったが、
—> Fetching scala
—> Verifying checksum(s) for scala
—> Extracting scala
—> Configuring scala
Error: Please use one of the numbered scala* ports instead.
Error: Target org.macports.configure returned: obsolete port
Log for scala is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_scala/main.log
Error: Status 1 encountered during processing.
エラーになってしまった。どうやら今はバージョン番号まで指定する必要があるみたい。
MacPorts経由でどんなバージョンがあるのかを調べるには
port search scala
ってやれば出てくる。
scala-devel @2.8.0.Beta1-prerelease (lang, java) The Scala Programming Language
scala-migrations @1.0.1 (java) Database migrations written in Scala
scala27 @2.7.7 (lang, java) The Scala Programming Language
scala28 @2.8.1 (lang, java) The Scala Programming Language
scala29 @2.9.0 (lang, java) The Scala Programming Language
scala_select @0.1 (sysutils) Switch the default scala compiler
みたいな感じで出てきた。
とりあえず、何も考えずに最新っぽい29を選択してみる
$ sudo port install scala29
これでインストールが完了。
次に、インストールされた場所に対してパスを通してあげる必要があるとのこと。
Windowsでは環境変数に入れるだけなんだけど、MacはどうやらHome配下にある「.profile」というファイルに書き込む形をとるようだ。
このファイルに対してアクセスするには、GUIではなくターミナルなどを利用する必要がある。
という訳で、ターミナルを起動して直下をみてみる。「.」で始まるファイルを検索するにはオプションが必要
$ ls -a
確かに「.profile」があったのでこれを編集する。
編集に使うのは「vim」や「emacs」のようなエディタを利用する。
会社に入って、最初についた上司がMeadow使いだったのもあって、わずかばかりだけどMeadowなら使ったことがある。という訳でEmacsを選択
$ emacs .profile
パスを確認する。
http://d.hatena.ne.jp/AWAWA/20080503/1209825789
をみる限りでは、追加しなければいけないのは2行。
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export MANPATH=/opt/local/man:$MANPATH
ただ、最初の一行は既にあったので二行目のみ追記して保存する。
準備は整ったはずなので早速Scalaを実行してみる。
$ scala
- bash: scala: command not found
あれ?起動しないぞ?パス通すの失敗したのかな?
って訳で、実際にそこのパスに移動して確認してみることにした。
そうすると、フォルダ名が「scala-2.9」ってなっていた。ということは。。。
$ scala-2.9
Welcome to Scala version 2.9.0.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_24).
Type in expressions to have them evaluated.
Type :help for more information.
scala>
おお、きどうしたきどうした。
ただ、起動にバージョン番号付きっていうのがちょっと微妙だな~。単純にScalaで呼び出せないのかな。フォルダ名変えればいいだけかな?もうちょっと調べてみる必要がありそうだ。
最終的にはEclipseなりNetBeansなりをインストールして開発するのがいいように感じるけど、それはまたの機会。
とりあえず試すことの出来る環境が作れれば今は事足りるのでここまでにした。
CUI
Windowsでしか開発を行ったことがなかった私にとって、これまでCUIを使う必然性はなかったためにEmacsやターミナルを始めとしたCUIはなれるのに少し時間がかかりそうだ。
親切かどうかは別として、慣れてしまえばこの先の開発生産性や開発生活に大きく貢献してくれる分野であるのでしっかり習熟していきたいですね。
まだまだです。