irafインストールメモ(Linux編)
2010年5月に自分のノートpc(vine linux4.0)にインストールしたときの記録です。OSによって違いはあるでしょうが、以前にやったFedoraも大体こんな感じだったんで参考になるはずです。

★IRAFとは?
・FITSファイル・・・天文業界で一般的に使われてるフォーマット。ヘッダ(説明メモ?)+データ(画像とか)からなる。

・IRAF・・・FITSの中身を勝手に読み込み、指令を下せる。可視近赤の天文学における代表的な解析ツール

・ds9・・・画像viewer。irafから指令下せるので便利。

・タスク・・・IRAF上のコマンドのこと。必ずなんらかのpackageに属していることに注意。


★事前にいれとくもの
◎xgterm(iraf用のターミナル)
ftp://iraf.noao.edu/pub/からxgterm.fedoraを/tmpに保存
保存した場所に移動して
$ cd /tmp
・名前の簡略化
$ mv xgterm.fedora xgterm
・chmodでアクセス権限をいじる(要は所有者のみが読み・書き・実行の全ての権限を持ち、それ以外のユーザーは書き込み権限を持たないようにする。詳しくはLinuxコマンド集でchmod参考のこと)
$ chmod 755 xgterm
・スーパーユーザーになって/usr/local/binに移動
$ su
# mv xgterm /usr/local/bin

→これでもう完了。端末上で"$ xgterm &"とうてばxgterm立ち上がるはず


◎ds9(fitsファイル用の画像ビュウアー)
ftp://sao-ftp.harvard.edu/pub/rd/ds9/linuxからds9.linux.6.0.tar.gzを/tmpに保存
・/tmp内で解凍展開
$ gzip -d ds9.linux.6.0.tar.gz
$ tar xvf ds9.linux.6.0.tar
→ds9が出てくるはず
・ds9ファイルを/usr/local/binに移動
$ su
# mv ds9 /usr/local/bin


◎fortran,c言語 たぶんUNIX系ならデフォルトで入っているが、チェックするためにはコンパイルのコマンドを打って確認してみる。
入っていれば
$ g77
g77: no input files
$ gcc
gcc: no input files
のように出て、
入ってなければ
$ g95
bash: g95: command not found
のように表示される。


◎csh
これもデフォルトではいってることも多いが、なければ
$ apt-get install csh
ですぐに入る



★irafのインストール

ftp://iraf.nao.ac.jp/IRAF/iraf/v214/PCIX/から必要なものを/tmpにダウンロード
必要なもの:README
as.pcix.gen.gz
ib.lnux.x86.gz
nb.lnux.x86.gz
pciraf.ps.gz
unixsmg.ps.gz

◎irafを入れるディレクトリを作る(スーパーユーザーになって)
$ su
# mkdir -p /iraf/iraf


◎iraf用のユーザーアカウントも作成 ・新しいgroupの追加
# /usr/sbin/groupadd -g 503 iraf
・IRAFaddministratorというアカウントの追加(ホームディレクトリ=/iraf/iraf/local、グループ=iraf[503]、ログインシェル=/bin/csh)
# /usr/sbin/useradd -c "IRAFaddministrator" -d /iraf/iraf/local -g iraf -s /bin/csh -u 503 iraf
・パスワードの設定
# passwd iraf
→適当に設定
・/irafというディレクトリの所有者の変更
# chown -R iraf.iraf /iraf


◎irafアカウントになってダウンロードしたデータを展開
# su iraf

・環境変数のセット?正直わかりません・・・おまじない!
$ setenv iraf /iraf/iraf/

・irafアカウントのホームディレクトリに入ってデータの解凍展開
$ cd /iraf/iraf
$ su (スーパーユーザーにならないと以下の作業ができないこともあるので)
# gzip -d /tmp/as.pcix.gen.gz
# tar xvf /tmp/as.pcix.gen

# cd /iraf
# mkdir -p irafbin/bin.linux
# cd irafbin/bin.linux/
# gzip -d /tmp/ib.lnux.x86.gz
# tar xvf /tmp/ib.lnux.x86

# cd /iraf
# mkdir irafbin/noao.bin.linux
# cd irafbin/noao.bin.linux/
# gzip -d /tmp/nb.lnux.x86.gz
# tar xvf /tmp/nb.lnux.x86
# exit


◎インストールの実行
(環境設定に関するおまじない系)
$ setenv LANG C
$ setenv iraf /iraf/iraf/

・インストール実験、実際のインストールはまだ
$ cd /iraf/iraf/unix/hlib
$ source irafuser.csh (cshスクリプトの実行)
$ ./install -n
(これで実験が始まる。いろいろ質問してくるが、Would you like to return to networking setup? (yes): だけ"no"。他はデフォルトで。)

・スーパーユーザーになって本番のインストール
$ su
# /bin/csh
# setenv LANG C
# ./install
(質問に対してはとりあえず全部デフォルトでかわす)

