#!/bin/bash
# ============================================================
# 在【能上网的、同版本麒麟V10 Server】机器上运行本脚本
# 作用：下载 GMT 6.1.0 编译所需的全部依赖 RPM（含依赖链）
# 然后把生成的 rpms/ 目录整体拷贝到离线机器
# ============================================================
set -e

# 确认两台机器版本一致（SP1/SP2/SP3 不能混用）
echo "== 本机麒麟版本 =="
nkvers 2>/dev/null || cat /etc/kylin-release
echo "请与离线机器的版本核对一致后再继续"

PKGS="gcc gcc-c++ make cmake netcdf-devel libcurl-devel zlib-devel \
      lapack-devel fftw-devel pcre-devel gdal-devel \
      ghostscript graphicsmagick libgfortran"

mkdir -p rpms && cd rpms

# 安装下载工具
yum install -y yum-utils dnf-plugins-core 2>/dev/null || true

if command -v dnf >/dev/null; then
    # --alldeps: 连同已安装包的依赖一起下载，保证离线机器能装全
    dnf download --resolve --alldeps --destdir=. $PKGS || true
    # gdal-devel 在部分麒麟源里没有，缺了不影响 GMT 编译（只是少GDAL格式支持）
else
    yumdownloader --resolve --destdir=. $PKGS || true
fi

cd ..
echo ""
echo "== 下载完成，共 $(ls rpms/*.rpm 2>/dev/null | wc -l) 个RPM =="
echo "== 请核对以下关键包是否存在 =="
for p in netcdf-devel cmake gcc-c++ libcurl-devel; do
    ls rpms/ | grep -q "^$p" && echo "OK   $p" || echo "缺失 $p  <-- 必须解决！"
done
ls rpms/ | grep -q "^gdal-devel" && echo "OK   gdal-devel" || echo "提示 gdal-devel 缺失(可选，不影响出图)"
echo ""
echo "把 rpms/ 目录与以下文件一起拷到离线机器："
echo "  gmt-6.1.0-src.tar.xz  gshhg-gmt-2.3.7.tar.gz  dcw-gmt-2.1.2.tar.gz  install_gmt6.sh"
