Dennou Tools for Mac OSX

電脳製品群を Mac Ports を利用して Mac OSX Snow Leopard に導入する

お知らせ

dpp-snowleopard-*.pkg のファイルのインストーラーの形で提供していた Private Ports tree が MacPorts-JP の SVN レポジトリ 経由で導入できるようになりました. (MacPorts-JP は日本の MacPorts ユーザー有志によって運営されている, 本家 MacPorts 非公式のプロジェクトです.)

これにより,

従来のdpp-snowleopard-*.pkg をご利用いただいていた方はこちらの案内に従って移行して頂くようお願いします.

また, 将来 MacPorts 本家への登録を目指して, 一部のport名を変更しました.

利用手引き

ここでは Mac OSX の UNIX パッケージシステム Mac Ports を利用して, 地球流体電脳倶楽部のツール群をインストールする方法を次の手順で紹介します.

各種問い合わせは( hirokimac アット users.sourceforge.jp )までお願いします. トラブル対応等, 気軽にご相談ください.

テスト環境は Mac OSX Snow Leopard 10.6.6, Xcode 3.2.6 (2011年3月11日現在)です.

最新版の Xcode を導入する

MacPort を入れるにあたり OSX 開発環境 Xcode をインストールする必要があります. ここからダウンロード(無料会員登録が必要)するか, OSXのインストールディスクからインストールします.

*2011年3月11日現在, 無料で入手できる Xcode は ver. 3.2.6 です. Xcode ver. 4 が Mac App Store から600円で購入可能ですが, 動作未検証です.

MacPorts を導入する

最新版の MacPorts をここからダウンロードする. これもダウンロードが終わればインストーラが立ち上がるので, それに従ってインストールします. MacPorts は/opt以下にインストールされます. *ネットワークにプロキシの設定が必要な場合はこちらを参照して下さい → プロキシの設定
MacPorts がインストールされたらターミナルを立ち上げて

$ port info macports

と実行して下さい.

MacPorts @1.9.2 (sysutils)
Variants:             keep_prefix, universal

Description:          MacPorts provides the infrastructure that allows easy
                      installation and management of freely available software
                      on Mac OS X 10.4 or newer systems.
Homepage:             http://www.macports.org/

Platforms:            darwin, freebsd
License:              unknown
Maintainers:          macports-mgr@lists.macosforge.org

と表示されたら成功です.

$ port: command not found

などと表示される場合は, PATH が通ってないので $PATHに

/opt/local/bin:/opt/local/sbin

を追加します. UNIXに不慣れな方はターミナル上で

$ export PATH=/opt/local/bin:/opt/local/sbin:\$PATH

と実行して下さい.

MacPorts の使用方法

まずはじめに portindex を更新します.

$ sudo port -d sync

(-d はデバックメッセージ出力オプション) これで MacPorts を ports tree が最新の状態になります. ports tree を最新の状態に保つために定期的に上記のコマンドを実行してください.

欲しいパッケージを探すときは

$ port search hoge

とすれば, 文字列 hoge が含まれるパッケージ名が表示されます. パッケージの詳しい情報は

$ port info package名

とすることで分かります. パッケージをインストールするときは

$ sudo port install package名

とします. 依存するパッケージ同時にインストールされます. より詳しい使用法は MacWiki:MacPorts などを参考にして下さい.

MacPorts-JP の SVN レポジトリ を check out して source.conf に登録する

任意のディレクトリに MacPorts-JP のソースツリーをコピーします. 以下ではホーム以下に Sources というディレクトリを作って, その下にソースツリーをコピーします.

$ mkdir ~/Sources
$ cd ~/Sources
$ svn checkout http://svn.sourceforge.jp/svnroot/macports-jp/trunk macports-jp-trunk

コピーしたソースツリーを source.conf に登録します.

$ sudo emacs /opt/local/etc/macports/source.conf

でエディタを起動して, 以下のように4行目を追加します.

#  NOTE: The port command parses source URLs in order and installs the                                   
#        first occurrance when a port appears in multiple repositories.                                  
#        So keep "file://" URLs above other URL types.                                                   
file://~/Sources/macports-jp-trunk/dports

#  To get the ports tree from the master MacPorts server in California, USA use:                         
#      rsync://rsync.macports.org/release/ports/                                                         
#  To get it from the mirror in Trondheim, Norway use:                                                   
#      rsync://trd.no.rsync.macports.org/release/ports/                                                  
#  A current list of mirrors is available at http://trac.macports.org/wiki/Mirrors
rsync://rsync.macports.org/release/ports/ [default]

これで, source.conf への登録は完了しました.

以後は,

$ sudo port -d sync

を実行するたびに, $HOME/Sources/macports-jp-trunk/dports 以下が svn update されて更新され, MacPorts-JP のソースツリーが最新の状態に保たれます. svn update を回避したい場合は, 下記のように [nosync] を追加します.

file://~/Sources/macports-jp-trunk/dports [nosync]

電脳倶楽部製品をインストールする

電脳製品 (例えばGPhys) をインストールする場合は

$ sudo port install rb-gphys

を実行するだけで, 依存ライブラリを含めて全て, MacPortsがコンパイルしてインストールしてくれます.

*ただし, gtk2などの大きなライブラリに依存するため, コンパイルに長い時間(数時間)がかかる場合があります.

