Mac(M2芯片)下利用conda同时安装heasoft和tempo2

先说一下为什么要写这篇文章,因为现在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

有问题可以再联系我。

你可能感兴趣的:(macos,conda)