Windows 10での開発環境(VirtualBox+RLogin+VcXsrv)

はじめに

Macだったら簡単なんです.中身がUNIX(Darwin)だから.

Windowsマシンで,gccやらvim,gitなどのGNUツール,Apache,MySQL,PHPやらRuby,あと,LaTeXやRなどを使用したい人の参考になれば幸いです.

実は,過去にWindowsでのUNIX環境ということで,MSYS2+Vagrantの組み合わせを紹介しました.

MSYS2+VagrantによるWindowsでのUNIX環境

MSYS2には,Cygwin同様,gcc,make,binutils,vim,git,opensslなど利用できて,それそれで良いのですが,Apache,MySQLなどを利用したいわゆるLAMP開発環境については,Windowsネイティブのものを利用するのではなく,Vagrantなどを通して,仮想マシンでのLinux環境を使うのが一番だと,これまで私の経験上そう思います.

Vagrantは,頻繁にOS環境を変えたりする方には良いのですが,ある程度固定的なLinux環境を利用したい場合は,単にVirtualBox一つで良いのです.

また,Vagrantは,VirtualBoxのShare Folder機能を使ったファイル共有が利用できるのですが,このShare Folder機能が遅くて,このディレクトリ上でRailsアプリなんぞ開発したりしたら,scssとかの読み込みにものすごく時間がかかります.rsyncを使う方法も用意されていますが,いちいち同期のことを考えないといけないのは少々面倒臭い.

結局,私がお奨めするのは,

の組み合わせパターンです.

まず,gccやVimやGit,Apache,MySQL,RubyなどはLinux上で利用するので,とりあえず動かないということは無いでしょう.

WindowsとLinuxとのファイル連携については,SCPやSFTPを利用する方法が手っ取り早いですが,いちいちWinSCPなどのツールを使うのは面倒なので,エクスプローラで利用できるように,SambaによるWindowsファイル共有で行います.基本的に,仮想マシンのLinuxにアクセスできるのは,ホストマシン(Windows)だけなので,SambaでWindowsファイル共有を利用してもセキュリティ的に特に問題ありませんし,何よりもVirtualBoxのShare Folder機能より全然アクセスが早いです.

Rとかも,TclTkやらtexinfoやら一緒に入ってしまうR for Windowsではなく,LinuxのRパッケージを利用します.でもって,グラフの表示は,Xサーバ(VcXsrv)を使って行います.

VirtualBoxのホストオンリーネットワークの利用については,前に書いた

CentOSサーバ構築 SSH接続設定

をご参考に.

headlessを利用した仮想マシンの起動とサスペンド

仮想マシンの起動については,これもVirtualBoxを起動して,仮想マシンをON,なんて面倒くさいことを行わずに,VagrantのようにVBoxManageコマンドを使って,ウィンドウ表示させず裏で(headless)で動かします.

つまり,Windowsログオン時に仮想マシン起動,ログオフ時に仮想マシンサスペンドを行うようなバッチファイルを作成します.

start C:¥"Program Files"¥Oracle¥VirtualBox¥VBoxManage startvm "仮想マシン名" --type=headless
start C:¥"Program Files"¥Oracle¥VirtualBox¥VBoxManage controlvm "仮想マシン名" savestate

これらをログオン及びログオフ時に自動で行うために,ローカルグループポリシーに上記バッチファイルを登録しておきます.

  1. スタートボタン」→「ファイル名を指定して実行」→名前: gpedit.msc
  2. ユーザーの構成」>「Windowsの設定」>「スクリプト(ログオン/ログオフ)
  3. ログオンのプロパティ」の「スクリプト」タブにて「追加」をクリック
    「スクリプト名」に上記「startvm.bat」の絶対パスを入力
  4. ログオフのプロパティ」には同様に「suspendvm.bat」を追加登録する.

VcXsrvのRLoginを利用したX11端末機能

RLoginのメニューバー[表示]→[オプション]の「プロトコル
ポートフォワード」のボタンをクリック
X11ポートフォワードを使用する」にチェックを入れて,「新規」のボタンをクリック

  • Listend
    • Local」をオン
    • Host Name: localhost
    • Port: 22
  • Connect
    • Host Name: 192.168.56.XXX(仮想マシンのホストオンリーネット側IPアドレス)
    • Port:22

VcXsrvを起動しておいて,RLoginからLinuxにSSHして,gnome-terminalやxeyesでも起動してみましょう.

SambaによるWindowsファイル共有

yumでSambaパッケージをインストールします.

$ sudo yum install samba

設定ファイル(smb.conf)にて,最低限必要な項目だけ指定します.

$ vi /etc/samba/smb.conf
[global]
dos charset = CP932
display charset = UTF-8
workgroup = WORKGROUP
server string = Samba Server Version %v
# netbios name = HOGE
security = user
passdb backend = tdbsam

[homes]
comment = Home Directories
browseable = no
writable = yes

Sambaが利用できるLinuxユーザアカウントを登録します.

$ sudo pdbedit -a ユーザID

Sambaの自動起動をONにして,サービスを起動させておきます.

$ sudo chkconfig smb on
$ sudo chkconfig nmb on
$ sudo service smb start
$ sudo service nmb start

Windowsのエクスプローラの「ネットワークドライブの割り当て」で,
¥¥192.168.56.XXX¥ユーザ名
で接続する

IPアドレスでの参照が面倒な人は,Windows側のhostsファイルにホスト名を登録しておきましょう.

:
192.168.56.XXX hoge.local
:

Linuxのユーザホームディレクトリにあるファイルが,普通にWindowsからアクセス可能になりましたので,Windows上での好きなテキストエディタ(例えばMIFESなど)で,ファイル編集,プログラムソース作成が可能なります.

あとは,RやらRubyやらApacheやらTeXLiveやら,普通に仮想マシン(Linux)上にインストールしていきます.Windows側には何もインストールする必要はありません.

RLoginからRを起動して,plotコマンドを実行したときのキャプチャーを提示します.

SS

今は,Let’s NoteのWindows 10上でこの環境を動かしています.

広告

One thought on “Windows 10での開発環境(VirtualBox+RLogin+VcXsrv)

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中