LoginSignup
2
5

More than 5 years have passed since last update.

数値解析用環境2019

Posted at

はじめに

これまでは、ubuntuをVirtualBox上で動かしていましたが、Windows Subsystem for Linux (WSL)が成熟してきたこともあり、こちらに移行しました。

これまでの環境構築については、以下を参照してください。

構築環境

  • Windows 10
  • WSL
  • Ubuntu 18.04 (on WSL)
  • Python3 (numpy, scipy, pandas and so on)
  • R (Knitr, tidyverse, Rstudio)
  • Julia
  • Jupyter notebook (Python3, R and Julia kernel)
  • Latex (luatex, xetex)
  • Visual Studio Code
  • mono, dotnet SDK, F#
  • QGIS
  • Elixir

構築の仕方

基本的な方針

Jupyter notebook はUbuntuのパッケージをそのまま使いますが、Python3の動作環境はAnaconda / Miniconda で構築することにします。また、R、Juliaも最新のものを使います。

Ubuntuのセットアップ

Microsoft Storeから適切にUbuntu 18.04を導入してください。

Cドライブをマウントしなおします。

sudo umount /mnt/c
sudo mount -t drvfs C: /mnt/c -o metadata
cat << EOS | sudo tee /etc/wsl.conf
[automount]
options = "metadata"
[network]
EOS

不要なパッケージを削除します。

sudo apt purge snapd lxd lxcfs cloud-initramfs-dyn-netconf cloud-initramfs-copymods cloud-init hdparm
sudo apt purge mdadm open-iscsi acpid avahi-daemon libavahi-core7 libdaemon0 ntfs-3g
sudo apt purge btrfs-progs btrfs-tools lxd-client cloud-guest-utils
sudo apt purge e2fsprogs libext2fs2 ureadahead zerofree irqbalance
sudo apt purge libusb-1.0-0 usb-modeswitch usb-modeswitch-data usbutils
sudo apt purge apport cryptsetup overlayroot cryptsetup-bin open-vm-tools lvm2
sudo apt purge plymouth libplymouth4 apport-symptoms python3-apport
sudo apt purge liblvm2app2.2 dmeventd liblvm2cmd2.02 dmsetup libdevmapper-event1.02.1
sudo apt purge parted 

パッケージのインストール

レポジトリの追加

# for R
gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9
gpg -a --export E084DAB9 | sudo apt-key add -
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9
gpg -a --export E298A3A825C0D65DFD57CBB651716619E084DAB9 | sudo apt-key add -
sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/"

sudo apt update
sudo apt upgrade

Ubuntu標準パッケージのインストール

日本語入力はFCITXを利用します。IBUSはうまくいきませんでした。

# install Ubuntu original packages
sudo apt install fcitx-mozc dbus-x11 x11-xserver-utils fontconfig
sudo apt install xfce4-terminal xfce4-notifyd xfce4-statusnotifier-plugin
sudo apt install libasound2 git cmake wget p7zip vim-nox libopenblas-base libopenblas-dev
sudo apt install build-essential gfortran g++ libcurl4-openssl-dev libxml2-dev libssl-dev
sudo apt install python3-jupyter-client python3-jupyter-console python3-jupyter-core
sudo apt install python3-ipywidgets python3-notebook python3-qtconsole python3-widgetsnbextension
sudo apt install jupyter jupyter-core jupyter-qtconsole
sudo apt install default-jdk openjfx ffmpeg mupdf plantuml
sudo apt install texlive-xetex texlive-science texlive-pstricks texlive-luatex texlive-lang-japanese texlive-latex-base texlive-latex-recommended texlive-generic-recommended
sudo apt install fonts-noto-cjk fonts-noto-cjk-extra fonts-noto
sudo apt install dvipng

Microsoft レポジトリの登録とdotnet SDKのインストール

この辺りを参照のこと。

# for mono
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
sudo add-apt-repository "deb https://download.mono-project.com/repo/ubuntu stable-bionic main"

# wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
sudo dpkg -i ./packages-microsoft-prod.deb
sudo apt install dotnet-sdk-2.2 mono-complete fsharp nuget

