首先,下载该工具包。
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.
首先设置环境变量如下(省略号根据自己解压缩的位置填写):
切换到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文件,
#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>。