意味悲鳴

PythonとかUnityとか.技術ブログでしたが,研究ブログにシフトしました.

WindowsでVagrant使ったC言語実行環境を導入するまでメモ

VisualStudioでC言語の勉強するのもなーんか微妙だなぁと思っていたら、フォロワーさんからVagrant使ってみたらという提案を頂いたので試しに使ってみる。正直「やってみたら動いた!」レベルの記事なのであまり参考にならないと思います。

そもそもVagrantってなんぞって人はこちら。*1

仮想環境構築ツール「Vagrant」で開発環境を仮想マシン上に自動作成する - さくらのナレッジ


作業に入る前に私の環境を。

windows 7 home premium

vagrant 1.7.2
virtualBox 4.3.12(事前にUbuntuを仮想で動かすためにインスコしていたものを使用しています)
Chocolatey 0.9.8.33


それでは早速インストールします。面倒なのでChocolatey経由で必要になるものを一気に済ませてしまいましょう。そもそもChocolateyって何?って人はこちらのページで確認するといいと思います。要するに、Linuxみたいにパッケージ管理をしてくれるものです。詳細は以下のリンクに詳しく書かれているので確認してみてください。


Windowsソフトを管理!パッケージ管理システムChocolateyでインストール、アップデートを簡単にする

ただし、Chocolatey経由でインストールすると、Chocolateyに依存する形になってしまうため注意が必要。わけわかめって方は無理せずググって最新版をダウンロードしたほうが懸命かも知れません。


今回使用するのは以下の3つになるはず。

  1. vagrant(まぁそりゃそうだよね)
  2. VirtualBoxvagrant自体がvirtualBoxを利用しているそうです)
  3. PuTTy(仮想で動かしているOSに対してSSH接続するために利用します。当然別のもの、TeraTermとかを利用していただいても問題ないはずです)


というわけで、とりあえずこいつらをChocolatey経由でインストール。

 choco install vagrant
 choco install virtualbox
 choco install putty 

ホントはなにかファイルに書いておけば一気にインストールできるらしいんですが、そんなに数も多くないので今回は気にしてません。