→以上でirafのインストールが完了したはず!!


※インストールの実行 が上手くいかないこともある。
→その場合以下のメモのようにすると上手くいくかも。
su
ルートになる
cd /lib
ls libtermcap*
でファイルがあるか確認する。
ない場合、
ls libncurse*
があるかどうか確認。あったら、
ln -s libncurses.so.5.6 libtermcap.so
ln -s libncurses.so.5.6 libtermcat.so.2
とする
ルートを抜ける




★irafの初期設定(llogin.clをいじる)
login.clはデフォルトのままでも大丈夫な気がするが一応以下のように書き換えた。

#cd /iraf/iraf/unix/hlib
#emacs login.cl &
# LOGIN.CL -- User login file for the IRAF command language.
# Identify login.cl version (checked in images.cl).
if (defpar ("logver"))
logver = "IRAF V2.14.1 September 2008"
set home = "U_HOME"
set imdir = "HDR$/"
set uparm = "home$uparm/"
set userid = "U_USER"
# Set the terminal type. We assume the user has defined this correctly
# when issuing the MKIRAF and no longer key off the unix TERM to set a
# default.
if (access (".hushiraf") == no)
print "setting terminal type to U_TERM..."
stty U_TERM
# Uncomment and edit to change the defaults.
#set editor = vi
#set printer = lp
#set pspage = "letter"
#set stdimage = imt800
#set stdimcur = stdimage
#set stdplot = lw
#set clobber = no
#set filewait = yes
#set cmbuflen = 512000
#set min_lenuserarea = 64000
set imtype = "fits"
set imextn = "oif:imh fxf:fits,fit fxb:fxb plf:pl qpf:qp stf:hhh,??h"
# XIMTOOL/DISPLAY stuff. Set node to the name of your workstation to
# enable remote image display. The trailing "!" is required.
#set node = "my_workstation!"
# CL parameters you mighth want to change.
#ehinit = "nostandout eol noverify"
#epinit = "standout showall"
showtype = yes
# Load the default CL package. Doing so here allows us to override package
# paths and load personalized packages from our loginuser.cl.
clpackage
# Default USER package; extend or modify as you wish. Note that this can
# be used to call FORTRAN programs from IRAF.
package user
task $adb $bc $cal $cat $comm $cp $csh $date $dbx $df $diff = "$foreign"
task $du $find $finger $ftp $grep $lpq $lprm $ls $mail $make = "$foreign"
task $man $mon $mv $nm $od $ps $rcp $rlogin $rsh $ruptime = "$foreign"
task $rwho $sh $spell $sps $strings $su $telnet $tip $top = "$foreign"
task $vi $emacs $w $wc $less $rusers $sync $pwd $gdb = "$foreign"
task $xc $mkpkg $generic $rtar $wtar $buglog = "$foreign"
#task $fc = "$xc -h $* -limfort -lsys -lvops -los"
task $fc = ("$" // envget("iraf") // "unix/hlib/fc.csh" //
" -h $* -limfort -lsys -lvops -los")
task $nbugs = ("$(setenv EDITOR 'buglog -e';" //
"less -Cqm +G " // envget ("iraf") // "local/bugs.*)")
task $cls = "$clear;ls"
task $clw = "$clear;w"
task $pg = ("$(less -Cqm $*)")
if (access ("home$loginuser.cl"))
cl < "home$loginuser.cl"
;
keep
prcache directory
cache directory page type help
# Print the message of the day.
if (access (".hushiraf"))
menus = no
else {
clear; type hlib$motd
}
# Delete any old MTIO lock (magtape position) files.
if (deftask ("mtclean"))
mtclean
else
delete uparm$mt?.lok,uparm$*.wcs verify-
# List any packages you want loaded at login time, ONE PER LINE.
images # general image operators
plot # graphics tasks
dataio # data conversions, import export
lists # list processing
# The if(deftask...) is needed for V2.9 compatibility.
if (deftask ("proto"))
proto # prototype or ad hoc tasks
tv # image display
utilities # miscellaneous utilities
noao # optical astronomy packages
keep



★login.clをつくる(irafを初めて使うときの儀式)

◎irafを使う自分アカウントの戻る
#su 自分アカウント
$ cd (ホームディレクトリに行く)

◎login.clをつくる
場所はどこでも構わないが、わかりやすさ的にホームディレクトリに作った。
$ mkiraf
と打つと、使用termを聞いてくるので
xgterm
と指定する。
→これでlogin.clできたはず



★irafの起動方法
xgtermを開き、ホームディレクトリ内で"cl"と打てばOK
$ xgterm &
(xgterm内で)
$ cl

ecl>
となったら完璧!

※iraf抜けるときは
ecl> logout




☆参考
沖田博文さんの公式ホームページ
浜辺さんのホームページ


目次に戻る