last updated at March 27, 2015

Dennou Tools for Mac OSX

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

更新履歴

利用手引き

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

  1. 最新版の Xcode を導入する
  2. MacPorts を導入する
  3. MacPorts-JP の SVN レポジトリ を check out して source.conf に登録する
  4. MacPortsで非Rubyな電脳倶楽部製品をインストールする
  5. RubyGemsでRubyな電脳倶楽部製品をインストールする

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

最新版の Xcode を App Store から導入する

MacPort を入れるにあたり Command Line Tools for Xcode をインストールする必要があります(既にXCodeがインストールされている場合は不要).
ターミナルを立ち上げて

$ xcode-select --install

と実行してください. 確認のウィンドウが表示されるので, 指示に従ってインストールしてください.

MacPorts を導入する

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

$ port info macports

と実行して下さい.

MacPorts @2.3.3 (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

*ここで, 社内ネットワーク等の設定によっては svn で http 接続できない場合があります. その場合は こちらの方法 で回避してください.

コピーしたソースツリーを 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:///Users/ユーザ名/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://Users/ユーザ名/Sources/macports-jp-trunk/dports [nosync]

この場合, 電脳製品を最新版に更新する際には, $HOME/Sources/macports-jp-trunk/dports で

$ svn up

を実行して, MacPorts-JP のソースツリーを更新する必要があります.

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

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

$ sudo port install C-DCL6

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

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

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

Ports名 ソフトウェア説明
DCL6 DCL FORTRAN版地球流体電脳倶楽部ライブラリ
C-DCL6 DCL/C C 言語版地球流体電脳倶楽部ライブラリ

Rubyな電脳倶楽部製品を使うために必要なライブラリをMacPortsでインストールする

Rubyライブラリの電脳倶楽部製品をGemでインストールする(後述)ために, あらかじめ

のportをインストールしておきます.

$ sudo port install ruby22 fftw-3 gsl netcdf

*rubyは 22 か 21 か 20 を指定してください. それぞれver. 2.2, 2.1, 2.0に対応します.

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

ruby付属のパッケージマネージャRubyGemsを使って, Rubyな電脳倶楽部製品をインストールします.
MacPortsで入れたruby2.*に付属のgemコマンドはgem2.*の形になっています.
以下のようにして(例えばGPhysを)インストールすることができます.

$ sudo gem2.2 install gphys

*gemでインストールしたものには2.2などのサフィックスはつきません.

Ruby1.9, 1.8系列のライブラリ

既にサポートが切れているため, 使用することは全くおすすめしませんが, Ruby1.9, 1.8系列を使用したい場合は, 下記のライブラリをMacPort(-JP)でインストールすることができます.

rb(19)-gphys Gphys グリッドデータを扱うための Ruby ライブラリ
rb(19)-narray_miss NArrayMiss NArrayで欠損値を扱えるようにする拡張
rb(19)-numru-misc NumRu/Misc 様々な関数の Ruby インターフェース
rb(19)-numru-units NumRu/Units 単位を扱うための Ruby ライブラリ
rb(19)-dcl Ruby/DCL 地球流体電脳倶楽部ライブラリの Ruby インターフェース
rb(19)-netcdf Ruby/NetCDF NetCDF の Ruby インターフェース
rb(19)-fftw3Ruby-FFTW3FFTW3のRubyインターフェース
rb(19)-lapackRuby-LAPACKLAPACKのRubyインターフェース
rb-gfdnavi_utilsgfdnavi_utilsGfdnavi用のライブラリ

*rb-* は ruby 1.8系 のライブラリ,rb19-* は ruby 1.9系 のライブラリです.
なお, . 1.9系のruby関連コマンドには末尾に1.9が,1.8系のruby関連コマンドには1.8が付加されています.(例:ruby1.9, gem1.9, irb1.9,…)

FAQ

Ruby で GPhys ライブラリ等を使おうすると ‘require’: no such file to load などと表示される.

原因(1):MacPortsの Ruby ではなく, OSXにデフォルトで入っている Ruby を使っている.

対処:$PATH の設定で /opt/local/bin/ が /usr/bin/ よりも前にくるようにする. 末尾に1.8 あるいは 1.9 がついたコマンドを使用する.

原因(2):GPhys等が正しくインストールされなかった. 対処:当該パッケージを一度アンインストールして, 再度インストールする.
(それでも動かない場合はお問い合わせください.)

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 の http 接続が出来ない場合

社内ネットワークの設定によっては, SVN の http 接続がブロックされている場合がある. この場合の対処法を以下に記す.

MacPorts 本体を SVN で入れる場合

SVN の http 接続がブロックされている場合でも https 接続は許可されている場合が多い.

$ svn co https://svn.macports.org/repository/macports/trunk

と, https で接続を試みる.

MacPorts-JPを導入する場合

残念ながら MacPorts-JP の SVNレポジトリは匿名での https 接続が許可されていないので, 以下で対処する.

  1. ここ にアクセスして, Download GNU tarball をクリックして, macports-jp-trunk.tar をダウンロードして展開する.
  2. 展開してできた trunk フォルダを$HOME 以下に配置して, /opt/local/etc/macports/sources.conf に以下を追加する.
    file://Users/ユーザ名/trunk/dports [nosync]
    

*なお, この方法で導入した MacPorts-JP は port sync しても更新されない. MacPorts-JPパッケージツリーを更新する場合は 改めて最新のmacports-jp-trunk.tar をダウンロードする必要がある.

プロキシの設定

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

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

$ 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名

Contact

Hiroki Kashimura
hirokimac アット users.sourceforge.jp


This document was translated from LATEX by HEVEA.