gctl/install.sh

84 lines
2.9 KiB
Bash
Raw Normal View History

2025-05-10 22:38:33 +08:00
#!/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