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`