Erlang Solution レポジトリの登録とElixirのインストール

この辺りを参照のこと

# wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
sudo dpkg -i ./erlang-solutions_1.0_all.deb
sudo apt install elixir esl-erlang

Rstudioのインストール

この辺りを参照のこと
https://www.rstudio.com/products/rstudio/download/

# wget https://download1.rstudio.org/rstudio-xenial-1.1.463-amd64.deb
sudo apt install ./rstudio-xenial-1.1.463-amd64.deb

日本語入力もできるようにしておきます。
https://blog.goo.ne.jp/ikunya/s/RStudio

wget http://ikuya.info/tmp/fcitx-qt5-rstudio-qt542+2.tar.gz
tar xf fcitx-qt5-rstudio-qt542+2.tar.gz
sudo apt install ./fcitx-frontend-qt5-rstudio_1.0.5-1ubuntu1~qt542+2_amd64.deb ./libfcitx-qt5-1-rstudio_1.0.5-1ubuntu1~qt542+2_amd64.deb 

Visual Studio Codeのインストール

このあたりからダウンロード
https://code.visualstudio.com/docs/?dv=linux64_deb

sudo apt install ./code_1.30.1-1545156774_amd64.deb

QGISのレポジトリ登録とインストール

wget -O - https://qgis.org/downloads/qgis-2017.gpg.key | gpg --import
gpg --fingerprint CAEB3DC3BDF7FB45
gpg --export --armor CAEB3DC3BDF7FB45 | sudo apt-key add -
sudo add-apt-repository "deb     https://qgis.org/debian bionic main"
sudo apt install qgis python-qgis qgis-plugin-grass 

フォントの登録と環境をきれいにしておきます。

sudo apt autoremove
sudo apt clean
sudo apt autoclean

sudo ln -s /mnt/c/Windows/Fonts /usr/share/fonts/windows
sudo fc-cache -fv

sudo chown -R `whoami`:`whoami` $HOME

環境の設定

BASHRCの設定

cat << EOS >> $HOME/.bashrc
umask 037
export GTK_IM_MODULE=fcitx 
export QT_IM_MODULE=fcitx  
export XMODIFIERS="@im=fcitx" 
export DefaultIMModule=fcitx 
export LIBGL_ALWAYS_INDIRECT=0 
export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd' 
export DISPLAY=localhost:0.0
EOS
echo '(fcitx-autostart > /dev/null 2>&1 &)' >> $HOME/.bashrc
echo 'if [ -d ~/.local/bin ]; then' >> $HOME/.bashrc
echo '    export PATH=$PATH:~/.local/bin' >> $HOME/.bashrc
echo 'fi' >> $HOME/.bashrc
source $HOME/.bashrc

このあと、FCITX-CONFIGでIMの設定をしておくことが必要です。

VSCodeの拡張機能のインストール

code --install-extension coenraads.bracket-pair-colorizer
code --install-extension dbaeumer.vscode-eslint
code --install-extension oderwat.indent-rainbow
code --install-extension ms-ceintl.vscode-language-pack-ja
code --install-extension davidanson.vscode-markdownlint
code --install-extension pkief.material-icon-theme
code --install-extension ms-python.python
code --install-extension eg2.tslint
code --install-extension robertohuertasm.vscode-icons
code --install-extension redhat.vscode-yaml
code --install-extension jebbs.plantuml
code --install-extension ms-vscode.csharp
code --install-extension ionide.ionide-fsharp

Jupyter notebookの設定

Jupyter Notebookで自動的にwindows側のブラウザを起動できるようにしておきます。

以下の例はfirefoxの場合です。

jupyter notebook --generate-config
cat << EOS >> $HOME/.jupyter/jupyter_notebook_config.py
c.NotebookApp.open_browser = True 
c.NotebookApp.notebook_dir = '$HOME/workspace'
import webbrowser
webbrowser.register('firefox', None, webbrowser.GenericBrowser('/mnt/c/Program Files/Mozilla Firefox/firefox.exe')) 
c.NotebookApp.browser = 'firefox'
EOS
echo "alias jn='jupyter-notebook >/dev/null 2>&1'" >> $HOME/.bashrc

