iraf是一款天文数据处理软件,最新版本为2.16,具体介绍可见官网:
http://iraf.noao.edu/
由于自己以前用虚拟机,之后又换了双系统,还装了不同的系统(在两者中尝试过Ubuntu14.04,Fedora22,CentOS7.1),所以就蛋疼得装了很多遍iraf,本次以我在fedora22中安装的过程为参考,写一下自己的安装过程。其实很多安装iraf的教程都很过时了,这篇笔记尽量将过程简化,略去冗杂的步骤,并且努力解释一些安装过程中其他教程没有说明的细节。
过程简化了,但是字还是很多,如果只想安装,只需要看用颜色显示的命令即可,其他的完全可以跳过。
iraf安装
在官网下载iraf安装包。例如选择Linux 64-bit (228MB)。
安装过程可以参照安装包内的说明文档“README.install”,当然如果你觉得看这么多英文会死,我写的东西就有用了。下面是我从官网的自述文档ftp://iraf.noao.edu/iraf/v216/README中copy的一段安装说明:
1) Create an 'iraf' directory (preferrably /iraf/iraf) and unpack the distribution file for your platform there.
2) Define $iraf in your environment (with a trailing '/')
3) Run the $iraf/install script to install the system
其实第二部是不必要的,因此安装只需要下面几步(敲键盘前先看看后面的“注意”):
$ sudo mkdir -p /iraf/iraf
$ sudo mv /你的下载目录/iraf.lnux.x86_64.tar.gz /iraf/iraf
$ cd /iraf/iraf
$ sudo tar zxvf iraf.lnux.x86_64.tar.gz
$ ./install
不明白的话可自行查询相关文档,执行install脚本,会询问一些文件路径,基本上使用默认配置就行(就是回车回车。。。。)。
注意:最后一步以root身份和以一般用户身份(你使用的用户)安装是有不同结果的:区别在于"for system-wide use"和"for person use",其默认的文件路径会分别设置在/iraf下相关路径和/home/username/.iraf下,相关文件的权限也会不同,如果你比较了解这些,可以自行选择,否则,本文建议选择后者,工作目录放在自己的家目录总是好一些的。如果选择前者,最后一步为:
$ sudo ./install --system #貌似不加--system参数结果是一样的
至此,iraf本身的安装完成,在任意位置(应该是工作目录)执行:
$ cl 或 $ iraf
即可进入iraf的界面,前者是在当前terminal下进入iraf,而后者,我们用命令
$ alias iraf
alias iraf='xgterm -e cl &'
会发现iraf被设置为用xgterm来打开iraf,在下面的X11iraf未安装前,直接执行iraf会得到错误信息:
$ iraf
[1] 10439
bash: xgterm: command not found...
这是因为在安装过程中,iraf将使用的终端默认设置为xgterm,下图是安装过程中的截图,最后一行处默认选择了xgterm。
X11iraf安装
X11iraf,顾名思义(当然你要知道X11是什么)就是iraf的图形界面,之前装的iraf在纯命令行中是可以运行的,但是如果你要一些图形的交互,就要安装这个X11iraf。在官网中给出了X11iraf的下载链接。
但是我在iraf的安装包中发现了貌似完整的X11iraf文件夹,在/iraf/iraf/vendor/x11iraf,包含了linux系统所需的所有文件,因此,应该用这个就够了。虽然这个文件夹在里面,但是并不能用,因此要进行安装。
如果你觉得不放心,还是在官网下载了X11iraf安装包,那么可以将安装包解压到/usr/local/x11iraf路径下(一般自己手动装的软件建议放在/usr/local下),类似于前面解压iraf压缩包:
$ sudo mkdir /usr/local/x11iraf
$ sudo mv /你的下载目录/x11iraf-v2.0BETA-bin.linux.tar.gz /usr/local/x11iraf
$ cd /usr/local/x11iraf
$ sudo tar zxvf x11iraf-v2.0BETA-bin.linux.tar.gz
X11iraf的安装脚本使用的是csh,因此要安装csh(或tcsh):
对于Ubunut用户 $ sudo apt-get install csh
对于Fedora、CentOS用户 $ sudo yum(Fedora22+中dnf代替了yum) install csh
X11iraf的安装对于不同的系统都会有不同的问题,如果你也遇到了问题,或许我的经验可以有些许帮助.
进入X11iraf:
$ cd /iraf/iraf/vendor/x11iraf 或 $ cd /usr/local/x11iraf
直接执行(一定要sudo):
$ sudo ./install
便进入安装过程,Ubuntu安装过程通常没有什么问题,但是Fedora安装过程中会报错,所有安装过程都会被跳过去:
*** No bin.redhat directory found, skipping installation.
Ubuntu安装过程没有问题,但是执行xgterm会得到错误信息:
bash: /usr/local/bin/xgterm: No such file or directory
下面分别给出解决方案。下面有一些很专业的linux技巧,有些是我搜索学到的,如果你想学,可以仔细看看,不然可以跳过,看有颜色的命令即可:
注意下面要对应自己的系统,一般是Ubuntu,不用作另外一个系统的步骤,虽然并不会弄坏什么。
Ubuntu:
用下面一条命令查看xgterm缺少了什么依赖文件(之前用$ file xgterm 得知xgterm是ELF格式32位可执行文件):
$ readelf -l xgterm | grep interpreter
[Requesting program interpreter: /lib/ld-linux.so.2]
找找/lib文件夹,确实没有这个文件,那么用apt-file命令来查找库文件在什么软件包里(ubuntu一般没有预装apt-file,可以通过$ sudo apt-get install apt-file来安装,安装后还要$ sudo apt-file update 更新缓存,过程中要下载几十MB的数据):
$ apt-file search ld-linux.so.2
libc6-i386: /lib/ld-linux.so.2
libc6-i386: /lib32/ld-linux.so.2
我们找了缺失的库文件所属的软件包,下面安装即可:
$ sudo apt-get install libc6-i386
你会发现现在执行xgterm后,依然报错,但是报错信息不同了:
error while loading shared libraries: libXmu.so.6: cannot open shared object file: No such file or directory
解决这类问题的方法:依然是用apt-file,用$ apt-file search *** ,***为缺失的库文件,查找到结果后,安装它告诉你的软件包(32位的)即可,具体过程参照上面两个命令。需要安装的其他包如下(如有不同,因该也有能力解决了):
$ sudo apt-get install libxmu6:i386 (这个i386前面的.或:应该一样,但有时候只有一个有效)
$ sudo apt-get install lib32ncurses5
Fedora:
Fedora由于错误跳过了安装,那么我们就手动安装,安装步骤就是将X11iraf中的文件放到相应的系统文件夹中:
$ sudo cp bin.linux/* /usr/local/bin
$ sudo cp lib.linux/* /usr/local/lib
$ sudo cp include/* /usr/local/include/
$ sudo cp app-defaults/* /usr/share/X11/app-defaults
$ sudo cp man/* /usr/share/man/man1
至此错误修复完成,在终端执行$ iraf,就会出现xgterm
ds9安装
ds9是用来显示fits图像文件的软件,虽然在Ubuntu的软件商店里可以下载到,但是很多时候,命令行的交互会有很多报错信息,所以要到
http://ds9.si.edu/archive/
下载较老版本(我一般下7.2)
下载后将解压出的可执行文件拷贝到/usr/local/bin
$ sudo cp /下载路径/ds9 /usr/local/bin
$ ds9 &
如果又出现了缺失库文件的报错信息,按照刚才上面的方法找到库文件所在软件包,安装即可,Fedora查询相关软件包的命令为
$ yum(dnf) provides ***
Fedora中32位软件包一般在软件名后加.i686
$ sudo yum(dnf) install ***.i686
其他事情
我在使用iraf的一个命令imexamine时,在ds9上操作没有效果,在Ubuntu和Fedora上都是这样,在网上也看到别人也有相同的问题。我在CentOS上安装过iraf、X11iraf、ds9,这一工具却可以正常使用,看来是又却了什么文件,我也不知道怎么办了。这个问题的解决方法就是:换Ximtool,这是X11iraf中提供的另外一个图形交互程序,可以替代ds9。
如果ds9打开显示“XPA unable to verify hostname, setting XPA_METHOD to LOCAL”,只需修改~/.bashrc,按照提示中的处理方法加上一句
export XPA_METHOD=local
即可。