SDSS IDL工具包binutils的安装

[English Version]

首先,下载该工具包。

SDSS网页上一堆都是帮助文档,要找到下载地址还得费一番力气。从下面的链接下载所需的压缩包:

http://spectro.princeton.edu/tarballs/

这个地址罗列了几个软件包的各个版本。这里我们只需要idlutils,选择当前的最新版比如idlutils-v5_3_0.tar,下载。

你可以参考

http://spectro.princeton.edu/idlspec2d_install.html#install_tar

给出的安装过程,但在我帮GF在她的ubuntu 8.10上安装时,出现两大错误:

一是在默认的bash终端下,无论你怎么设置\$IDLUTILS_DIR变量,在执行evilmake时总是没用,make的时候会把makefile里的所有\$(IDLUTILS_DIR)都忽略掉,所以编译时脚本会企图把你要生成的库都放在/lib目录下而非\$IDLUTILS_DIR/lib下,这样当你不是以超级用户权限执行时,会报错:permission denied.

二是ubuntu 8.10上的gcc 4.3根本就不带g77,当然也不带f77。如果你装了f77,没用,他会把mangle下的*.s.f文件都转成c文件然后生成 *.o文件,于是make报错:azel.s.o找不到,因为压根只有azel.o。

经过一晚的摸索,在不懂make语法的情况下,自己还是终于成功解决了上面两个问题,可行的安装过程如下:

将idlutils-v5_3_0.tar解压缩,比如在该压缩包所在目录下执行:

tar -xf idlutils-v5_3_0.tar -C ~/

将该包解压到自己的home目录下。

然后

cd ~/idlutils

然后编辑idlutils目录下的/bin/evilmake文件,把下面两行:

    "Linux" )
        LDF77=g77

改为

    "Linux" )
        F77=gfortran
        LDF77=gcc

也就是设置合适的编译器。如果你的系统里没有gfortran,先

apt-get install gfortran

下面开始编译安装:

切换到csh(如果没有csh,同样apt-get install csh) :

csh

设置变量:

setenv IDLUTILS_DIR $HOME/idlutils

你把idlutils解压到哪就把上面的路径设成哪。

这时再运行

bin/evilmake

一切正常,只有一些warning,而不再报错。

最后一步,为IDL添加路径:

启动idlde,如果你是6.2左右的版本,那么在FILE->Preference菜单下,Path标签上,添加你刚装的idlutils目录,然后把前面的复选框选上,然后确定。

如果你是IDL 7.0的版本,那么在窗口->首选项菜单,选择IDL->路径,在其中添加idlutils的目录,然后把复选框选上,确定。

这时可以在idl命令行试试idlutils里的命令,比如atv,如果跳出一个窗口,则大功告成。

----------

转载请注明源自asc.2dark.org,作者kambrian。

评论

SDSS photoop工具包的安装

折腾了几个小时,刚刚又成功安装了photoop软件包

http://photo.astro.princeton.edu/

官方主页上介绍的安装方法要用evilups,本人较懒,不愿为了装一个包而先装另一个包,(谁知道在装那个evilups时是否又会出现一堆问题),于是尝试直接make.

首先设置环境变量如下(省略号根据自己解压缩的位置填写):

IDL_DIR=... 
PHOTOOP_DIR=...
export IDL_DIR 
export PHOTOOP_DIR

切换到photoop目录,执行make

显然,直接make失败。

根据错误提示,首先修正 src/atlas/Makefile,在头文件搜索路径里加入当前目录(-I.),即修改CFLAGS一行如下

CFLAGS  = -I\$(IDL_DIR)/external -I\$(PHOTOOP_DIR)/src/readAtlasImages -I. -DCHECK_LEAKS \$(X_CFLAGS)

同时将

#SO_EXT=so

一行前面的#去掉。

然后,仿照binutils包里的evilmake文件,设置相应的编译参数,比如将以下内容存为 kammake文件,

 

#!/bin/sh
#by Kambrian, http://asc.2dark.org,
#for installation of photoop from http://photo.astro.princeton.edu/
#on Linux system
CC=gcc
LD=gcc
X_CFLAGS=-fPIC
X_LD_FLAGS=-shared
export CC LD X_CFLAGS X_LD_FLAGS
make "$@"

 

保存到photoop目录下,设为可执行:

chmod u+x kammake

然后运行

./kammake

安装成功。

注意:如果不设X_LD_FLAGS=-shared,则会报很奇怪的错误比如

...crt1.o(.text+0x18): In function `_start': ...undefined reference to `main'

如果不设LD=gcc而使用默认的ld作linker,则会报各种标准库函数调用为undefined reference,尽管已经包含了<stdio.h>和<stdlib.h>。