Minicondaのインストール

この辺りからダウンロードです。
https://conda.io/miniconda.html

また、インストール時にはパスを通さないようにしておきます。

## for conda
./Miniconda3-latest-Linux-x86_64.sh
echo 'source $HOME/miniconda3/etc/profile.d/conda.sh' >> $HOME/.bashrc
echo 'CONDA_JL_HOME="$HOME/miniconda3/envs/full/"' >> $HOME/.bashrc 
source $HOME/.bashrc 
source $HOME/miniconda3/etc/profile.d/conda.sh
conda update -n base conda

conda create -n full
conda activate full
conda config --add channels intel --env
conda install -n full -c intel intelpython3_full
ipython kernel install --user --name=conda --display-name=conda

conda deactivate

インストールするのはINTEL版としています。

Rのパッケージのインストール

R -e 'install.packages("tidyverse")' --no-save  --no-restore
R -e 'install.packages("reticulate")' --no-save  --no-restore
R -e 'install.packages("IRkernel")' --no-save  --no-restore
R -e 'IRkernel::installspec()' --no-save  --no-restore

JULIAのインストール

この辺りからダウンロード
https://julialang.org/downloads/

tar zxvf ./julia-1.0.3-linux-x86_64.tar.gz
ln -s $HOME/julia-1.0.3 $HOME/julia
echo 'if [ -d ~/julia/bin ]; then' >> $HOME/.bashrc
echo '    export PATH=$PATH:~/julia/bin' >> $HOME/.bashrc
echo 'fi' >> $HOME/.bashrc
echo 'export CONDA_JL_VERSON="3"' >> $HOME/.bashrc
echo 'export CONDA_JL_HOME="$HOME/miniconda3"' >> $HOME/.bashrc
source $HOME/.bashrc 

julia -E 'using Pkg; Pkg.add("Conda");Pkg.build("Conda")'
julia -E 'ENV["PYTHON"] = "~/miniconda3/bin/python";using Pkg; Pkg.add("IJulia");Pkg.build("IJulia");using IJulia'
julia -E 'ENV["PYTHON"] = "~/miniconda3/bin/python";using Pkg; Pkg.add("PyCall");Pkg.build("PyCall");Pkg.test("PyCall")'
julia -E 'ENV["PYTHON"] = "~/miniconda3/bin/python";using Pkg; Pkg.add("PyPlot");Pkg.build("PyPlot");Pkg.test("PyPlot");'

ここから先は、必要に応じて。

julia -E 'using Pkg; Pkg.add("DataStructures")'
julia -E 'using Pkg; Pkg.add("DataFrames")'
julia -E 'using Pkg; Pkg.add("Distributions")'
julia -E 'using Pkg; Pkg.add("GLM")'
julia -E 'using Pkg; Pkg.add("JuMP")'
julia -E 'using Pkg; Pkg.add("Optim")'
julia -E 'using Pkg; Pkg.add("Gadfly")'
julia -E 'using Pkg; Pkg.add("JSON")'
julia -E 'using Pkg; Pkg.add("HDF5")'
julia -E 'using Pkg; Pkg.add("QuantEcon")'

julia -E 'using Pkg; Pkg.add("DifferentialEquations")'
julia -E 'using Pkg; Pkg.add("QuantumOptics")'
julia -E 'using Pkg; Pkg.add("RDatasets")'
julia -E 'using Pkg; Pkg.add("DynamicalSystems")'

Elixirのセットアップ

## for elixir
git clone https://github.com/pprzetacznik/IElixir.git
cd IElixir
mix deps.get
mix local.rebar --force
PATH=$PATH:$HOME/.mix mix test
PATH=$PATH:$HOME/.mix MIX_ENV=prod mix compile
PATH=$PATH:$HOME/.mix MIX_ENV=prod ./install_script.sh
cd $HOME
echo 'if [ -d ~/.mix ]; then' >> $HOME/.bashrc
echo '    export PATH=$PATH:~/.mix' >> $HOME/.bashrc
echo 'fi' >> $HOME/.bashrc
source $HOME/.bashrc 
2
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
5