pgplotのインストール [ubuntu]

データ解析のときに、基本 miriad を使っている。
miriad で解析したデータをプロットする時に pgplot が必要となるため、
miriad インストール前にpgplot を入れた。

以降、備忘録を載せる。

[ インストールの流れを参考にしたサイト ]
http://hooktail.org/computer/index.php?PGPLOT%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%A4%C8%A5%B3%A5%F3%A5%D1%A5%A4%A5%EB%CA%FD%CB%A1


1. ソースファイルの入手
PGPLOTの最新版は5.2.2 。(2011/10/28 現在)
http://www.astro.caltech.edu/~tjp/pgplot/install.html
ftp://ftp.astro.caltech.edu/pub/pgplot/
などからpgplot5.2.tar.gzをダウンロードし,適当な場所に保存する。
# 私は、 ~/Download に保存した。


2. ソースファイルを展開する。
ソースファイルを「/usr/local/src」に展開する。
/usr/local以下のディレクトリで作業するにはroot権限が必要なので、
あらかじめ root になってから作業する。
$ su
パスワード: ______ <-- root になるための password を入れる。
# cd /usr/local/src
# cp 保存場所/pgplot5.2.tar.gz .
# tar xzvf pgplot5.2.tar.gz


3. make の準備。
インストール用のディレクトリとして「/usr/local/pgplot」というディレクトリを作成。
# mkdir /usr/local/pgplot

このディレクトリにmakefileをつくるため,ソースを展開したディレクトリのdrivers.list
というファイルをコピーする(/usr/local/src/pgplotにmakefileを作ってはダメ)。
# cd /usr/local/pgplot
# cp /usr/local/src/pgplot/drivers.list .

エディタで先ほどコピーした「drivers.list」を編集する。
# vi drivesrs.list

必要なドライバのコメントアウト(行頭の「!」 )を外すと,そのドライバが使えるようになるので、
外す。参照サイトで外してあったドライバは以下。
# viの操作方法はサイトで検索した方が早いと思われます。

GIDRIV 1 /GIF GIF-format file, landscape
GIDRIV 2 /VGIF GIF-format file, portrait
LXDRIV 0 /LATEX LaTeX picture environment
NUDRIV 0 /NULL Null device (no output) Std F77
PSDRIV 1 /PS PostScript printers, monochrome, landscape Std F77
PSDRIV 2 /VPS Postscript printers, monochrome, portrait Std F77
PSDRIV 3 /CPS PostScript printers, color, landscape Std F77
PSDRIV 4 /VCPS PostScript printers, color, portrait Std F77
TTDRIV 5 /XTERM XTERM Tektronix terminal emulator Std F77
XWDRIV 1 /XWINDOW Workstations running X Window System C
XWDRIV 2 /XSERVE Persistent

以上で下準備ができたので,makemakeを使ってmakefileをつくります.
# /usr/local/src/pgplot/makemake /usr/local/src/pgplot linux g77_gcc


4. コンパイル
makefileができたらコンパイル。
# make

PGPLOTをCから呼び出せるように,もうひとつコンパイル。
# make cpg

エラーが出ずに無事コンパイル終了したら,もう使わないファイルを消す。
# make clean

rootから抜ける。
# exit


5. 環境変数の設定
PGPLOTのライブラリをどこからでも使えるよう,ライブラリのある場所などにパスを通す。
「~/.bashrc」というファイル(~/ はホームディレクトリの意味)に以下を記述する。

export PGPLOT_DIR=/usr/local/pgplot
export PGPLOT_DEV=/xserv
export LD_LIBRARY_PATH=/usr/local/pgplot

書いたら
$ source ~/.bashrc

として、書き込んだ内容を有効にする。


6.デモプログラムの実行
pgplot が動くかどうかを、 /usr/local/pgplotにあるデモプログラムを実行して試してみる。
$ /usr/local/pgplot/pgdemo1

とすると
Graphics device/type (? to see list, default /xserv):

というメッセージがコンソールに表示されます. そのまま Enter を押すと上手くいけばグラフが表示される。
これでpgplotが上手く入ったことが分かる。


7. トラブルシューティング
っと上のようにやってスムーズにインストールされればいいのだが、そう易々とはいかなかった。。。orz
下に、私が直面したトラブルとその解決策を載せる。

その1. make: *** [ figdisp_comm.o ] エラー 1
make したときに上のエラーを吐いた。さかのぼってどのようなことをしたかを確認すると、

