天天看點

CentOS 7 安裝天文學工具presto

2020/12/04 更新

似乎是某個計算機競賽?好多人問我相關軟體安裝的問題。

以下為正解:

随着脈沖星天⽂社群的發展,許多的個⼈和研究⼩組開發了各種⽤途的免費軟體。在叢集上安裝這些需要的軟體往往需要耗費相當多的時間。即使是已經熟練安裝過數遍這些軟體,1-2天的安裝時間仍然是需要的。并且在安裝過程中,會由于叢集的環境不同缺失某些必須的依賴。此時需要通過管理者進⾏依賴的安裝。這樣⼤⼤的增加了軟體安裝的耗時。為了能夠快速的在不同的系統和叢集中快速部署相關軟體進⾏資料處理,虛拟機或者容器技術在這個時候就派上了⽤場。資源消耗⽅⾯,容器能夠在相同的cpu和存儲下啟動的更多更快。并且在安全性⽅⾯,我們并不需要使⽤虛拟機将我們的虛拟環境和主控端完全隔離。是以我們可以選擇使⽤容器作為計算環境的承載。其中docker是⼴為⼤家所熟知的docker容器⼚商推出的容器技術。

此處是我的相關dockerfile的github連結,大家可以參考和使用。當然如果使用覺得不錯,也肯請大家給一個star。😃

https://github.com/Miao-cc/dockerHub.git

另外附上一個參考連結

http://ljtwebdevelopment.com/pulsarref/

寫在前面,本文适合PRESTO 2.x系列的版本。最新版本為3.x系列。具體差異在最後的python子產品安裝部分。

今天師兄讓我自己摸索學習安裝presto,然後我就跑過去自己摸索了。發現安裝時碰見很多問題,是以決定寫下來。

我的筆記本由于重新裝過一次系統,然後被我給格了,是以虛拟機我也沒拷下來,于是重新下了CentOS 7重新搞一個Linux環境。

OS的ISO檔案下載下傳位址:http://mirrors.sina.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Everything-1511.iso(下載下傳最小安裝包的話可能環境會比較難搞,這邊是完整版)。下載下傳完成之後就是虛拟機安裝了,此處安裝選項最好是Development and Creative Workstation,我是全部都勾選了

安裝完虛拟機之後需要先大概安裝一下後面需要的東西。在終端​使用yum安裝,輸入:yum groupinstall ‘Development tools’,接着在/home/m下建立astrosoft。

su​do yum groupinstall "Development Tools"

yum install libpng12-devel

mkdir /home/m/astrosoft

下面是下載下傳presto

presto的官方網站:http://www.cv.nrao.edu/~sransom/presto/

cd /home/m/astrosoft

exit

cd /home/m/astrostud​ ​

git clone git://github.com/scottransom/presto.git

在presto目錄下的INSTALL是安裝教程,下面的步驟就是按照教程進行的。​

1 安裝FFTW3.X

FFTW3.X官方網站:http://www.fftw.org/​​。

wget www.fftw.org/fftw-3.3.5.tar.gz

tar -zxvf fftw-3.3.5.tar.gz

cd fftw-3.3.5

./configure --enable-shared --enable-single --prefix=/home/m/astrosoft/fftw

make

make install

#####fftw3安裝還沒寫,這樣也可以用

2 安裝PGPLOT

PGPLOT位址:http://www.astro.caltech.edu/~tjp/pgplot/

下載下傳位址:ftp://ftp.astro.caltech.edu/pub/pgplot/pgplot5.2.tar.gz

cd /home/m/Download

wget ftp://ftp.astro.caltech.edu/pub/pgplot/pgplot5.2.tar.gz

tar -zxvf pgplot5.2.tar.gz

mkdir /home/m/astrosoft/pgplot

cd /home/m/astrosoft/pgplot

cp /home/m/Download/pgplot/drivers.list .

vi drivers.list

此處根據自己的需求修改drivers.list添加裝置。此處presto要求必選裝置有PS和X-windows裝置,另外還可以加上VPS、CPS和VCPS裝置。

