---
title: 使用HPCRunner一键安装CDO
description: "待安装CDO应用的节点已挂载配置YUM源。YUM源挂载配置建议使用全量的ISO Everything包。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpcindapp/prtg-osc/topic_0000002465463254.html
sourcePath: /source/zh/kunpenghpcs/hpcindapp/prtg-osc/topic_0000002465463254.html
indexId: a8b46121b949a925fef0e84a13b7a846735158ea643332faf63a9e3aadb7dd2869
---
# 使用HPCRunner一键安装CDO

#### 前置条件

待安装CDO应用的节点已挂载配置YUM源。YUM源挂载配置建议使用全量的ISO Everything包。


#### 安装步骤

1. 使用PuTTY工具，以root用户登录待安装CDO应用的节点。
2. 安装基础依赖包。执行如下命令：
  yum -y install git time zlib zlib-devel gcc gcc-c++ environment-modules python python3 python3-devel python3-libs python3-pip cmake make numactl numactl-devel numactl-libs rpmdevtools wget libtirpc libtirpc-devel unzip flex tar patch glibc-devel rpcbind csh perl-XML-LibXML xorg-x11-xauth curl curl-devel libcurl-devel libxml2-devel

3. 克隆仓库。如已通过手动下载了贾维斯智能助手（HPCRunner），则忽略该步骤，否则执行如下命令：
  git clone https://gitcode.com/openeuler/hpcrunner.git

  回显结果包含如下示例内容，表示HPCRunner克隆成功：

```
Cloning into 'hpcrunner'...
remote: Enumerating objects: 13018, done.
remote: Counting objects: 100% (171/171), done.
remote: Compressing objects: 100% (142/142), done.
remote: Total 13018 (delta 89), reused 57 (delta 23), pack-reused 12847 (from 1)
Receiving objects: 100% (13018/13018), 72.71 MiB | 2.57 MiB/s, done.
Resolving deltas: 100% (6150/6150), done.
```


4. 初始化HPCRunner。执行如下命令：
  cd hpcrunner

  source init.sh

  hpcrunner表示HPCRunner安装目录，可根据实际情况调整。

5. 选择配置文件，执行如下命令：
  ./jarvis -use templates/cdo/1.9.8/cdo.arm.hpckit25.2.0.config

  回显结果包含如下示例内容，表示配置文件选择成功：

```
Switch config file to templates/cdo/1.9.8/cdo.arm.hpckit25.2.0.config
Successfully switched. config file saved in file .meta
```


6. 下载CDO应用源码，执行如下命令：
  ./jarvis -d

  如已提前手动下载CDO应用且已放置到HPCRunner的downloads目录，则示例结果回显如下：

```
FILE cdo-1.9.8.tar.gz already DOWNLOADED
```


  否则，示例结果回显如下：

```
Saving to: ‘/home/hpcrunner/downloads/cdo-1.9.8.tar.gz’
/home/hpcrun 100%[============================================================>]  10.29M   568KB/s    in 19s
2025-10-13 15:26:44 (546 KB/s) - ‘/home/hpcrunner/downloads/cdo-1.9.8.tar.gz’ saved [10793380/10793380]
```


7. 一键配置依赖环境。执行如下命令：
  ./jarvis -dp

  回显结果包含如下示例内容，表示一键配置依赖环境成功：

```
SUCCESSFULLY EXECUTED AT 2025-10-13 08:51:01, CONGRATULATIONS!!!
```


8. 一键进行编译。执行如下命令：
  ./jarvis -b

  回显结果包含如下示例内容，表示一键编译成功：

```
SUCCESSFULLY EXECUTED AT 2025-10-13 08:51:31, CONGRATULATIONS!!!
```


9. 一键进行安装测试，执行如下命令：
  ./jarvis -r

  回显结果包含如下示例内容，表示安装测试成功：

```
Climate Data Operators version 1.9.8 (https://mpimet.mpg.de/cdo)
System: aarch64-unknown-linux-gnu
CXX Compiler: mpicxx -g -O2 -fopenmp
CXX version : unknown
C Compiler: mpicc -g -O2 -fopenmp
C version : unknown
F77 Compiler: mpif90 -g
F77 version : unknown
Features: 502GB 160threads C++17 Fortran DATA PTHREADS OpenMP HDF5 NC4/HDF5
Libraries: HDF5/1.13.0
Filetypes: srv ext ieg grb1 grb2 nc1 nc2 nc4 nc4c nc5
CDI library version : 1.9.8
cgrbex library version : 1.9.4
ecCodes library version : 1.21.0
NetCDF library version : 4.9.3 of Oct 13 2025 08:44:55 $
hdf5 library version : 1.13.0
exse library version : 1.4.1
FILE library version : 1.8.3
total time used: 2s
SUCCESSFULLY EXECUTED AT 2025-10-13 09:02:49, CONGRATULATIONS!!!
```


#### 运行和验证

通过验证源码自带的单元测试用例，确保核心功能模块的正确性和软件安装的完整性。以下是具体的测试步骤：

1. 使用PuTTY工具，以root用户登录已安装CDO应用的节点。
2. 加载环境变量。执行如下命令：
  cd ${JARVIS_ROOT}

  source init.sh

  source env.sh

  ${JARVIS_ROOT} 表示HPCRunner所在目录。

3. 执行如下命令，切换到CDO源码单元测试用例目录。
  cd ${JARVIS_ROOT}/software/apps/cdo-1.9.8/test

4. 编写集成测试脚本。

  a. 打开文件“test_all.sh”。
    vi test_all.sh

  b. 按“i”进入编辑模式，填充如下信息。

```
#!/bin/bash
echo 3 > /proc/sys/vm/drop_caches
rm -f test.log error.log result.log
touch test.log error.log result.log
for i in *.test; do
echo "Testing ${i}..." 2>&1 | tee -a test.log
./${i} > content.log 2>&1
ret=$?
cat content.log >> test.log
if [ "$ret" -ne 0 ] || grep -q "not ok" content.log || grep -q "command not found" content.log || grep -q "error while loading" content.log; then
echo "ERROR: TEST ${i} FAILED." 2>&1 | tee -a error.log
cat content.log >> error.log
else
echo "TEST ${i} PASSED." 2>&1 | tee -a result.log
fi
done
rm -rf content.log
```


  c. 修改完成后，按“Esc”，输入:wq!，按“Enter”保存并退出文件编辑。
5. 执行集成测试脚本。执行如下命令：
  bash test_all.sh

  如遇“ERROR: TEST tsformat.test FAILED.”错误，可参见《故障排除》相关章节。

6. 执行结果验证。

  a. 集成测试脚本的回显结果应类似以下示例：

```
Testing Afterburner.test..
TEST Afterburner.test PASSED.
Testing Arithc.test..
TEST Arithc.test PASSED.
Testing Arith.test..
TEST Arith.test PASSED.
Testing Cat.test..
TEST Cat.test PASSED.
```


  b. 生成的test.log和result.log文件应包含内容，而error.log文件应为空。
  c. result.log文件应包含60行，每行均为“TEST XXX.test PASSED.”样式。
