gctl/install.sh
2025-05-10 22:38:33 +08:00

84 lines
2.9 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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