condaで環境構築・Linuxの場合

% bash ~/Miniconda2-latest-Linux-x86_64.sh -b -p $HOME/.miniconda2
% ln -s $HOME/.miniconda2 $HOME/.miniconda
% conda create --name myenv
% source activate myenv

環境設定はここに書く:

cd $CONDA_PREFIX
mkdir -p ./etc/conda/activate.d
mkdir -p ./etc/conda/deactivate.d
touch ./etc/conda/activate.d/env_vars.sh
touch ./etc/conda/deactivate.d/env_vars.sh

Bash completionをzshで使いたい場合は、$CONDA_PREFIX/etc/conda/activate.d/env_vars.shに以下の行を加える。

autoload bashcompinit
bashcompinit

コンパイラもcondaで入れたいなら、

% conda install gcc_linux-64 gxx_linux-64 gfortran_linux-64

$CONDA_PREFIX/etc/conda/activate.d以下にactivate-gcc_linux-64.shなどのbashスクリプトが入る。それが環境変数CCなどを設定する。gccといった実行可能バイナリもしくはそのリンクは作られないので、このbashスクリプトが重要。zshではbashスクリプトを適当な場所に移動して、以下のようにエミュレートして読み込むようにする。

emulate sh -c 'source $CONDA_PREFIX/etc/conda/activate.d/bash/activate-binutils_linux-64.sh'
emulate sh -c 'source $CONDA_PREFIX/etc/conda/activate.d/bash/activate-gcc_linux-64.sh'
emulate sh -c 'source $CONDA_PREFIX/etc/conda/activate.d/bash/activate-gxx_linux-64.sh'
emulate sh -c 'source $CONDA_PREFIX/etc/conda/activate.d/bash/activate-gfortran_linux-64.sh'

プロンプトのホスト名がx86_64-conda_cos6-linux-gnuになるので、元に戻すために以下の行を$CONDA_PREFIX/etc/conda/activate.d/env_vars.sh$CONDA_PREFIX/etc/conda/deactivate.d/env_vars.shに追加。

export HOST=`hostname`

まとめると(zsh)

autoload bashcompinit
bashcompinit

if (( ${+LD_LIBRARY_PATH} )); then
  export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH
else
  export LD_LIBRARY_PATH=$CONDA_PREFIX/lib
fi
if (( ${+C_INCLUDE_PATH} )); then
  export C_INCLUDE_PATH=$CONDA_PREFIX/include:$C_INCLUDE_PATH
else
  export C_INCLUDE_PATH=$CONDA_PREFIX/include
fi
if (( ${+LIBRARY_PATH} )); then
  export LIBRARY_PATH=$CONDA_PREFIX/lib:$LIBRARY_PATH
else
  export LIBRARY_PATH=$CONDA_PREFIX/lib
fi

emulate sh -c 'source $CONDA_PREFIX/etc/conda/activate.d/bash/activate-binutils_linux-64.sh'
emulate sh -c 'source $CONDA_PREFIX/etc/conda/activate.d/bash/activate-gcc_linux-64.sh'
emulate sh -c 'source $CONDA_PREFIX/etc/conda/activate.d/bash/activate-gxx_linux-64.sh'

export HOST=`hostname`

他に、cmake, eigen, boost, openblasもcondaで入る。openblasはconda-forgeから入れると良い。

condaで環境構築・Macの場合

gcc, gxxの代わりにそれぞれclang, clang++を使うことになる。fortranは共にgfortran。以下参照。

% conda install clang_osx-64 clangxx_osx-64 gfortran_osx-64 llvm-openmp

OpenMPを使う場合はllvm-openmpが必要。

$CONDA_PREFIX/etc/conda/activate.d/env_vars.shの設定をまとめると、

autoload bashcompinit
bashcompinit

export PATH=$CONDA_PREFIX/bin:/Users/togo/code/rtags/bin:$PATH
if [[ -v LD_LIBRARY_PATH ]]; then
  export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH
else
  export LD_LIBRARY_PATH=$CONDA_PREFIX/lib
fi
if [[ -v C_INCLUDE_PATH ]]; then
  export C_INCLUDE_PATH=$CONDA_PREFIX/include:$C_INCLUDE_PATH
else
  export C_INCLUDE_PATH=$CONDA_PREFIX/include
fi
if [[ -v LIBRARY_PATH ]]; then
  export LIBRARY_PATH=$CONDA_PREFIX/lib:$LIBRARY_PATH
else
  export LIBRARY_PATH=$CONDA_PREFIX/lib
fi

emulate sh -c 'source $CONDA_PREFIX/etc/conda/activate.d/bash/activate-gfortran_osx-64.sh'
emulate sh -c 'source $CONDA_PREFIX/etc/conda/activate.d/bash/activate_clangxx_osx-64.sh'
emulate sh -c 'source $CONDA_PREFIX/etc/conda/activate.d/bash/activate_clang_osx-64.sh'
export HOST=`hostname`