blog

WSL+OCaml開発環境のWindowsインストール

Windows上で様々なOCaml開発環境を試した後、私は最終的にWSLソリューションを選びました。 ここで、今後の参考のために簡単にメモしておきます。 実は、最初はCentOSをインストールするつも...

Mar 14, 2020 · 4 min. read
Share this

Windows上で様々なOCaml開発環境ソリューションを試した後、最終的にWSLソリューションを選びました。

今後の参考のために簡単なメモです。

WSLを有効にします。

コントロールパネル] - [プログラムと機能] - [Windows の機能の有効化または無効化] - [Linux 用Windows Subsystem for Linux" - "OK" をクリックします。

Fedora システムイメージのダウンロード

実は、最初はCentOSをインストールするつもりだったのですが、インストールしてみると、このシステムには多くの問題があることがわかりました。システム全体が非常に固まりやすく、反応が鈍く、基本的にまったく使えません。

その後、死に物狂いでFedoraを試したところ、驚くほどうまくいきました。

Fedora イメージのダウンロード

チョコのインストール

公式サイトの指示に従って、PowerShellで以下のコマンドを実行します:

$ Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://./.s1'))

LxRunOfflineのインストール

PowerShellで次のコマンドを実行します。

$ choco install lxrunoffline

LxRunOfflineを使ったFedoraのインストール

$ LxRunOffline install -n fedora -d ターゲットパス -f fedora-33-x86_64-20200709.tar.xz
  • -nはインストールされたシステムの名前で、カスタマイズできます;
  • -dはシステムがインストールされているディレクトリです;
  • -f はダウンロードしたイメージのパスです;

Fedoraの起動

開始方法は以下の通り:

  1. LxRunOffline run -n fedora
  2. wsl -d fedora

ユーザーの作成とデフォルトのログインユーザーの変更

WSL Fedora システムにアクセスし、パスワードの変更やユーザーの追加を行うことができます。

$ dnf install passwd
$ passwd # rootパスワードを変更する
$ adduser shixf
$ passwd shixf # 追加したユーザーのパスワードを変更する
$ vi /etc/sudoers
 root ALL=(ALL) ALL
 shixf ALL=(ALL) ALL # 次の行を追加すると、root権限を持つ新しいユーザーが作成される。
$ cat /etc/passwd # 新しいユーザーIDを見てメモしておこう!

PowerShellでのWSLデフォルトユーザーの変更

$ LxRunOffline su -n fedora -v 1000

WSLを再起動すると、新しいユーザーになります。

opam 依存関係の Fedora インストール

$ dnf install diffutils
$ dnf install git
$ dnf install rsync

opamのインストールと初期化

$ dnf install opam
$ opam init --disable-sandboxing # WSLサンボッキングを無効にしなければ、オパムを正しく初期化することはできない。
$ opam install merlin
$ opam install utop
$ opam install batteries

Emacsのインストール

$ dnf install dbus-x11 # WSL現時点で解決策は見つかっていない。
$ dnf install emacs

エックスサーバーのインストール

Emacsを正しく使うためには、WindowsにX Serverをインストールする必要があります。何度も試した結果、Cygwin Xの方が良いことがわかりました。

CygwinのWebサイトにアクセスし、インストーラをダウンロードしてください。 インストールの際、以下の Cygwin/X 関連パッケージにチェックを入れる必要があります:

  • xorg-server
  • xinit
  • xorg-docs
  • xlaunch

インストール後、以下のコマンドで X Server を起動できます。

$ C:\cygwin64\bin\XWin.exe :0 -multiwindow -listen tcp -noprimary

最後のステップは、X Server がローカルで起動したことを WSL に伝えるように WSL を設定することです。そのためには、環境変数 DISPLAY を 127.0.0.1:0 に設定します。ここでは、./bashが毎回自動的に環境変数を設定するようにするためです。

$ echo "export DISPLAY='127.0.0.1:0'" >> ~/.bashrc
$ source ~/.bashrc

Emacsの起動

まずX Serverを起動し、WSLで次のように入力します。


この時点で、すべてが正しく設定されていれば、Emacsのプロセスを別ウィンドウで見ることができ、Emacsの設定はあなたに任されています!

幸運を祈ります!

元の住所

Read next

flutterはiOSネイティブのリスト項目のスワイプ削除ライブラリを模倣する flutter_swipe_action_cell

iOSネイティブのエフェクトを提供するリストスライダーライブラリ Example1: 最も単純な例 - DeleteTip: ListViewの中に次のように記述し、returnを返します。

Mar 13, 2020 · 3 min read