MacPorts-JPの SVN レポジトリに登録された電脳倶楽部製品のports

MacPorts-JP の SVN レポジトリには 以下の電脳倶楽部製品の ports が登録されています.

Ports名 ソフトウェア説明
DCL DCL FORTRAN版地球流体電脳倶楽部ライブラリ
C-DCL DCL/C C 言語版地球流体電脳倶楽部ライブラリ
rb-gphys Gphys グリッドデータを扱うための Ruby ライブラリ
rb-gpcommands Gphys: commandsGphys付属のgp*コマンド群
rb-narray_miss NArrayMiss NArrayで欠損値を扱えるようにする拡張
rb-numru-misc NumRu/Misc 様々な関数の Ruby インターフェース
rb-numru-units NumRu/Units 単位を扱うための Ruby ライブラリ
rb-dcl Ruby/DCL 地球流体電脳倶楽部ライブラリの Ruby インターフェース
rb-netcdf Ruby/NetCDF NetCDF の Ruby インターフェース
rb-fftw3Ruby-FFTW3FFTW3のRubyインターフェース
rb-gfdnavi_utilsgfdnavi_utilsGfdnavi用のライブラリ

*rb-gfdavi_utils を installl するとGfdnaviサーバーを立ち上げるために必要な資源がインストールされます.

従来のdpp-snowleopard-*.pkg をご利用いただいていた方の移行方法

一旦, dpp-snowleopard-*.pkgを利用して導入された ports を全て uninstall して下さい.

$ sudo port uninstall rb-gphysなど

その後, /opt/myports/ ディレクトリをゴミ箱に捨てて下さい.

source.conf に加えた変更を元に戻す.

$ sudo cp  /opt/local/etc/macports/sources.conf.default  /opt/local/etc/macports/sources.conf

この上で, MacPorts-JP の SVN レポジトリ を check out して source.conf に登録する に従って 電脳製品を再インストール願います.

FAQ

upgrade に失敗する.

主な原因:依存関係の不整合や Xcode のバージョンの違い

回避策:

  1. Xcodeを最新版に更新する.
  2. -d オプションをつけて実行し, エラーメッセージを出力する.

MacPorts で sudo port sync に失敗する.

主な原因:ご利用のネットワーク環境が, プロキシが必要な場合・rsyncのポートが空いていない場合には, port sync に失敗します.

回避策:

  1. svn を利用する. 一度 /opt/local/ 以下を全て消し, こちらの手順 にそってMacPortsを svn から導入する.

MacPorts で特定の port の install に失敗する.

原因(1):MacPorts が make を実行する際に parallel build を使用として失敗している.

回避策(1):

$ sudo port clean port名

としたのち

$ sudo port edit port名

として該当portのportfileを開いて(デフォルトではvimで開く;環境変数EDITORでエディタ指定) 適当な場所に

use_parallel_build no

と一行追記する. 再びinstall.

プロキシの設定

プロキシの設定が必要な場合

ターミナルで以下のように入力する.

$ svn help

するとホームディレクトリ以下に .subversion/servers というファイルが出来るので, これを以下のように書き換えます. 下の方で

    [global]
    # http-proxy-exceptions = *.exception.com, www.internal-site.org
    # http-proxy-host = defaultproxy.whatever.com
    # http-proxy-port = 7000
    # http-proxy-username = defaultusername
 

となっているのを

    [global]
    # http-proxy-exceptions = *.exception.com, www.internal-site.org
    http-proxy-host = プロキシサーバのアドレス
    http-proxy-port = ポート番号
    # http-proxy-username = defaultusername

と変更します. するとsvn co が通るようになるはずですので, 以下を実行します.

$ svn co http://svn.macports.org/repository/macports/trunk
$ cd trunk/base
$ ./configure
$ make 
$ sudo make install

MacPortsはデフォルトでは/opt以下にインストールされます.

インストールされたら$PATHに

  /opt/local/bin:/opt/local/sbin

を追加します. UNIXに不慣れな方はターミナル上で

$ export PATH=/opt/local/bin:/opt/local/sbin:$PATH

と実行して下さい.

PATHを通したらportindexを更新します. 通常, MacPortsはrsyncを用いてportindexを更新しますが, 残念ながらMacPortsはver 1.5以降, プロキシ内からのrsyncが出来なくなっています. そこで設定ファイル /opt/local/etc/macports/source.conf の一番下

   # To get the ports tree from the MacPorts rsync.macports.org server use:
   # rsync://rsync.macports.org/release/ports/
   rsync://rsync.macports.org/release/ports/

となっている部分を

   # To get the ports tree from the MacPorts rsync.macports.org server use:
   # rsync://rsync.macports.org/release/ports/
   #rsync://rsync.macports.org/release/ports/
   file:///Users/ユーザ名/trunk/dports/

と書き換えます. (注:上記はtrunkをホームディレクトリに置いた場合)

そして以下を実行します.

$ sudo port -d sync

(-d はデバックメッセージ出力オプション) これでMacPortsを利用する準備が整います.

ただしプロキシが必要な場合は, 以下のようにプロキシを指定してパッケージをインストールします.

$ sudo env http_proxy=http://プロキシサーバのアドレス:ポート番号 port -d install package名