/home/m/astrosoft/new/pgplot/makemake /home/m/astrosoft/new/pgplot linux g77_gcc

之後檔案夾會出現

drivers.list grexec.f grpckg1.inc makefile pgplot.inc rgb.txt

這幾個檔案夾,接着修改makefile檔案,将其中的

FCOMPL=g77

修改為

FCOMPL=gfortran

此時直接make還是會出現錯誤的,因為我們并沒有安裝X11。下面先安裝X11,此時需要管理者權限配置系統

sudo yum install libX11-devel

make

make cpg

這時pgplot就可以算是安裝完成了,但是需要注意的是我們還沒有将pgplot添加到PATH中去。

3 安裝Tempo

Tempo下載下傳位址: http://tempo.sourceforge.net/

cd /home/m/Download

git clone git://git.code.sf.net/p/tempo/tempo

cp -r /home/m/tempo /home/m/psrsoft/tempo

cd /home/m/astrosoft/tempo

./prepare

./configure --prefix=/home/m/astrosoft/tempo

make

make install

至此tempo是安裝完成了。

4 安裝GLIB(v2.X)

可以通過yum安裝

yum install glib2-devel

5 安裝CFITSIO

CFITSIO的下載下傳位址是: http://heasarc.gsfc.nasa.gov/fitsio/

然後下載下傳unix的版本。

cd /home/m/Download

tar -zxvf cfitsio3390.tar.gz

cd cfitsio

mkdir /home/m/astrosoft/cfitsio

./configure --prefix=/home/m/astrosoft/cfitsio

make

make install

至此安裝tempo之前的各種軟體就已經安裝完成了。

6 部署各種環境等

Environment variables!

– Is PRESTO set to the top-level PRESTO source directory?

– Is TEMPO set to the top-level TEMPO source directory?

– Is PGPLOT_DIR set to the location of the PGPLOT utility files?

(Note: On Ubuntu, that should be /usr/lib/pgplot5)

– Is $PRESTO/bin in your PATH?

– Is $PRESTO/lib in your LD_LIBRARY_PATH?

– Is $PRESTO/lib/python in your PYTHONPATH

下面我們就來一一設定。

這一步需要先完成。

vi /home/m/.bash_profile

加入以下幾行:

PATH=$PATH:$HOME/bin:/home/m/astrosoft/presto/bin:/home/m/astrosoft/pgplot/bin:/home/m/astrosoft/presto/bin:/nfshome/mcc/pfits:/home/m/astrosoft/optimus:/home/m/astrosoft/fv:/home/m/astrosoft/psrcat_tar:/home/m/astrosoft/tempo/src/
LD_LIBRARY_PATH=/home/m/astrosoft/presto/lib:/home/m/astrosoft/pgplot:/home/m/astrosoft/fftw3/lib:/home/m/astrosoft/cfitsio/lib
C_INCLUDE_PATH=/home/m/astrosoft/presto/include:/home/m/astrosoft/cfitsio/include
PKG_CONFIG_PATH=/home/m/astrosoft/cfitsio/lib/pkgconfig:/home/m/astrosoft/fftw3/lib/pkgconfig
PYTHONPATH=/home/m/astrosoft/presto/lib/python
PGPLOT_DIR=/home/m/astrosoft/pgplot
PGPLOT_FONT=/home/m/astrosoft/pgplot/grfont.dat
PGPLOT_DEV=/xwine
PGPLOT_LIB="-L /usr/X11R6/lib -lX11 -L /home/m/astrosoft/pgplot -lpgplot"
PRESTO=/home/m/astrosoft/presto
TEMPO=/home/m/astrosoft/tempo
PSRCAT_FILE=/home/m/astrosoft/psrcat_tar/psrcat.db

