2002.11.19


MacOSX Release 10.2へのFORTRAN(g77)コンパイラーの超初心者のためのインストール法


 ただg77をインストールするという訳にはいかなくて,MacOSX Release 10.2はコンパイラーにGNUのgcc3.1を使っており,MacOSXに最もあったPowerPC用のRPMパッケージ管理ソフト(RedHat Package Manager)をまずはインストールしなければならない。
 最も更改頻度が高くて信頼できるサイトは,つくば市の高エネルギー加速器研究機構の藤井恵介さんのHEP on X(http://www-jlc.kek.jp/~fujiik/macosx/10.2.X/)のようだ。全面的にこのサイトにおすがりした形である。とすれば,ぼくのサイトは不要な訳だが,この藤井さんの記述を見ても最初は意味が分からず,何とかものの本を斜め読みして,インストールの過程ぐらいは推測しえたこの僕の記述を見て,助かる人がいるはずです。きっと。
 藤井さんに心より感謝致します。


準備するもの


1. Mac OS X v10.2 Developer ToolsのCD-Rom(Jaguar付録)
2. RedHat Manager on Mac OS X
3. g77 on Mac OS X
である。このうち,後2者は藤井さんの先のサイトに用意されている。それを以下に列挙する。

2. RPM on MacOS Xと称するページ http://www-jlc.kek.jp/~fujiik/macosx/10.2.X/memo/RPMonX.html 内にリンクがあり,下記の2ファイルを前もってダウンロードする。これはコマンド集である。
rpm-4.0.2-0.34e-bin.tar.gz 1.9MB
さらに,RPMパッケージをインストールする際に,そのパッケージと共有するデータベースが当システム側に存在するかどうかチェックしてくること,さらにrpmコマンド自体,パッケージに依存するらしく,当システムにインストールしておく必要がある。このファイルは
http://www-jlc.kek.jp/~fujiik/macosx/10.2.X/RPMS/のppc/に用意されている。その具体的ファイル名は下のコマンド行から見て欲しい。

3. g77 on MacOS Xと称するページ http://www-jlc.kek.jp/~fujiik/macosx/10.2.X/memo/G77onX.html 内にリンクがあり,下記の3ファイルを前もってダウンロードする。
gcc-with-g77-1151-1b.ppc.rpm 9.9MB
gcc2-with-g77-7-1a.ppc.rpm 5.9MB
gcc-with-g77-symlinks-1151-1b.ppc.rpm 8kB
 このインストール作業でDeveloper Toolsの関連部分のオリジナルが失われる。g77インストール前に戻すために,復帰パッケージが用意されている。今は必要ではない。
gcc-orig-1151-1a.ppc.rpm 6.2MB
gcc-orig-symlinks-1151-1a.ppc.rpm 3.885kB
gcc2-orig-7-1a.ppc.rpm 3.4MB


インストールの具体的手順


1. Mac OS X v10.2 Developer Toolsをインストール


 インストールしたいOS Xシステムをまず立ち上げる。その後,CDロムを挿入し,この中のDeveloper.mpkgをダブルクリックするだけ。
 「Mac OS Xで使おうUNIX」(大津真・新居雅行・松尾真一郎著,2002.7.30毎日コミュニケーションズ発行,3800円+税)によれば,/Developer/Toolsだけでなく,Aquaでは見えない開発ツール類は/urs/binに入るとのこと。
 インストールの後にターミナルで,
% cc -v
とするとgccが入っているのが確認できるし,そのバージョンは3.1で2002.4.20作成となっていた。便利なコマンドを使えるようにするために,/Developer/Toolsにパスを通した方がいいという。パスの初期値を確認するために,
% printenv
とすると,
PATH=/bin:/sbin/:/urs/bin:/usr/sbin
と表示された。そこで,
% set path=($path /Developer/Tools)
(なお,%でユーザーのプロンプトを簡略表現されている)
を実行すると,しっかりこのパスも追加されていた。システムを終了するとこの設定は失われる。


2. マックのrootを有効にする


 ファインダー/アプリケーション/ユーティリティ/NetInfoマネージャーを開いてセキュリティでルートユーザーを有効にすればいい。リスタートすればパソコン所有者のアイコンの他におじさんの絵が入った管理者としての「その他のユーザー」が現れるのでルートユーザーを有効にしたときの名前とパスワードを入力すればいい。これでsudoまたはsuコマンドを使うことが可能となる。(macはsudoコマンドを推奨)


3. Red Hat Manager on Mac OS Xのインストール


 準備するもので示したパッケージまたはファイルをユーザーのルートに置く。その上で先のサイトのページの記述に従ってインストールする。
 藤井さんのコマンド行について以下,確認したい。
http://www-jlc.kek.jp/~fujiik/macosx/10.2.X/memo/RPMonX.html
# su
# gnutar -zxvf tgz/rpm-4.0.2-0.34e-bin.tar.gz -C /
# setenv PATH $PATH\:/usr/local/bin
# rpm --initdb


 まずはルートになりすます。そしてgnutarでtar.gz(tgz)のバイナリーパッケージを解凍する。(gnu)tarコマンドはカレントディレクトリー下にファイルを展開するので,ルートディレクトリに展開するため-C /オプションを付ける。この結果,インストールされるファイル群をこの文の末尾に付録Aとして示す。gnutar -zxvfの次にtgz/が挿入されているが,これはユーザーディレクトリーのサブディレクトリにtgz/を作成しtarパッケージを含ませることを想定している。
 次のパス指定は重要で,これがないと今インストールしたコマンドを実行できない。RPMを今後使う際に,
# su
# setenv PATH $PATH\:/usr/local/bin
の2行を始めに必ず打つ必要がある。


 次に前述の理由でいくつかのパッケージ群をインストールする必要がある。
# rpm -Uvh RPMS/ppc/system-10.2-1b.ppc.rpm --nodeps
# rpm -Uvh RPMS/ppc/gettext-0.10.35-4c.ppc.rpm
# rpm -Uvh RPMS/ppc/bzip2*-1.0.2-5b.ppc.rpm
# rpm -Uvh RPMS/ppc/db3*-3.2.9-2b.ppc.rpm
# rpm -Uvh RPMS/ppc/dlcompat-20021001-1a.ppc.rpm
# rpm -Uvh RPMS/ppc/readline*-4.3-3a.ppc.rpm


次はrpmコマンドのRPMからの再インストールのオプションである。
# rpm -ivh RPMS/ppc/popt-1.6.2-0.34e.ppc.rpm
# rpm -ivh RPMS/ppc/rpm*-4.0.2-0.34e.ppc.rpm
上記のパッケージ群を藤井さんのサイトからダウンロードし,users/moto(
私)/のディレクトリにRPMS/ppc/を作って移動した。Uvhはアップグレードの指示であるが,更新すべきファイルが無い場合は新規インストールをしてくれる。ivhは新規インストールである。--nodepsオプションは依存関係を無視してインストールさせるためのもの。ここで注意しなければならないのは,パッケージ名に*が付加されているものである。藤井さんのアドバイスでは,*がついたものは
http://www-jlc.kek.jp/~fujiik/macosx/10.2.X/RPMS/のppc/内の関連パッケージ群をダウンロードしてのち,必要があるとのことであった。下記は藤井さんのアドバイスの引用。
「(藤井さん)rpm と bzip2 については、rpm*、bzip2* のように
* が付いていると思います。これは、ワイルドカードの意味で、
bzip2* は、bzip2 以外に、bzip2-libs、bzip2-devel も含めて
という意味です(実は、使うだけなら bzip2-devel は不要ですが)。
rpm* についても同様です。rpm で始まるパッケージを全部入れてく
ださい。また、依存関係があるので、bzip2* 3つ同時に、rpm* より
先にインストールする必要があります。」


 *がついているのは,下記の4個ある。
bzip2*-1.0.2-5b.ppc.rpm
db3*-3.2.9-2b.ppc.rpm
readline*-4.3-3a.ppc.rpm
rpm*-4.0.2-0.34e.ppc.rpm
このうち,
bzip2*-1.0.2-5b.ppc.rpm
rpm*-4.0.2-0.34e.ppc.rpm
だけはbzip2,rpmで始まる残りの2パッケージをもまとめてインストールする必要があった。それをしないと,付録Bのようなメッセージが出る。
ただし,
db3*-3.2.9-2b.ppc.rpm
readline*-4.3-3a.ppc.rpm
については他の関連ファイルを用意しても,
already installed
というメッセージが出る。
 なお,*がついているパッケージは(この場合,結局2個だが)をインストールする際,
# rpm -Uvh RPMS/ppc/bzip2*
# rpm -Uvh RPMS/ppc/rpm*
とした。


インストールが成功すると,
[Macintosh:/Users/moto] moto# rpm -Uvh RPMS/ppc/bzip2*
Preparing... ###########################################
[100%]
1:bzip2-libs ###########################################
[ 33%]
2:bzip2 ###########################################
[ 66%]
3:bzip2-devel ###########################################
[100%]
[Macintosh:/Users/moto] moto# rpm -Uvh RPMS/ppc/rpm*
Preparing... ###########################################
[100%]
1:rpm ###########################################
[ 33%]
2:rpm-build ###########################################
[ 66%]
3:rpm-devel ###########################################
[100%]
[Macintosh:/Users/moto] moto#
と表示される。


$ rpm -qa # to see list of all that installed
でインストールされたパッケージをチェックすると,次のメッセージが出た。
[Macintosh:/Users/moto] moto# rpm -qa
gettext-0.10.35-4c
dlcompat-20021001-1a
popt-1.6.2-0.34e
bzip2-1.0.2-5b
rpm-4.0.2-0.34e
rpm-devel-4.0.2-0.34e
system-10.2-1b
db3-3.2.9-2b
readline-4.3-3a
bzip2-libs-1.0.2-5b
bzip2-devel-1.0.2-5b
rpm-build-4.0.2-0.34e
[Macintosh:/Users/moto] moto#
藤井さんのおかげで成功。


4. g77 on MacOS Xのインストール


 このFORTRANコンパイラーが欲しいだけでここまできた。自らのパソコンに完全対応させるべくタールからパッケージを構築する方法も示されているが,ぼくは藤井さんがTi-PowerBookにインストールしたというパッケージをそのままiBook(600MHz)に入れることにした。
 How to Install a Precompiled Binary Packageの項を参照して欲しい。


念のため,藤井さんのインストールプロセスを示すと,
# rpm -ivh gcc-with-g77-1151-1b.ppc.rpm
# rpm -ivh gcc2-with-g77-7-1a.ppc.rpm
# rpm -ivh gcc-with-g77-symlinks-1151-1b.ppc.rpm
  (念のためにいうと,このコマンド行を実行する前に,やはり
      # su
      # setenv PATH $PATH\:/usr/local/bin
             の2行を始めに必ず打つ必要がある。)
であるが,私は自分のディレクトリにfortran_g77/というサブディレクトリを作成し,この3つのバイナリーパッケージを移動して入れた。その過程を付録Cに示している。rpm -qaで確認すると下記のメッセージが出て,成功した。


[Macintosh:/Users/moto] moto# rpm -qa
gettext-0.10.35-4c
dlcompat-20021001-1a
popt-1.6.2-0.34e
bzip2-1.0.2-5b
rpm-4.0.2-0.34e
rpm-devel-4.0.2-0.34e
gcc2-with-g77-7-1a
system-10.2-1b
db3-3.2.9-2b
readline-4.3-3a
bzip2-libs-1.0.2-5b
bzip2-devel-1.0.2-5b
rpm-build-4.0.2-0.34e
gcc-with-g77-1151-1b
gcc-with-g77-symlinks-1151-1b
[Macintosh:/Users/moto] moto#
 なお,FORTRANを起動するコマンドは,g77である。

5. FORTRAN77コンパイラーの解凍と実行プログラムの作成

 RPM関係のファイルは/usr/local/binの中にある。そこでGnuのFORTRANアプリケーション6本を次のようにして解凍した。
[Macintosh:/] moto% /urs/local/bin/rpm ファイル名
である。なお,コンパイル済みのFORTRANプログラム(実行形プログラム)が,新規にパソコンを立ち上げた場合,動かない場合があり,
>g77 ソースプログラム名 -o 実行形プログラム名(新規)
で,再度コンパイルすること。そして実行形を実行する場合,カレントディレクトリーに実行プログラムがあっても,
>./dmj2gras.out
のように ./ を付加しなければならない場合がある。(after 升本眞二先生の集中講義資料)
 まーまー:コンパイルを再三しなければならないなんて,変なのだけど,UNIX関係の知識が根本的に不足しているから,この種の作業は苦手だ。かつてFORTRANやBASICを使っていたが勝手が違う。


以 上


付録A


[Macintosh:/Users/moto] moto# gnutar -zxvf rpm-4.0.2-0.34e-bin.tar.gz
-C /
./
private/
private/etc/
private/etc/rpm/
private/var/
private/var/local/
private/var/local/lib/
private/var/local/lib/rpm/
private/var/local/tmp/
usr/
usr/local/
usr/local/bin/
usr/local/bin/gendiff
usr/local/bin/rpm
usr/local/bin/rpm2cpio
usr/local/bin/rpmdb
usr/local/bin/rpme
usr/local/bin/rpmi
usr/local/bin/rpmquery
usr/local/bin/rpmsign
usr/local/bin/rpmu
usr/local/bin/rpmverify
usr/local/doc/
usr/local/doc/rpm-4.0.2/
usr/local/doc/rpm-4.0.2/builddependencies
usr/local/doc/rpm-4.0.2/buildroot
usr/local/doc/rpm-4.0.2/CHANGES
usr/local/doc/rpm-4.0.2/dependencies
usr/local/doc/rpm-4.0.2/format
usr/local/doc/rpm-4.0.2/GROUPS
usr/local/doc/rpm-4.0.2/macros
usr/local/doc/rpm-4.0.2/multiplebuilds
usr/local/doc/rpm-4.0.2/queryformat
usr/local/doc/rpm-4.0.2/relocatable
usr/local/doc/rpm-4.0.2/RPM-GPG-KEY
usr/local/doc/rpm-4.0.2/RPM-PGP-KEY
usr/local/doc/rpm-4.0.2/signatures
usr/local/doc/rpm-4.0.2/spec
usr/local/doc/rpm-4.0.2/triggers
usr/local/include/
usr/local/include/popt.h
usr/local/lib/
usr/local/lib/libbz2.1.0.dylib
usr/local/lib/libbz2.1.dylib
usr/local/lib/libdb-3.2.dylib
usr/local/lib/libdb_cxx-3.2.dylib
usr/local/lib/libpopt.a
usr/local/lib/libpopt.la
usr/local/lib/rpm/
usr/local/lib/rpm/config.guess
usr/local/lib/rpm/config.sub
usr/local/lib/rpm/convertrpmrc.sh
usr/local/lib/rpm/macros
usr/local/lib/rpm/mkinstalldirs
usr/local/lib/rpm/rpmdb
usr/local/lib/rpm/rpme
usr/local/lib/rpm/rpmi
usr/local/lib/rpm/rpmk
usr/local/lib/rpm/rpmpopt
usr/local/lib/rpm/rpmpopt-4.0.2
usr/local/lib/rpm/rpmq
usr/local/lib/rpm/rpmrc
usr/local/lib/rpm/rpmu
usr/local/lib/rpm/rpmv
usr/local/man/
usr/local/man/man1/
usr/local/man/man1/gendiff.1
usr/local/man/man3/
usr/local/man/man3/popt.3
usr/local/man/man8/
usr/local/man/man8/rpm.8
usr/local/man/man8/rpm2cpio.8
usr/local/man/pl/
usr/local/man/pl/man8/
usr/local/man/pl/man8/rpm.8
usr/local/man/ru/
usr/local/man/ru/man8/
usr/local/man/ru/man8/rpm.8
usr/local/man/ru/man8/rpm2cpio.8
usr/local/man/sk/
usr/local/man/sk/man8/
usr/local/man/sk/man8/rpm.8
usr/local/share/
usr/local/share/locale/
usr/local/share/locale/cs/
usr/local/share/locale/cs/LC_MESSAGES/
usr/local/share/locale/cs/LC_MESSAGES/popt.mo
usr/local/share/locale/cs/LC_MESSAGES/rpm.mo
usr/local/share/locale/da/
usr/local/share/locale/da/LC_MESSAGES/
usr/local/share/locale/da/LC_MESSAGES/popt.mo
usr/local/share/locale/da/LC_MESSAGES/rpm.mo
usr/local/share/locale/de/
usr/local/share/locale/de/LC_MESSAGES/
usr/local/share/locale/de/LC_MESSAGES/rpm.mo
usr/local/share/locale/fi/
usr/local/share/locale/fi/LC_MESSAGES/
usr/local/share/locale/fi/LC_MESSAGES/rpm.mo
usr/local/share/locale/fr/
usr/local/share/locale/fr/LC_MESSAGES/
usr/local/share/locale/fr/LC_MESSAGES/rpm.mo
usr/local/share/locale/gl/
usr/local/share/locale/gl/LC_MESSAGES/
usr/local/share/locale/gl/LC_MESSAGES/popt.mo
usr/local/share/locale/hu/
usr/local/share/locale/hu/LC_MESSAGES/
usr/local/share/locale/hu/LC_MESSAGES/popt.mo
usr/local/share/locale/is/
usr/local/share/locale/is/LC_MESSAGES/
usr/local/share/locale/is/LC_MESSAGES/popt.mo
usr/local/share/locale/is/LC_MESSAGES/rpm.mo
usr/local/share/locale/ja/
usr/local/share/locale/ja/LC_MESSAGES/
usr/local/share/locale/ja/LC_MESSAGES/rpm.mo
usr/local/share/locale/no/
usr/local/share/locale/no/LC_MESSAGES/
usr/local/share/locale/no/LC_MESSAGES/popt.mo
usr/local/share/locale/no/LC_MESSAGES/rpm.mo
usr/local/share/locale/pl/
usr/local/share/locale/pl/LC_MESSAGES/
usr/local/share/locale/pl/LC_MESSAGES/rpm.mo
usr/local/share/locale/pt/
usr/local/share/locale/pt/LC_MESSAGES/
usr/local/share/locale/pt/LC_MESSAGES/popt.mo
usr/local/share/locale/pt/LC_MESSAGES/rpm.mo
usr/local/share/locale/pt_BR/
usr/local/share/locale/pt_BR/LC_MESSAGES/
usr/local/share/locale/pt_BR/LC_MESSAGES/rpm.mo
usr/local/share/locale/ro/
usr/local/share/locale/ro/LC_MESSAGES/
usr/local/share/locale/ro/LC_MESSAGES/popt.mo
usr/local/share/locale/ro/LC_MESSAGES/rpm.mo
usr/local/share/locale/ru/
usr/local/share/locale/ru/LC_MESSAGES/
usr/local/share/locale/ru/LC_MESSAGES/popt.mo
usr/local/share/locale/ru/LC_MESSAGES/rpm.mo
usr/local/share/locale/sk/
usr/local/share/locale/sk/LC_MESSAGES/
usr/local/share/locale/sk/LC_MESSAGES/popt.mo
usr/local/share/locale/sk/LC_MESSAGES/rpm.mo
usr/local/share/locale/sl/
usr/local/share/locale/sl/LC_MESSAGES/
usr/local/share/locale/sl/LC_MESSAGES/popt.mo
usr/local/share/locale/sl/LC_MESSAGES/rpm.mo
usr/local/share/locale/sr/
usr/local/share/locale/sr/LC_MESSAGES/
usr/local/share/locale/sr/LC_MESSAGES/rpm.mo
usr/local/share/locale/sv/
usr/local/share/locale/sv/LC_MESSAGES/
usr/local/share/locale/sv/LC_MESSAGES/popt.mo
usr/local/share/locale/sv/LC_MESSAGES/rpm.mo
usr/local/share/locale/tr/
usr/local/share/locale/tr/LC_MESSAGES/
usr/local/share/locale/tr/LC_MESSAGES/popt.mo
usr/local/share/locale/tr/LC_MESSAGES/rpm.mo
usr/local/share/locale/uk/
usr/local/share/locale/uk/LC_MESSAGES/
usr/local/share/locale/uk/LC_MESSAGES/popt.mo
usr/local/share/locale/wa/
usr/local/share/locale/wa/LC_MESSAGES/
usr/local/share/locale/wa/LC_MESSAGES/popt.mo
usr/local/share/locale/zh_CN.GB2312/
usr/local/share/locale/zh_CN.GB2312/LC_MESSAGES/
usr/local/share/locale/zh_CN.GB2312/LC_MESSAGES/popt.mo
[Macintosh:/Users/moto] moto#
付録Aはここまで。


付録B


[Macintosh:/Users/moto] moto# rpm -Uvh RPMS/ppc/bzip2-1.0.2-5b.ppc.rpm
????: ?????η??:
bzip2-libs = 1.0.2?? bzip2-1.0.2-5b ??????????????
libbz2.1.dylib ?? bzip2-1.0.2-5b ??????????????
[Macintosh:/Users/moto] moto# rpm -Uvh RPMS/ppc/rpm*-4.0.2-0.34e.ppc.rpm
????: ?????η??:
libbz2.1.dylib ?? rpm-4.0.2-0.34e ??????????????
(Xwindowでの表示と比べると文字化けしているが)
付録Bはここまで。


付録C


[Macintosh:~] moto% su
Password:
[Macintosh:/Users/moto] moto# setenv PATH $PATH\:/usr/local/bin
[Macintosh:/Users/moto] moto# rpm -ivh
fortran_g77/gcc-with-g77-1151-1b.ppc.rpm
Preparing... ###########################################
[100%]
1:gcc-with-g77 ###########################################
[100%]
[Macintosh:/Users/moto] moto# rpm -ivh
fortran_g77/gcc2-with-g77-7-1a.ppc.rpm
Preparing... ###########################################
[100%]
1:gcc2-with-g77 ###########################################
[100%]
[Macintosh:/Users/moto] moto# rpm -ivh
fortran_g77/gcc-with-g77-symlinks-1151-1b.ppc.rpm
Preparing... ###########################################
[100%]
1:gcc-with-g77-symlinks ###########################################
[100%]
[Macintosh:/Users/moto] moto#
付録Cはここまで。