#!/bin/bash # 使用 uname 获取操作系统类型 OS_TYPE=$(uname -s) # 根据操作系统类型安装外部依赖库 case $OS_TYPE in Linux) # 判断是否是基于 Debian 的系统(如 Ubuntu) if [ -f /etc/debian_version ]; then echo "Detected Debian-based system (e.g., Ubuntu)." # 安装 apt 包管理器(如果尚未安装) sudo apt-get update sudo apt-get install -y apt # 使用 apt 安装依赖 sudo apt-get install -y libfftw3-dev libnetcdf-dev gmt libgmt-dev libgsl-dev libncurses-dev # 判断是否是基于 Red Hat 的系统(如 CentOS) elif [ -f /etc/redhat-release ]; then echo "Detected Red Hat-based system (e.g., CentOS)." # 安装 yum 包管理器(CentOS 7)或 dnf 包管理器(CentOS 8 及以上) if command -v yum &> /dev/null; then sudo yum install -y yum sudo yum install -y libfftw3-dev libnetcdf-dev gmt libgmt-dev libgsl-dev libncurses-dev elif command -v dnf &> /dev/null; then sudo dnf install -y dnf sudo dnf install -y libfftw3-dev libnetcdf-dev gmt libgmt-dev libgsl-dev libncurses-dev else echo "Package manager not found. Please check your system configuration." exit 1 fi else echo "Unsupported Linux distribution." exit 1 fi ;; Darwin) echo "Detected macOS." # 安装 Homebrew(如果尚未安装) if ! command -v brew &> /dev/null; then echo "Installing Homebrew..." /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" fi # 使用 Homebrew 安装 gcc brew install fftw3 netcdf gmt gsl ncurses ;; *) echo "Unsupported operating system: $OS_TYPE" exit 1 ;; esac # 0. 拷贝cmake配置文件 sudo mkdir /usr/local/lib/cmake && \ sudo cp -r dep/cmake /usr/local/lib/cmake # 1. 编译安装EEMD sudo mkdir /opt/stow/libeemd && \ mkdir dep/libeemd/build && \ cd dep/libeemd/build && \ cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/stow/libeemd && \ make && make install sudo stow -d /opt/stow -t /usr/local -S libeemd # 2. 编译安装netcdfcxx_legacy sudo mkdir /opt/stow/netcdfcpp && \ mkdir dep/netcdfcxx_legacy/build && \ cd dep/netcdfcxx_legacy/build && \ cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/stow/netcdfcpp && \ make && make install sudo stow -d /opt/stow -t /usr/local -S netcdfcpp # 3. 拷贝partow模版文件 sudo cp -r dep/partow /opt/stow # 4. 编译安装gctl sudo mkdir /opt/stow/gctl && \ mkdir build && \ cd build && \ cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/stow/gctl && \ make && make install sudo stow -d /opt/stow -t /usr/local -S gctl