これらのコマンドを叩いたらOSを再起動してください(そうしないと動かなかった(というか普通にDLしてインスコしても再起動を促されるはず)最後はともかくとして、vagrantvirtualbox自体はそこそこ時間がかかると思いますのでお茶でも飲んでましょう。



ではインストールが終わったとします。ここからはvagrantのコマンドを打っていくことになるわけですが、正直怪しいのでGoogle先生との併用を推奨します。

まずはBoxを追加します。これは仮想マシンのテンプレみたいなもんだそうです。正直ディストリビューションにこだわりがあるわけでもないのですが、ここでは情報量が多そうなUbuntu14.04を選択しました。コマンドプロンプトに以下のコマンドを入力して実行。

vagrant box add ubuntu14.04 https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box

後半のURL部分は下のリンクから自分の使用したいディストリビューションに合わせて適宜選択・変更してください。
また、ここの「ubuntu14.04」というのはBoxの名前なので、おそらく任意で変更可能ですが、後々の事を考えてディストリビューションの名前にしておくほうが無難だと思います。というか、この後この名前を使うのでちゃんと覚えておいてください。(忘れてしまった場合はvagrant box listで確認可能)

A list of base boxes for Vagrant - Vagrantbox.es

で実行すると、

f:id:zyusou:20150218221418j:plain

なんかこんな感じになります。Ubuntu14.04の場合は500MB以上ダウンロードしますから、まぁ時間がかかりますよね。


終わったら次はBoxの初期化を行いましょう。とりあえずディレクトリを作ります。私はCドライブをこれ以上圧迫したくないので、Dドライブ上に作業用ディレクトリを作成しました。(追記:設定ファイルだけだから全然意味がなかった\(^o^)/オワタ。無理してやる必要なさげです。)


Dドライブに移動する - ねもぷらす

コマンドプロンプト全然使ったことなかったから知りませんでした。こんな風にすればCドライブからDドライブに移動できるそうです。

C:> D:
D:>

ということで、任意のディレクトリで初期化を行います。

vagrant init ubuntu14.04


f:id:zyusou:20150218223229p:plain

このコマンドを実行したディレクトリを見るとこんな感じにVagrantfileというものができています。これを編集してSSH接続できるようにする必要があるそうです。というわけで、何かしらのテキストエディタで開きます。私はサクラエディタで開きました。

f:id:zyusou:20150218223625p:plain

開くとこんな感じで英文とかがずらっと並んでいるんですが、この内の下の方にある矢印で示された「#」を消してコメントアウトしないようにします。これでここに載っているIPアドレスSSH接続できるらしいです。



ここまで来たらあとは仮想マシンの電源をオンにしてSSH接続すればいいだけ!起動コマンドは実に単純。

vagrant up

そうするとまたちょっと時間がかかった後に仮想マシンが起動してくれて、もう一度コマンド入力待機状態になります。なんか不安なので起動出来てるか確認しましょう。状態の確認には以下のコマンドを入力します。

vagrant status

するとこんな感じ。

f:id:zyusou:20150218230039p:plain


これで起動している事がわかりました。やったね。


ではここからはPuTTyを使ってSSH接続をしてみます。Chocolateyで既にインストールは済んでいるので起動します。どっから起動すんねんって話ですが、普通に「プログラムとファイルの検索」にputtyと入力すれば出てきます。面倒な人はここでショートカットを作成しておくといいでしょう。

f:id:zyusou:20150218230602p:plain

さっき仮想マシンを起動した時に、しれっとIPアドレスやポート番号が出ているので、これらを入力します。おそらくこんな感じのはず。

IPアドレス127.0.0.1
ポート番号:2222

この状態でOpenをクリックすると、ユーザ名とパスワードを求められます。これらは両方共「vagrant」でログインできました。

そうするとこんな感じになりまーす。

f:id:zyusou:20150218231241p:plain

フォントが残念すぎてアレなんですが、とりあえずvagrantで起動したUbuntuに接続できました。お疲れ様でした。


あとはapt-get使って適当にgccなりVimなり導入すれば大丈夫のはず。とおもってコマンド叩いたらインストールされていたのでそのままHello,Worldを実行。

f:id:zyusou:20150218231746p:plain

これで一応C言語の実行環境も整いました。



最後に起動していた仮想マシンを終了します。以下のコマンドを実行してください。

vagrant halt

これで終了できました。不安な人はさっきみたいにvagrant statusで確認してみてください。



とりあえずこれで実行環境が整ったので、C言語の勉強に入れそうです。想像していた以上にVagrantが便利でびっくり。プログラミングの勉強するんだったら、VirtualBoxでいちいち仮想デスクトップまで起動しないでこっちでやったほうがいいですね。

で、以降の流れとしては、やっぱり猛烈に見づらいPuTTyを改善することからはじめようかなぁと。フォントとカラースキーマ買えるだけでもだいぶマシになるでしょうから。


PuTTY へsolarized導入 - momota.txt


私のお好みPC設定 @ ウィキ - アプリケーションの設定と使い方 - PuTTY

この辺を参考にそのうち編集します。

それと、とりあえずRubyをインストールしようとしたらなんか出来なかったんですよね。その割にupgradeとかupdateとか動いてるし。どうやらインターネットに接続するのに別途いろいろやることがあるみたいです。


Vagrantのネットワークがつながらない問題 - k-mats' memo

このあたりもそのうち参考にしてイジってみようかな。


アルゴリズムクイックリファレンス

アルゴリズムクイックリファレンス

新・明解C言語によるアルゴリズムとデータ構造

新・明解C言語によるアルゴリズムとデータ構造

ちなみに今回C言語の実行環境を導入した経緯についてですが、もう単純に院試に向けてです。っていうか、その前段階としてCに慣れておかないと私死んでしまう。ポインタ大っ嫌いだし。初心者レベルとは言え、概要がわかっていてもすぐにコードが頭に出てくるとも思えないので、ね。

幸い春休み高齢の図書館貸出争奪戦にはなんとか勝利して上記したような本は借りられたので、読みながらじっくりお勉強したいと思います。がんばるぞい。

*1:ここにも導入方法は載ってるんだけどLinux(CentOS?)だから今回は使えないのです。