在Ubuntu22.04安裝Pulsar軟件包
1.ubuntu 22.04 安裝gcc-7、g+±7(用來編譯后續(xù)軟件)
1.1 添加鏡像:
打開源鏡像文件
sudo vim /etc/apt/sources.list
在最后一行添加如下內(nèi)容:
deb [arch=amd64] http://archive.ubuntu.com/ubuntu focal main universe
進入到vim按i可以進行編輯,編輯好了以后先按ese鍵,然后按:wq保存退出
1.2 更新鏡像
sudo apt-get update
1.3指定版本安裝
sudo apt-get -y install gcc-7 g++-7
2.開始安裝,依次執(zhí)行下面的每一條命令(附命令解釋)
sudo apt-get update --fix-missing
sudo apt-get dist-upgrade
sudo apt install -y autotools-dev autoconf libtool make g++-7 gcc-7 gfortran-7 csh libfftw3-dev pgplot5 libcfitsio-dev
sudo apt-get update --fix-missing
sudo apt install -y automake git python3.10 python3-pip swig
sudo apt-get install libx11-dev libpng-dev libglib2.0-dev
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 70
sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-7 70
sudo ln -s /usr/bin/gfortran-7 /usr/bin/gfortran
這段代碼是一系列Ubuntu命令,用于更新系統(tǒng)、安裝所需軟件包和更新默認編譯器版本。具體而言,它執(zhí)行以下操作:
sudo apt-get update --fix-missing:更新Ubuntu軟件源,如果有丟失的軟件包,則修復它們。
sudo apt-get dist-upgrade:升級已安裝軟件包及其依賴關系到最新版本。
sudo apt install -y autotools-dev autoconf libtool make g+±7 gcc-7 gfortran-7 csh libfftw3-dev pgplot5 libcfitsio-dev:安裝開發(fā)工具和庫,包括GCC編譯器及其Fortran支持、自動化工具、FFTW庫、PGPLOT繪圖庫和CFITSIO庫。
sudo apt install -y automake git python3.10 python3-pip swig:安裝其他工具和庫,包括自動化工具、Git、Python和SWIG。
sudo apt-get install libx11-dev libpng-dev libglib2.0-dev:安裝X11、PNG和GLib庫的開發(fā)文件。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70:將gcc-7設置為默認的C編譯器。
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g+±7 70:將g+±7設置為默認的C++編譯器。
sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-7 70:將gcov-7設置為默認的代碼覆蓋率工具。
sudo ln -s /usr/bin/gfortran-7 /usr/bin/gfortran:創(chuàng)建一個指向gfortran-7的符號鏈接,以便以后可以使用“gfortran”來調(diào)用它。
export PATH=$PATH:$HOME/.local/bin
pip install -i https://mirrors.aliyun.com/pypi/simple/ numpy scipy matplotlib ipython jupyter pandas sympy nose
export curPath=$HOME
export PSRHOME=$curPath/Pulsar
mkdir $PSRHOME
cd $PSRHOME
wget https://www.imcce.fr/content/medias/recherche/equipes/asd/calceph/calceph-3.5.1.tar.gz
tar -xvf calceph-3.5.1.tar.gz
cd $PSRHOME/calceph-3.5.1
./configure --prefix=/usr/local
make -j 8
sudo make install
這段代碼主要是安裝和配置相關的軟件和環(huán)境變量。解釋如下:
export PATH=
P
A
T
H
:
PATH:
PATH:HOME/.local/bin:將 $HOME/.local/bin 目錄添加到
P
A
T
H
環(huán)境變量中,以便能夠在終端中直接執(zhí)行
p
i
p
命令。
p
i
p
i
n
s
t
a
l
l
?
i
h
t
t
p
s
:
/
/
m
i
r
r
o
r
s
.
a
l
i
y
u
n
.
c
o
m
/
p
y
p
i
/
s
i
m
p
l
e
/
n
u
m
p
y
s
c
i
p
y
m
a
t
p
l
o
t
l
i
b
i
p
y
t
h
o
n
j
u
p
y
t
e
r
p
a
n
d
a
s
s
y
m
p
y
n
o
s
e
:使用
p
i
p
安裝
n
u
m
p
y
、
s
c
i
p
y
、
m
a
t
p
l
o
t
l
i
b
、
i
p
y
t
h
o
n
、
j
u
p
y
t
e
r
、
p
a
n
d
a
s
、
s
y
m
p
y
和
n
o
s
e
等
P
y
t
h
o
n
庫。
e
x
p
o
r
t
c
u
r
P
a
t
h
=
PATH 環(huán)境變量中,以便能夠在終端中直接執(zhí)行 pip 命令。 pip install -i https://mirrors.aliyun.com/pypi/simple/ numpy scipy matplotlib ipython jupyter pandas sympy nose:使用 pip 安裝 numpy、scipy、matplotlib、ipython、jupyter、pandas、sympy 和 nose 等 Python 庫。 export curPath=
PATH環(huán)境變量中,以便能夠在終端中直接執(zhí)行pip命令。pipinstall?ihttps://mirrors.aliyun.com/pypi/simple/numpyscipymatplotlibipythonjupyterpandassympynose:使用pip安裝numpy、scipy、matplotlib、ipython、jupyter、pandas、sympy和nose等Python庫。exportcurPath=HOME:將
H
O
M
E
路徑保存在
c
u
r
P
a
t
h
變量中。
e
x
p
o
r
t
P
S
R
H
O
M
E
=
HOME 路徑保存在 curPath 變量中。 export PSRHOME=
HOME路徑保存在curPath變量中。exportPSRHOME=curPath/Pulsar:將 $curPath/Pulsar 目錄保存在 PSRHOME 變量中。
mkdir $PSRHOME:創(chuàng)建 $PSRHOME 目錄。
cd $PSRHOME:進入 $PSRHOME 目錄。
wget https://www.imcce.fr/content/medias/recherche/equipes/asd/calceph/calceph-3.5.1.tar.gz:從指定 URL 下載 calceph-3.5.1.tar.gz 文件。//執(zhí)行這句的時候可能很慢甚至不成功,可能因為這個網(wǎng)站是外網(wǎng),需要重復執(zhí)行直到運行成功
tar -xvf calceph-3.5.1.tar.gz:解壓 calceph-3.5.1.tar.gz 文件。
calceph-3.5.1.tar.gz 是一種天體軌道計算軟件,用于計算天體之間的相對位置和速度。它能夠讀取多種天體軌道文件格式,包括JPL DE系列文件、SPICE文件、INPOP等,并能夠生成各種輸出格式。在天文學研究中,calceph常被用于模擬天體的運動、構建天體軌道模型以及計算天體的位置和速度等。
cd $PSRHOME/calceph-3.5.1:進入 calceph-3.5.1 目錄。
./configure --prefix=/usr/local:運行 configure 腳本,指定安裝目錄為 /usr/local。
make -j 8:編譯源代碼,使用 8 個線程進行編譯。
sudo make install:安裝編譯后的二進制文件。由于需要寫入 /usr/local 目錄,需要使用 sudo 命令以管理員身份運行。
總之,這段代碼的作用是安裝和配置一些必要的軟件和環(huán)境,為后續(xù)的安裝和使用做好準備。
export TEMPO=$PSRHOME/tempo
cd $PSRHOME
git clone https://github.com/nanograv/tempo.git
cd $PSRHOME/tempo
./prepare
./configure --prefix=/usr/local
make -j 8
sudo make install
這部分代碼是下載和安裝TEMPO軟件。TEMPO是一個用于射電脈沖星觀測數(shù)據(jù)處理的軟件包。它包括對觀測數(shù)據(jù)進行建模和擬合的工具,以及計算射電脈沖星的測時模型的工具。以下是代碼的解釋:
export TEMPO=
P
S
R
H
O
M
E
/
t
e
m
p
o
:設置
T
E
M
P
O
的安裝路徑為
PSRHOME/tempo:設置TEMPO的安裝路徑為
PSRHOME/tempo:設置TEMPO的安裝路徑為PSRHOME/tempo。
cd
P
S
R
H
O
M
E
:進入
PSRHOME:進入
PSRHOME:進入PSRHOME目錄。
git clone https://github.com/nanograv/tempo.git:從GitHub上克隆TEMPO的源代碼。//執(zhí)行這句的時候可能很慢甚至不成功,可能因為這個網(wǎng)站是外網(wǎng),需要重復執(zhí)行知道運行成功
cd $PSRHOME/tempo:進入TEMPO的源代碼目錄。
./prepare:準備TEMPO的編譯環(huán)境。
./configure --prefix=/usr/local:配置TEMPO的安裝路徑為/usr/local。
make -j 8:使用8個線程進行編譯。
sudo make install:安裝TEMPO。sudo用于提升用戶權限。
export PATH=$PATH:$PSRHOME/bin
export PGPLOT_DIR=/usr/lib/pgplot5
export PGPLOT_FONT=$PGPLOT_DIR/grfont.dat
export TEMPO2=$PSRHOME/tempo2
export PSRCAT_FILE=$PSRHOME/psrcat/psrcat.db
export PYTHONPATH=$PSRHOME/lib/python3.10/site-packages:$PYTHONPATH
cd $PSRHOME
git clone git://git.code.sf.net/p/psrchive/code psrchive
這段代碼是為了設置環(huán)境變量以及克隆代碼庫psrchive。具體來說:
export PATH=
P
A
T
H
:
PATH:
PATH:PSRHOME/bin: 將 $PSRHOME/bin 目錄添加到系統(tǒng)環(huán)境變量
P
A
T
H
中,以便在終端中直接執(zhí)行
p
s
r
c
h
i
v
e
相關命令。
e
x
p
o
r
t
P
G
P
L
O
T
D
I
R
=
/
u
s
r
/
l
i
b
/
p
g
p
l
o
t
5
:
設置
P
G
P
L
O
T
庫所在的目錄。
e
x
p
o
r
t
P
G
P
L
O
T
F
O
N
T
=
PATH 中,以便在終端中直接執(zhí)行 psrchive 相關命令。 export PGPLOT_DIR=/usr/lib/pgplot5: 設置 PGPLOT 庫所在的目錄。 export PGPLOT_FONT=
PATH中,以便在終端中直接執(zhí)行psrchive相關命令。exportPGPLOTD?IR=/usr/lib/pgplot5:設置PGPLOT庫所在的目錄。exportPGPLOTF?ONT=PGPLOT_DIR/grfont.dat: 設置 PGPLOT 庫所需的字體文件所在的目錄。
export TEMPO2=$PSRHOME/tempo2: 設置 TEMPO2 環(huán)境變量,指向
P
S
R
H
O
M
E
目錄下的
t
e
m
p
o
2
子目錄,以便在使用
p
s
r
c
h
i
v
e
庫時使用其中的工具。
e
x
p
o
r
t
P
S
R
C
A
T
F
I
L
E
=
PSRHOME 目錄下的 tempo2 子目錄,以便在使用 psrchive 庫時使用其中的工具。 export PSRCAT_FILE=
PSRHOME目錄下的tempo2子目錄,以便在使用psrchive庫時使用其中的工具。exportPSRCATF?ILE=PSRHOME/psrcat/psrcat.db: 設置 psrcat 數(shù)據(jù)庫文件所在的目錄。
export PYTHONPATH=
P
S
R
H
O
M
E
/
l
i
b
/
p
y
t
h
o
n
3.10
/
s
i
t
e
?
p
a
c
k
a
g
e
s
:
PSRHOME/lib/python3.10/site-packages:
PSRHOME/lib/python3.10/site?packages:PYTHONPATH: 將 $PSRHOME/lib/python3.10/site-packages 目錄添加到系統(tǒng)環(huán)境變量 $PYTHONPATH 中,以便在使用 psrchive 庫時能夠正確加載其中的 Python 模塊。
cd $PSRHOME: 進入 $PSRHOME 目錄。
git clone git://git.code.sf.net/p/psrchive/code psrchive: 從 git://git.code.sf.net/p/psrchive/code 代碼庫中克隆 psrchive 代碼庫到當前目錄。//執(zhí)行這句的時候可能很慢甚至不成功,可能因為這個網(wǎng)站是外網(wǎng),需要重復執(zhí)行直到運行成功
cd psrchive
./bootstrap
./configure --enable-shared
sudo ./packages/tempo2.csh
sudo ./packages/psrcat.csh
./configure --enable-shared
make
make check
sudo make install
這段代碼是在進入psrchive目錄后,進行編譯和安裝的一系列命令。
./bootstrap 用于生成配置文件和編譯文件,將會根據(jù)環(huán)境檢查是否有所需的軟件包和庫,生成Makefile等文件。
./configure --enable-shared 用于配置環(huán)境,指定需要啟用的選項,如啟用動態(tài)庫,將會生成適合本機的編譯配置。
sudo ./packages/tempo2.csh 運行安裝tempo2的腳本文件,使用sudo以管理員權限運行,將tempo2安裝到系統(tǒng)中。
sudo ./packages/psrcat.csh 運行安裝psrcat的腳本文件,使用sudo以管理員權限運行,將psrcat安裝到系統(tǒng)中。
make 用于編譯代碼,將源代碼編譯成可執(zhí)行文件。
make check 用于對編譯好的代碼進行測試,確保代碼的正確性。
sudo make install 用于將編譯好的代碼安裝到系統(tǒng)中,使得該程序可以在系統(tǒng)的任何地方被調(diào)用。
在這一系列命令執(zhí)行完畢之后,psrchive程序就已經(jīng)被成功編譯和安裝到系統(tǒng)中,可以被調(diào)用使用了。
cd $PSRHOME/src/tempo2
sudo make plugins
sudo make plugins-install
cd $PSRHOME/psrchive
./configure --enable-shared
make
make check
sudo make install
這些命令的作用是:
cd $PSRHOME/src/tempo2: 進入tempo2源代碼目錄
sudo make plugins: 編譯tempo2的插件
sudo make plugins-install: 安裝tempo2的插件
cd $PSRHOME/psrchive: 進入psrchive源代碼目錄
./configure --enable-shared: 配置psrchive,開啟共享庫支持
make: 編譯psrchive
make check: 運行psrchive的測試用例
sudo make install: 安裝psrchive
這些命令的作用是編譯和安裝軟件,其中包括安裝psrchive和tempo2的插件。make check命令運行測試用例,以確保編譯和安裝過程的正確性。
cd $PSRHOME
export CFLAGS=-I$TEMPO2/include
export CXXFLAGS=$CFLAGS
export LDFLAGS=-L$TEMPO2/lib
git clone https://github.com/SixByNine/sigproc.git
cd $PSRHOME/sigproc
export FFF=-ffixed-line-length-none
./bootstrap
./configure --prefix=/usr/local
make -j 8
sudo make install
這段代碼主要是安裝sigproc軟件,具體步驟如下:
進入pulsar目錄:cd
P
S
R
H
O
M
E
設置環(huán)境變量
C
F
L
A
G
S
、
C
X
X
F
L
A
G
S
和
L
D
F
L
A
G
S
分別為
T
E
M
P
O
2
的
i
n
c
l
u
d
e
目錄和
l
i
b
目錄:
e
x
p
o
r
t
C
F
L
A
G
S
=
?
I
PSRHOME 設置環(huán)境變量CFLAGS、CXXFLAGS和LDFLAGS分別為TEMPO2的include目錄和lib目錄:export CFLAGS=-I
PSRHOME設置環(huán)境變量CFLAGS、CXXFLAGS和LDFLAGS分別為TEMPO2的include目錄和lib目錄:exportCFLAGS=?ITEMPO2/include,export CXXFLAGS=
C
F
L
A
G
S
,
e
x
p
o
r
t
L
D
F
L
A
G
S
=
?
L
CFLAGS,export LDFLAGS=-L
CFLAGS,exportLDFLAGS=?LTEMPO2/lib
下載sigproc軟件源代碼:git clone https://github.com/SixByNine/sigproc.git //執(zhí)行這句的時候可能很慢甚至不成功,可能因為這個網(wǎng)站是外網(wǎng),需要重復執(zhí)行直到運行成功
進入sigproc目錄:cd $PSRHOME/sigproc
設置環(huán)境變量FFF:export FFF=-ffixed-line-length-none
運行./bootstrap腳本
運行./configure腳本,指定安裝目錄為/usr/local
運行make命令編譯源代碼
運行sudo make install命令安裝sigproc
export PRESTO=$PSRHOME/presto
export PGPLOT_DIR=/usr/lib/pgplot5
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PRESTO/lib
export PATH=$PATH:$PRESTO/bin
export PYTHONPATH=$PYTHONPATH:$PRESTO/lib/python
cd $PSRHOME
git clone https://github.com/scottransom/presto.git
cd $PRESTO/src
sudo cp $PRESTO/lib/*.* /usr/local/lib
make -j 8
這段代碼是在設置環(huán)境變量和安裝 PRESTO 軟件包。
具體來說:
export PRESTO=$PSRHOME/presto 設置環(huán)境變量 PRESTO 為 $PSRHOME/presto,其中
P
S
R
H
O
M
E
是之前設置的變量,指代
p
u
l
s
a
r
軟件安裝的主目錄。
e
x
p
o
r
t
P
G
P
L
O
T
D
I
R
=
/
u
s
r
/
l
i
b
/
p
g
p
l
o
t
5
設置環(huán)境變量
P
G
P
L
O
T
D
I
R
為
/
u
s
r
/
l
i
b
/
p
g
p
l
o
t
5
,該變量指示
P
R
E
S
T
O
使用的
P
G
P
L
O
T
庫的安裝路徑。
e
x
p
o
r
t
L
D
L
I
B
R
A
R
Y
P
A
T
H
=
PSRHOME 是之前設置的變量,指代 pulsar 軟件安裝的主目錄。 export PGPLOT_DIR=/usr/lib/pgplot5 設置環(huán)境變量 PGPLOT_DIR 為 /usr/lib/pgplot5,該變量指示 PRESTO 使用的 PGPLOT 庫的安裝路徑。 export LD_LIBRARY_PATH=
PSRHOME是之前設置的變量,指代pulsar軟件安裝的主目錄。exportPGPLOTD?IR=/usr/lib/pgplot5設置環(huán)境變量PGPLOTD?IR為/usr/lib/pgplot5,該變量指示PRESTO使用的PGPLOT庫的安裝路徑。exportLDL?IBRARYP?ATH=LD_LIBRARY_PATH:
P
R
E
S
T
O
/
l
i
b
將
P
R
E
S
T
O
/
l
i
b
目錄添加到動態(tài)鏈接庫搜索路徑
L
D
L
I
B
R
A
R
Y
P
A
T
H
中,以便動態(tài)鏈接器能夠在運行
P
R
E
S
T
O
時找到必要的庫。
e
x
p
o
r
t
P
A
T
H
=
PRESTO/lib 將 PRESTO/lib 目錄添加到動態(tài)鏈接庫搜索路徑 LD_LIBRARY_PATH 中,以便動態(tài)鏈接器能夠在運行 PRESTO 時找到必要的庫。 export PATH=
PRESTO/lib將PRESTO/lib目錄添加到動態(tài)鏈接庫搜索路徑LDL?IBRARYP?ATH中,以便動態(tài)鏈接器能夠在運行PRESTO時找到必要的庫。exportPATH=PATH:
P
R
E
S
T
O
/
b
i
n
將
P
R
E
S
T
O
/
b
i
n
目錄添加到環(huán)境變量
P
A
T
H
中,以便在終端中直接運行
P
R
E
S
T
O
中的可執(zhí)行文件。
e
x
p
o
r
t
P
Y
T
H
O
N
P
A
T
H
=
PRESTO/bin 將 PRESTO/bin 目錄添加到環(huán)境變量 PATH 中,以便在終端中直接運行 PRESTO 中的可執(zhí)行文件。 export PYTHONPATH=
PRESTO/bin將PRESTO/bin目錄添加到環(huán)境變量PATH中,以便在終端中直接運行PRESTO中的可執(zhí)行文件。exportPYTHONPATH=PYTHONPATH:$PRESTO/lib/python 將 PRESTO/lib/python 目錄添加到環(huán)境變量 PYTHONPATH 中,以便在 Python 中導入 PRESTO 模塊。
cd $PSRHOME 進入 pulsar 軟件安裝的主目錄。
git clone https://github.com/scottransom/presto.git 從 Github 克隆 PRESTO 代碼。//執(zhí)行這句的時候可能很慢甚至不成功,可能因為這個網(wǎng)站是外網(wǎng),需要重復執(zhí)行直到運行成功
cd $PRESTO/src 進入 PRESTO 源代碼目錄。
sudo cp $PRESTO/lib/. /usr/local/lib 將 PRESTO/lib 目錄下的所有庫文件復制到 /usr/local/lib 目錄中。
make -j 8 編譯 PRESTO。-j 8 指示 make 命令使用 8 個線程來加速編譯。
export DSPSR=$PSRHOME/dspsr
export PATH=${PATH}:$DSPSR/bin
cd $PSRHOME
git clone https://git.code.sf.net/p/dspsr/code dspsr
cd $PSRHOME/dspsr
cp $HOME/backends.list $DSPSR/
./bootstrap
./configure --prefix=/usr/local
make
sudo make install
這段代碼是在設置環(huán)境變量和安裝 PRESTO 軟件包。
具體來說:
export PRESTO=$PSRHOME/presto 設置環(huán)境變量 PRESTO 為 $PSRHOME/presto,其中
P
S
R
H
O
M
E
是之前設置的變量,指代
p
u
l
s
a
r
軟件安裝的主目錄。
e
x
p
o
r
t
P
G
P
L
O
T
D
I
R
=
/
u
s
r
/
l
i
b
/
p
g
p
l
o
t
5
設置環(huán)境變量
P
G
P
L
O
T
D
I
R
為
/
u
s
r
/
l
i
b
/
p
g
p
l
o
t
5
,該變量指示
P
R
E
S
T
O
使用的
P
G
P
L
O
T
庫的安裝路徑。
e
x
p
o
r
t
L
D
L
I
B
R
A
R
Y
P
A
T
H
=
PSRHOME 是之前設置的變量,指代 pulsar 軟件安裝的主目錄。 export PGPLOT_DIR=/usr/lib/pgplot5 設置環(huán)境變量 PGPLOT_DIR 為 /usr/lib/pgplot5,該變量指示 PRESTO 使用的 PGPLOT 庫的安裝路徑。 export LD_LIBRARY_PATH=
PSRHOME是之前設置的變量,指代pulsar軟件安裝的主目錄。exportPGPLOTD?IR=/usr/lib/pgplot5設置環(huán)境變量PGPLOTD?IR為/usr/lib/pgplot5,該變量指示PRESTO使用的PGPLOT庫的安裝路徑。exportLDL?IBRARYP?ATH=LD_LIBRARY_PATH:
P
R
E
S
T
O
/
l
i
b
將
P
R
E
S
T
O
/
l
i
b
目錄添加到動態(tài)鏈接庫搜索路徑
L
D
L
I
B
R
A
R
Y
P
A
T
H
中,以便動態(tài)鏈接器能夠在運行
P
R
E
S
T
O
時找到必要的庫。
e
x
p
o
r
t
P
A
T
H
=
PRESTO/lib 將 PRESTO/lib 目錄添加到動態(tài)鏈接庫搜索路徑 LD_LIBRARY_PATH 中,以便動態(tài)鏈接器能夠在運行 PRESTO 時找到必要的庫。 export PATH=
PRESTO/lib將PRESTO/lib目錄添加到動態(tài)鏈接庫搜索路徑LDL?IBRARYP?ATH中,以便動態(tài)鏈接器能夠在運行PRESTO時找到必要的庫。exportPATH=PATH:
P
R
E
S
T
O
/
b
i
n
將
P
R
E
S
T
O
/
b
i
n
目錄添加到環(huán)境變量
P
A
T
H
中,以便在終端中直接運行
P
R
E
S
T
O
中的可執(zhí)行文件。
e
x
p
o
r
t
P
Y
T
H
O
N
P
A
T
H
=
PRESTO/bin 將 PRESTO/bin 目錄添加到環(huán)境變量 PATH 中,以便在終端中直接運行 PRESTO 中的可執(zhí)行文件。 export PYTHONPATH=
PRESTO/bin將PRESTO/bin目錄添加到環(huán)境變量PATH中,以便在終端中直接運行PRESTO中的可執(zhí)行文件。exportPYTHONPATH=PYTHONPATH:$PRESTO/lib/python 將 PRESTO/lib/python 目錄添加到環(huán)境變量 PYTHONPATH 中,以便在 Python 中導入 PRESTO 模塊。
cd $PSRHOME 進入 pulsar 軟件安裝的主目錄。
git clone https://github.com/scottransom/presto.git 從 Github 克隆 PRESTO 代碼。//執(zhí)行這句的時候可能很慢甚至不成功,可能因為這個網(wǎng)站是外網(wǎng),需要重復執(zhí)行直到運行成功
cd $PRESTO/src 進入 PRESTO 源代碼目錄。
sudo cp $PRESTO/lib/. /usr/local/lib 將 PRESTO/lib 目錄下的所有庫文件復制到 /usr/local/lib 目錄中。
make -j 8 編譯 PRESTO。-j 8 指示 make 命令使用 8 個線程來加速編譯。
3.驗證是否安裝成功
進入Pulsar目錄:
cd Pulsar
運行python環(huán)境:
python3
或者
python
在里面輸入:
import psrchive
如果沒有報錯而且結果如下圖說明安裝成功了:
4.遇到的錯誤
第一次是編譯測試沒通過的錯誤:執(zhí)行到第一次make check報的錯
這個是chatgpt給的回復:
根據(jù)測試結果,test_TextInterface
測試失敗了,因為它的退出狀態(tài)是255。根據(jù)Python unittest模塊的文檔,退出狀態(tài)255通常表示測試執(zhí)行期間出現(xiàn)了錯誤。根據(jù)您提供的代碼,可能的原因是TextInterface
類的To
方法沒有正確實現(xiàn)。
具體來說,這里的測試代碼涉及Value
類、AttributeGet
類和TextInterface
類,Value
類表示一個實數(shù),AttributeGet
類是一個抽象基類,TextInterface
類可以將一個實數(shù)轉換為字符串。在這個測試用例中,我們先創(chuàng)建一個Value
對象,然后創(chuàng)建一個AttributeGet
對象,將其值設置為Value
對象的值,最后創(chuàng)建一個TextInterface
對象并調(diào)用其To
方法,將AttributeGet
對象的值轉換為字符串并返回。然后我們檢查返回的字符串是否符合預期。
根據(jù)您提供的代碼,問題可能出現(xiàn)在TextInterface
類的To
方法中。具體來說,這個方法的實現(xiàn)似乎只是簡單地返回輸入值的字符串表示,并沒有進行任何格式化。因此,如果AttributeGet
對象的值是3.456,那么To
方法將返回字符串"3.456"。但是,測試代碼預期的結果是"3.46",這是因為它使用了Python的round
函數(shù)將值舍入到兩位小數(shù)。由于To
方法沒有進行任何舍入,因此測試失敗。
所以我覺得這個錯誤很可能是由于精度取舍問題導致的。
然后我點進去圖片里這個Util/untils/test-suite.log看,它叫我把這個錯誤報告發(fā)送到開發(fā)者那里去,然后我抱著試試的心態(tài)給大佬發(fā)了郵件,想不到他居然回復了。
大佬說他已經(jīng)修復了這個錯誤,叫我再試試。我就把Pulsar文件夾刪了重新從第一步開始執(zhí)行,結果這次在make check的前一步在make就出錯了:
然后又給大佬發(fā)了郵件,他給我的回復如下:
我翻譯了一下他的意思大概是:
這些字符串錯誤相當深地隱藏在一些相對晦澀的C++模板代碼中。我在上次提交代碼時粗心大意,沒有嘗試重新編譯psrchive源代碼的全部內(nèi)容。也就是說,我可以輕松地重現(xiàn)你報告的新錯誤。
我已經(jīng)修復了這個新的錯誤,并已成功重新編譯了所有內(nèi)容。
你能否在你那邊再試一次?
從大佬的回復中可以看出這次的錯誤主要是因為他提交代碼時粗心不小心導致的,所以我又把Pulsar文件夾刪了重新來了一遍,這次除了有時候因為網(wǎng)絡問題而導致的中斷其他都很順利的執(zhí)行到了最后一步。文章來源:http://www.zghlxwxcb.cn/news/detail-731378.html
5.總結
這個軟件我大概安裝了兩周多,嘗試了大概有10多次了,主要花費的時間還是中間的執(zhí)行步驟有些很慢,還有最崩潰的是網(wǎng)絡問題,因為那些命令涉及到的網(wǎng)站基本都是外網(wǎng)所以有時候下載的很慢很慢(很難想象都5G時代了,下載東西的速度還會到幾kb/s),但是有些時候也還是挺快的,這我到現(xiàn)在也沒弄清楚到底是為什么。還有就是在此表示一下對大佬由衷的感謝,我只是抱著試試的心態(tài)發(fā)給他的郵件,形式也很隨意,雖然第一封郵件是隔了好幾天才回復我,但是能和大佬有一次交流的機會我覺得已經(jīng)很開心了,要是沒有他的幫助我覺得可能到現(xiàn)在都解決不了那個問題,我覺得這才是一個真正科學家應該具備的精神,無論對方是誰都可以交流討論。反觀國內(nèi)的情況,對于好多論文中的問題,按照他留那個聯(lián)系方式發(fā)郵件給他大概率是收不到回復的(反正我目前發(fā)過兩次,已經(jīng)幾個月了都沒有回復)。希望這篇文章對研究射頻干擾的同行們有些幫助吧,我自己也才是個研一的學生,剛開始這個領域,有問題歡迎大家隨時交流討論。文章來源地址http://www.zghlxwxcb.cn/news/detail-731378.html
到了這里,關于在Ubuntu22.04里安裝脈沖星信號處理工具----Pulsar軟件包的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!