先说一下为什么要写这篇文章,因为现在heasoft最新版本已经支持M1、M2芯片(arm64)了,但是tempo2却只支持Intel芯片(x86),所以对于使用macM1、M2芯片的同学来说很不友好,这里给出一种解决方法:在mac上同时安装miniforge3(arm64)和miniconda3(x86)。并在各自环境下分别安装heasoft和tempo2。
1. 在mac上分别安装miniforge3(arm64)和miniconda3(x86):
首先创建两个终端,第一个终端是在arm64下,另一个是在x86下。
(1)在arm64下安装miniforge3:
打开终端,输入
uname -m
输出为arm64,则表明该终端是在arm64系统下工作。
接着安装miniforge:
curl -L https://github.com/conda-forge/miniforge/releases/download/4.12.0-0/Miniforge3-MacOSX-arm64.sh > Miniforge3-MacOSX-arm64.sh
sh Miniforge3-MacOSX-arm64.sh
然后根据提示进行安装,并且初始化conda。conda在初始化的过程中会在你的.zshrc文件里添加以下内容:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/reitert/miniforge3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/Users/reitert/miniforge3/etc/profile.d/conda.sh" ]; then
. "/Users/reitert/miniforge3/etc/profile.d/conda.sh"
else
export PATH="/Users/reitert/miniforge3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
我们通过vim ~/.start_miniforge3.sh在~目录下创建文本,并把上面的内容复制到start_miniforge3.sh里后保存。
(2)在x86下安装miniconda3:
与上面过程类似,但是我们需要使用rosetta在x86下运行终端,具体操作可参考:
https://www.cnblogs.com/comeoncode/p/16085810.html
上面的链接可以让我们使用rosetta在x86下运行终端,当然为了方便我们也可以在上述链接中的第二步先复制一下终端,然后将复制好的终端重命名为rosetta,并且加入到任务栏中,下次直接打开重命名为rosetta的终端就等于在x86下运行终端。
按上面方法打开终端后,输入
uname -m
输出为x86_64,则确保终端在x86系统下运行,接着安装miniconda:
curl -L https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh > Miniconda3-latest-MacOSX-x86_64.sh
sh Miniconda3-latest-MacOSX-x86_64.sh
然后等初始化后,conda init会再次在你的.zshrc文件里添加以下内容:
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/reitert/miniconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/Users/reitert/miniconda3/etc/profile.d/conda.sh" ]; then
. "/Users/reitert/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/Users/reitert/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
然后我们再次过vim ~/.start_miniconda3.sh在~目录下创建文本,并把上面的内容复制到start_miniconda3.sh里后保存。
(3)最后,我们编辑.zshrc并让以后自动初始化(如果在arm64下运行终端,则自动初始化miniforge3,反之为miniconda3):
# <<<<<< Added by TR 20220405 <<
arch_name="$(uname -m)"
if [ "${arch_name}" = "x86_64" ]; then
echo "Running on Rosetta using miniconda3"
source ~/.start_miniconda3.sh
elif [ "${arch_name}" = "arm64" ]; then
echo "Running on ARM64 using miniforge3"
source ~/.start_miniforge3.sh
else
echo "Unknown architecture: ${arch_name}"
fi
# <<<<<<<< end <<<<<<<
然后就完成了。以上方法和代码均来
https://taylorreiter.github.io/2022-04-05-Managing-multiple-architecture-specific-installations-of-conda-on-apple-M1/
2. 接下来只需要在各自环境下分别安装heasoft和tempo2:
打开终端,在arm64下安装heasoft:
https://heasarc.gsfc.nasa.gov/lheasoft/macos.html
在x86下安装tempo2:
https://blog.csdn.net/m0_55016668/article/details/128049612?spm=1001.2014.3001.5501
有问题可以再联系我。