Windows Subsystem for Linux (WSL)があればOpenCVなどのプログラミングで WindowsとLinuxの良いところ取りができるんじゃないかと思って試してみた. つまり,Visual StudioからLinux側のGDB Serverに接続してデバッグができ, Windows用のXサーバがあればLinux側で実行した結果のグラフィカルな表示はWindows側で行う. この機能を使えば,ライブラリはaptでインストールして,コーディングはVisual Studioを使って, ウィンドウ操作は使い慣れたWindows上でやる. でもファイルやスクリプトの操作は今更覚えたくないコマンドプロンプトじゃなくてLinuxのターミナルで出来るはず.
Ubuntuの開発環境の導入
Ubuntuの開発環境の導入手順は次のとおり.
- WSLの有効化
- Ubuntu 18.04 LTS on WSLの導入
- GDB Serverのインストール
WSLの有効化
WSLの導入方法は2019/5/30現在,ググれば大量に見つかる. わかりやすい記事は例えばここ. ただ一点注意するのは,WSLは2017年秋頃にベータ版から正式版に変わっったので導入方法が少し変わった. ベータ版の時点の解説記事を間違って読まないように.Windows Insider Programがどうこう書いてあれば古い記事と思えばいい.
具体的な導入方法は簡単で,「Windows の機能の有効化または無効化」で「Windows Subsystem for Linux」のチェックをONにするか, PowerShellで以下のコマンドを打つだけらしい.
PS> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Ubuntuの導入
Ubuntuの導入はクソ簡単になってる.Windows StoreでUbuntu 18.04を探してインストールのボタンをクリックするだけ. ただ,これも後々自動化するかもしれないのでコマンドをメモっておく. Ubuntuを起動したら最初だけアカウント名とパスワードを設定しないといけない.
PS> Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -OutFile ~/Ubuntu.appx -UseBasicParsing PS> Add-AppxPackage -Path ~/Ubuntu.appx PS> Ubuntu.exe
GDB Serverの導入
Ubuntuがインストールされてしまえば標準的なパッケージのインストールはaptつかって簡単にできる.
sudo apt update sudo apt install openssh-server build-essential gdb gdbserver zip
SSHサーバの起動
SSHサーバを起動するには設定ファイルをsshd_configをエディタで開き...
sudo nano /etc/ssh/sshd_config
パスワードの設定を許可するために次の行がコメントアウトされていれば,コメント記号を外し...
PasswordAuthentication yes
サーバを起動する.(WSLでこのサーバを自動的に起動する方法が分からない.)
sudo service ssh start
参考
- WSL のシンプルな導入手順(2019年1月版)
https://laboradian.com/simple-way-to-use-wsl-may-2018/ - WindowsとLinuxの架け橋“Windows Subsystem for Linux”
https://forest.watch.impress.co.jp/docs/shseri/win10oct/1160547.html - https://blog.yyyak.com/post/vslinux/
X Serverの導入
Windows用のXサーバをインストールするとWSLでもGUIが利用できる. ここではVcXsrvというサーバをインストールし
VcXsrvの導入
環境変数DISPLAYの設定
echo 'export DISPLAY=localhost:0.0' >> ~/.bashrc source ~/.bashrc
日本語化
sudo apt install fonts-takao
Visual StudioをGDB Serverに接続する
(未完成)参考
- Windows Subsystem for Linux + X Windowを1.024倍くらい使いこなすための方法
https://qiita.com/nishemon/items/bb3aca972404f68bfcd6