export PATH
export LD_LIBRARY_PATH
export C_INCLUDE_PATH
export PKG_CONFIG_PATH
export PYTHONPATH
export PGPLOT_DIR
export PGPLOT_FONT
export PGPLOT_DEV
export PGPLOT_LIB
export PRESTO
export TEMPO
export PSRCAT_FILE
           

然後儲存退出,輸入:

source .bash_profile

大體上的設定就結束了。假如在下面的步驟中出現錯誤,最好将presto檔案删除,然後使用者登出一下再重新進行下面的步驟。

7 presto安裝step1

上面的步驟進行完成之後就需要進入presto的檔案夾中進行操作了。将presto檔案夾放入

/home/m/astrosoft

中,然後進入

/presto/src

中,輸入:

sudo make makewisdom

這一步需要寫入權限

這一步會花費很長時間,可以上個網休息一下。

8 presto安裝step2

在上面一步結束之後,我們需要再輸入:

make prep

9 presto安裝step3

在上面兩步都結束之後,就直接輸入:

make

,這樣在/src裡面的操作就徹底完成了。

假如出現如下報錯:

error while loading shared libraries: libsla.so: cannot open shared object file: No such file or directory

或者隻是presto的python路徑等沒有設定好

則在/usr/lib下應該存在

libsla.so

這個檔案,這是如果共享庫檔案安裝到了/lib或/usr/lib目錄下, 需執行一下ldconfig指令。

ldconfig指令的用途, 主要是在預設搜尋目錄(/lib和/usr/lib)以及動态庫配置檔案/etc/ld.so.conf内所列的目錄下, 搜尋出可共享的動态連結庫(格式如lib*.so*), 進而建立出動态裝入程式(ld.so)所需的連接配接和緩存檔案. 緩存檔案預設為/etc/ld.so.cache, 此檔案儲存已排好序的動态連結庫名字清單.

是以假如出現了這個報錯,則運作如下指令并且重新進行這一步

sudo ldconfig
sudo make
           

10 presto安裝step4

這一步需要确定python版本以及安裝numpy和scipy。這一步我也不是很清楚,但是系統是自帶python2.7版本的。

cd進入presto/python檔案夾1

在進行這一步的時候需要注意,在presto的目錄下搜尋:

find -name "ppgplot*"

假如這個ppgplot在

/home/m/astrosoft/presto/lib/python

下,并且此路徑已經被添加到PYTHONPATH中,則進行下一步應該不會出現ppgplot子產品找不到,但是對于最近的presto,貌似對這個進行了更新,出現了

/home/m/astrosoft/presto/lib/python

/home/m/astrosoft/presto/lib64/python

兩個路徑,并且新版将ppgplot放置在lib64下,此時需要将

/home/m/astrosoft/presto/lib64/python

這個路徑添加到PYTHONPATH下,并且重新source 一次環境變量,此時應該就不會出現ppgplot子產品找不到。

vi setup.py

Note: you might need to add “gfortran” to the following list if

you see errors relating to missing “g” functions…

這時需要下面一步,不然就可以直接

make

ppgplot_libraries = ["cpgplot", "pgplot", "X11", "png", "m"]

改為

ppgplot_libraries = ["gfortran" , "cpgplot", "pgplot", "X11", "png", "m"]

cd /home/m/astrosoft/presto/python

make

這裡需要注意,在根據INSTALL檔案安裝時,可能在

make

步驟之後還會有有一個

make fftfit

。這個時候需要看一下Makefile檔案的build那下面的最後一行有沒有這一行:

python fftfit_src/test_fftfit.py

。假如有這一行,就不需要

make fftfit

這一步了。可能看到此文章時他們已經修改了INSTALL檔案。總之隻要知道這一步和這一行是重複的就可以了。

11 end

假如你能看到這一步,我就可以恭喜你了,你已經完成了整個的安裝過程了。下面你就可以去尋找脈沖星了。

#Go find pulsars!

可以從官網找到教程ppt

網址http://www.cv.nrao.edu/~sransom/PRESTO_search_tutorial.pdf

可以使用其中資料進行測試。

繼續閱讀