g77 -c -u -Wall -fPIC -O grexec.f
gcc -c -Wall -fPIC -DPG_PPU -O -I. -I/usr/X11R6/include /usr/local/src/pgplot/drivers/figdisp_comm.c
/usr/local/src/pgplot/drivers/figdisp_comm.c:29:22: error: X11/Xlib.h: No such file or directory
/usr/local/src/pgplot/drivers/figdisp_comm.c:30:23: error: X11/Xatom.h: No such file or directory

という欄を見つけた。どうやら Xlib.h がないらしい。
どっか違う場所にあるのかもと思い、
# cd /
# find . | grep Xlib.h

をして探してみたが見つからなかった。なので、
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1422150389
を参考に、 Xlib.h を入れる。
[ システム ] - [ システム管理 ] - [ Synaptic パッケージ・マネージャ ]
- クイック検索にて 「 libX11-dev 」 を検索 - [ 適用 ]を押してインストール。

これで大丈夫だろうと、再び下を実行すると、
# /usr/local/src/pgplot/makemake /usr/local/src/pgplot linux g77_gcc
# make


その2. make: *** [proccom.o] エラー 1
またエラーを吐いた。再度logを確認すると、

gcc -c -Wall -fPIC -DPG_PPU -O -I. -I/usr/X11R6/include -DPGDISP /usr/local/src/pgplot/pgdispd/proccom.c
/usr/local/src/pgplot/pgdispd/proccom.c:107:27: error: X11/Intrinsic.h: No such file or directory
/usr/local/src/pgplot/pgdispd/proccom.c:108:28: error: X11/StringDefs.h: No such file or directory

という欄を発見。今度は Intrinsic.h がないらしい。
さっき同様に違う場所を疑ったが見つからなかった。
なので、
http://d.hatena.ne.jp/rx7/20080830/p1
を参考にIntrinsic.h を入れる。
ここでは、"apt-file"を使って、"Intrinsic.h"のファイルが含まれているパッケージを探して、
インストールしていた。
$ sudo apt-get update
$ sudo apt-get install apt-file

インストール後、下記のコマンドで内部のデータベースを更新。
$ sudo apt-file update
$ apt-file search Intrinsic.h
libxt-dev: /usr/include/X11/Intrinsic.h

準備が出来たら、上記のように"apt-file search"コマンドの後に、
探しているファイル名やコマンド名を入力して実行すると、
そのファイルやコマンドが含まれているパッケージの一覧が表示される。

上記の結果だと、"libxt-dev"パッケージをインストールすればよいことが分かる。
# sudo apt-get install libxt-dev


これで大丈夫だろうと、再び下を実行。
# /usr/local/src/pgplot/makemake /usr/local/src/pgplot linux g77_gcc
# make


その3. make: *** [proccom.o] エラー 1
またエラーを吐いた。しかも同じところで起きている。再度logを確認すると、

gcc -c -Wall -fPIC -DPG_PPU -O -I. -I/usr/X11R6/include -DPGDISP /usr/local/src/pgplot/pgdispd/proccom.c
In file included from /usr/local/src/pgplot/pgdispd/proccom.c:112:
/usr/local/src/pgplot/pgdispd/figdisp.h:12:1: warning: "/*" within comment
/usr/local/src/pgplot/pgdispd/figdisp.h:18:1: warning: "/*" within comment
/usr/local/src/pgplot/pgdispd/figdisp.h:51:1: warning: "/*" within comment

となっていた。何かのファイルがないという訳ではなさそうだ。
とりあえず、12・18・51行目にエラーを吐いているって書いてあるので、ファイルを見てみる。
# vi /usr/local/src/pgplot/pgdispd/figdisp.h

どうやら書いてあった行の前の部分が上手くコメントアウトされていなかったようだ。
他の書式に習ってこの部分をコメントアウトしてやる。


そろそろ通ってくれという気持ちで、再び下を実行すると、
# /usr/local/src/pgplot/makemake /usr/local/src/pgplot linux g77_gcc
# make

*** Finished compilation of PGPLOT ***

Note that if you plan to install PGPLOT in a different
directory than the current one, the following files will be
needed.

libpgplot.a
libpgplot.so
grfont.dat
rgb.txt
pgxwin_server

Also note that subsequent usage of PGPLOT programs requires that
the full path of the chosen installation directory be named in
an environment variable named PGPLOT_DIR.

と出た。うまくできたようだ。他のコマンドもエラーなくできた!!


じつは、このトラブルシューティング中に drivers.list を開いて何度も、

! X2DRIV 0 /XDISP PGDISP or FIGDISP server for X workstations C

のコメントアウトをつけたり外したりを繰り返している。
なので、ここに載っている手順通りに実行して同じエラーに遭遇するとは限らない。
自分で地道に解決するのが早いだろう。上のものはそのときの助けになるとうれしい。
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

g77 , f77 (fort77) を..AIPS インストール ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。