読者です 読者をやめる 読者になる 読者になる

どせいたんさき。

ナスダヨー

Ubuntu 12.10 に ds9, xpa, iraf をインストールする

研究で使うソフトウェアのインストール.

ds9, xpa

最新版の ds9, xpa はここからダウンロードできる.バイナリで配布されているのでコンパイルする必要なくインストールできる. ds9 のバージョンは 7.1, xpa のバージョンは 2.1.14 を使用する.

sudo apt-get install libxss1
cd /usr/local/src/
mkdir ds9-7.1; cd ds9-7.1
tar zxvf ~/Downloads/ds9.linux64.7.1.tar.gz
ln -s /usr/local/src/ds9-7.1/ds9 /usr/local/bin/.

cd /usr/local/src/
mkdir xpa-2.1.14; cd xpa-2.1.14
tar zxvf ~/Downloads/xpa.linux64.2.1.14.tar.gz
ln -s /usr/local/src/xpa-2.1.14/* /usr/local/bin/.

iraf, x11iraf

iraf, x11iraf ともに最新版をここからダウンロード. iraf は Linux 64bit 版 をダウンロード. x11iraf は 24 bit 版をダウンロード.バージョンはそれぞれ iraf-2.16, x11iraf-2.0beta となる.

iraf はすでにコンパイルしてあるので環境変数 iraf をセットしてインストールスクリプトを走らせるだけで完了する.あとは必要に応じてパッケージを make する.

sudo apt-get install tcsh
cd /usr/local/share
mkdir -p iraf/iraf; cd iraf/iraf
tar zxf ~/Downloads/iraf.lnux.x86_64.tar.gz
export iraf=/usr/local/share/iraf/iraf
${iraf}/unix/hlib/install
cd ${iraf}/extern
sudo ./configure
sudo make stsdas

残念ながら x11iraf はコンパイルしてあるものをダウンロードしてきたのだけどなぜか起動しなかった.似たような問題は以前にもあった.

./xgterm: error while loading shared libraries: libXmu.so.6: wrong ELF class: ELFCLASS64

最初は libXmu.so.6 がないと言ってきたので LD_LIBRARY_PATH で指定してあげたら今度はこういったエラーになった. google 先生に聞いたところによるとこれは 32bit を期待してライブラリを見に行ったら 64bit じゃないかどうしてくれるんだチクショウ!ということらしいので 32bit のライブラリをインストールすることにした.

Xubuntu 10.04 64bit で xgterm が起動しなかった問題 - どせいけいさんき。

ただし今回発生したエラーは

bash: /usr/local/bin/xgterm: No such file or directory

……これは 32bit 版ライブラリをインストールしても解決しないのではないかと思ったので,ソースからコンパイルすることに.基本的には configure (xmkmf) して make すれば良いのだけどそのままではコンパイルが通らない.

sudo apt-get install xutils-dev bison flex
sudo apt-get install libxmu-dev libxaw7-dev
cd /usr/local/src
mkdir x11iraf; cd x11iraf
tar zxvf ~/Downloads/x11iraf-v2.0BETA-src.tar.gz
xmkmf
## (ここでソースをちょっといじる)
make World
sudo ./install

まず訂正した部分は obm/ObmW/Imakefile の 24 行目で

 20  #if defined (PpcDarwinArchitecture) || defined (TenonServer)
 21          CCOPTIONS = -traditional-cpp
 22  #endif 
 23  
-24  #if ((GccMajorVersion == 3) && (GccMinorVersion >= 1))
+24  #if ((GccMajorVersion >= 3) && (GccMinorVersion >= 1))
 25          CCOPTIONS = -DUSE_STDARG
 26  #else
 27          CCOPTIONS =
 28  #endif

もうひとつ訂正した部分は xgterm/button.c の 43 行目で

 39  #include "data.h"
 40  #include "error.h"
 41  #include "menu.h"
 42  
-43  extern char *malloc();
+43  extern void *malloc();
 44  

以上を直せばちゃんとコンパイルが通るようになる.なお,実際に使ってみてエラーが出るかどうかはまだ確認していない.