Bugs in codes installation and compilation

less than 1 minute read

在这里我记录下安装和编译软件时遇到的所有bug。

IRAF

安装时在NOIRLab的IRAF网站上直接下载安装包,对Ubuntu系统应该是一个.sh文件,下载后新建一个文件夹放进去,然后再bash运行就可以。不要用sudo apt install iraf来安装,这样有一些数据处理包装不进去。后来发现官网安装似乎也不太行,有些命令无法运行,按照Sean Points的推荐,使用Anaconda安装,解决了所有问题。

PGplot

安装时参照知乎专栏,注意其中更改链接的地方应该是/etc/ld.so.conf(不是/ept)。在make时遇到报错

Error: Type mismatch in argument 'pixmap' at (1); passed integer(8) to integer(1)

疑似与GCC的版本有关,需要在Makefile的FFLAGC末尾加入-fallow-argument-mismatch即可。参考,系统为Ubuntu24.04。

IDL

安装时报错,说找不到libXp.so.6。后来在这个网站上找到解决办法,在/usr/lib/x86_64-linux-gnu里面做软连接sudo ln -s libXpm.so.4.11.0 libXp.so.6,似乎libXp.so.6在安装IDL是根本用不到里面的内容,只是需要这个名字。在Ubuntu24.04上该方法依然可用。

Spextool

解压后,直接把整个Spextool文件夹放到IDL的lib目录下,不要改IDL_PATH。例如,如果IDL安装在默认目录/usr/local/exelis的话,Spextool应该移动到/usr/local/exelis/idl82/lib目录下。

nostar

nostar是用于ASTE的data reduction,可以直接下载、解压二进制文件,把网站上对应的otf-pro和otf.sav放置到对应的位置,然后下载nostar.gz,在里面更改otf安装的位置以及idl的位置,就可以成功使用。但是有些命令运行不了,是因为nostar要求32位的libg2c,而现在一般只有64位的。可以在这里找到32位g77的压缩包,解压后在里面找到libg2c的deb文件,在其中找到libg2c.so.0.0.0,复制到/usr/lib32里面。在/usr/lib中应该有一个libg2c.so.0,这个文件是从该文件夹链接的64位libg2c.so.0.0.0,将这个软链接改为链接到/usr/lib32/libg2c.so.0.0.0即可。后续如果不需要了,记得把软链接改回来。运行nostar时需要在/home下新建Group/Project文件夹,然后在启动nostar时输入Group名和Project名。

Nautilus

从framagit上下载Nautilus。国内的网似乎不好连接到framagit上,如果不好用VPN的话,可以用这样的办法:使用clone with SSH,在命令行里git clone git@framagit.org:...。这时会报错,需要你有一个SSH密钥并添加到framagit。首先ls -la ~/.ssh/,应该有文件叫id_rsa或者id_rsa.pub。如果没有的话,需要生成一个新的:

ssh-keygen -t rsa -b 4096 -C "your_email@email.com"

引号里填你的邮箱,可以不设置密码。cat ~/.ssh/id_rsa.pub然后把所有的内容复制(包括最后的邮箱),在framagit里点头像,然后选择SSH Keys,新建一个key然后把复制的内容粘贴进去,保存。之后便可以git clone。
Nautilus现在需要netcdf进行模型输出,需要下载相关的包,可能包括netcdf-dev, netcdf-doc, libnetcdf-dev, libnetcdff-dev, netcdf-bin,都sudo apt install下载下来。
Nautilus需要最新的gfortran来编译,如果Ubuntu系统没到最新版本的话,下载不到最新版的gfortran。解决办法是在cmake -G Ninja时加上一段-DCMAKE_Fortran_FLAGS=-ffree-line-length-0即可编译成功。