02 Aug 2013, 03:41

TopCoder SRM : 587 Division : Div2 Level : Level1 InsertZ

TopCoderに参戦。

今日は、Level1が解けなかった・・・(´・ω・`)

3つくらい実装方法を考えたが、どれも失敗。頭に浮かんだ方法にすぐに飛びつかず、いくつかアプローチ方法を考えたあとにコーディングを始めたほうがよかったなと反省。

あとは、主にString型の知識不足。

問題

文字列 init と goalが与えられる。initに’z’を挿入をして、goalが作れれば”yes”を、そうでなければ”No”を返せ。

解答

initに文字列を挿入して、goalで比較するよりも、goalから”z”を削除してinitに一致するかどうかを調べるほうが簡単にかける。

Challenging TopCoder SRM 587!

Today, I could’t solv any problems

Question

Geven String init, goalYou can insert ‘z’ to init any times if init atch to goal return “yes”, else “No”

Answer

It’s easy to delete ‘z’ from goal rather than insert ‘z’ to init

29 Jul 2013, 07:48

jQueryでGoogleカスタム検索をさくっとカスタマイズ

jQueryを使って、Googleカスタム検索をカスタマイズしました。

検索窓にフォーカスしているときはメッセージは消す、フォーカスしていないときは、メッセージを表示するようにしました。

デフォルトのコードはこんな感じで取得できるると思います。

<form action="http://www.google.co.jp/cse" id="cse-search-box">
  <div>
    <input type="hidden" name="cx" value="*****" />
    <input type="hidden" name="ie" value="UTF-8" />
    <input type="text" name="q" size="20" />
    <input type="submit" name="sa" value="検索" />
  </div>
</form>

<script type="text/javascript" src="http://www.google.co.jp/coop/cse/brand?form=cse-search-box&amp;lang=ja"></script>

ここで、type=“text”に操作するためのclass を追加します。

<input type="text" class="focus" name="q" size="20" />

jQueryのコードはこんな感じで書きます。

$(function(){
     $(".focus").val("サイト内検索");
     $(".focus").focus(function(){
          if(this.value == "サイト内検索"){
               $(this).val("").css("color","#f39");
          }
     });
     $(".focus").blur(function(){
          if(this.value == ""){
               $(this).val("サイト内検索").css("color","#969696");
          }
     });
});

最後に、デフォルトでの表示を灰色にするために、CSSに色の宣言をします。

.focus{color: #969696}

jQueryでサクッとかけました。jQuery、便利ですねー。

完成!

28 Jul 2013, 13:17

WordPressで処理をファイル分割する方法を調べてみました

WordPressで処理をファイル分割する方法を調べてみました。

wordpressのコードをいじっていると、だんだん長くなってきた。

そこで、責務が独立できそうな部分を、別ファイルとして独立させる方法を調べてみた。

get_template_part()をつかう

header.phpやfooter.phpなどの、WordPressで決められた名前のファイルは、専用のinclude関数が用意されている。(get_header(),get_footer()など)

自前で作ったファイル(hogehoge.php)を読みこむには、get_template_part()を利用する。

get_template_part('hogehoge');

例えば、前回の記事で、固定メニューバーをheader.phpから独立させたい場合は,以下のようにすればよい。

  1. header-sticky.phpというファイルを新規作成
  2. 処理をファイルにカット & ペースト
  3. header.phpのカットした場所に以下の行を追加

.

<archives/hp get_template_part('header-sticky'); ?>

ファイル名は、.phpをつけないところがミソ。

28 Jul 2013, 07:15

WPプラグイン「qTranslate」で記事を新規投稿すると403 Error(wp-admin/post.php)

WordPressの多言語化プラグインqTranslateを入れて、記事を投稿しようとすると、403エラーとなり、記事が投稿できなくなったので、解決方法を調べました。

wp-admin/post.phpにはアクセス権がないと怒られます。

原因

ロリポップサーバで動作している、WAFが原因でした。

WAFとは 「Webアプリケーションファイヤーウォール」 ワフ: – IT用語辞典バイナリ

WAFとは、外部ネットワークからの不正アクセスを防ぐためのソフトウェア(あるいはハードウェア)であるファイアーウォールの中でも、Webアプリケーションのやり取りを把握・管理することによって不正侵入を防御することのできるファイアウォールのことである。

解決方法

ロリポップの管理ページから、Webツール -> WAF設定を選択。

WAF設定が有効になっているので、無効に設定。

5分から10分ほどすると、設定が反映されて、無事投稿できるようになりました。

Reference

28 Jul 2013, 06:45

ブログの上部に固定メニューバーを設置しました

ブログの上部に固定メニューバーを設置しました。

CSS と HTMLのカスタマイズ

コピペでいけるかと思いきや、全くそうはならなかった。

以下のサイトをベースにいろいろググりました。

ちょっとしたTips

スクロールしてもついてくるためには、 position: fixed を使います。

     position: fixed;

画像を重ねて表示するときは、最上位に表示される画像を指定しないと、期待した画像が見えない。z-indexを使って調整。

z-index: 999;
z-index: 900;

アイコンを表示させる場所は、1000pxに収めたいけれども、固定バーは画面全体に表示したい。

divとidで2段階に表示を分けることで実現。

.stickey_sns {
     width: 100%;
}

#stickey_footer {
     width: 1000px;
}

Googleカスタム検索の設置

Googleカスタマイズ検索は、デフォルトのままだとカッコ悪いのでCSSでスタイルを変更しました。

<form action="http://www.google.co.jp/cse" id="cse-search-box">
   <div>
      <input type="hidden" name="cx" value="******" />
      <input type="hidden" name="ie" value="UTF-8" />
      <input type="text" name="q" size="40"/>
      <input type="submit" name="sa" value="検索" />
   </div>
</form>
  • id: cse-serch-box 検索全体をカスタマイズするID
  • type: text 検索ポックス
  • type: submit 検索用アイコン

と要素が定義されているので、この値をいじるようにCSSを記述すればよいですね。

以下のサイトを参考に、自分でもいじってみました。

ソーシャルアイコンの設置 IcoMoon

ソーシャルアイコンは、無料で使えるものがたくさん配布されています。

今は、画像アイコンよりも、Webアイコンフォントが流行りらしいですね。

レスポンシブやらアイコンフォントやらフラットやら!2013年の気になる技術やデザインを試してみたリニューアル手順! | バンクーバーのうぇぶ屋

というわけで、IcoMoonというサイトを使ってアイコンフォントに挑戦!・・・とおもったけど、設置方法わかんなかったから、結局画像アイコンで妥協した。。。そのうち再挑戦します。

このサイトにアクセスして、ほしいアイコンをクリックして、ダウンロードするだけ。とってもカンタン。


Result

21 Jul 2013, 07:39

Codeforcesに初参戦しました!参加方法と感想について

Codeforcesに初参戦しました。

[toc]

Codeforcesってなに

いわゆる、プログラミングコンテスト。以下の特徴があります。

  • 2時間で5題問題を解く
  • ロシア発祥
  • 月に2、3度の頻度で開かれる
  • 利用できる言語が豊富

    • GNU C++ 4
    • GNU C 4
    • MS VS C++ 2005
    • Free Pascal 2
    • Delphi 7
    • C# Mono 2.6
    • Java 6
    • Ruby 1.9
    • Python 2.7
    • PHP 5.3
    • Haskell GHC 6.12
    • F# 2.0
    • OCaml
    • Scala

コンテストに参加するまで

Codeforcesの登録方法

まずは、Webページにアクセス

Gmailアカウントがあれば、それで認証して終了。わぁ、登録カンタン。

コンテストへの参加方法

コンテストが近くなると、トップページに開催案内がでる。クリックして登録完了。わぁ、登録カンタン。

コンテストに参加してみて

問題文は、すべてWebで公開されています。こんな感じ。

テスト画面でコーディングします。エディタがあり、ここでコードを作成します。Inputを与えて、「Run」を押して、テストを実施。Outputを確認します。

解答が完成したら、SUBMITタブを選択。解答を提出します。

標準入力、標準出力の扱い方について

初め、この入力と出力が意味不明だった。データが扱えないので、なにもできない!

Inputは標準入力, Outputは 標準出力なので、まずはこれを変数に格納することに一苦労。

C++ での Inputの扱い方

C++では、cinを使って、Inputを変数に格納します。

たとえば、Inputが

1 2

のときは、

cin >> a >> b;

のようにすると、値が変数に格納できます。スペースで区切られたものを、それぞれの変数に格納します。

cinは一回で1行を読みこむので、複数行にまたがるときは、cinを何度も書いて読みこむ。

C++ での Outputの扱い方。

coutを使って、標準出力に書き出します。

たとえば、rsltをOutputに書き出す場合は、

cout << rslt << endl;

当日の感想

問題のInputとOutputの扱い方がわからずに、それだけで30分おわってしまった。

エディタからの解答作成はちょっと面倒だっだ。TopCoderのようにEclipseのPluginがあればいいのたけれども、ないみたい。

関数の型も、テストも自分で考えるので、TopCoderよりも不親切にも感じた。

当日解いた問題

これは、システムテストで落とされました。。。初参戦にして、惨敗。。。(ノД`)

Codeforces Round #192 (Div. 2) A

[gist id=6045503]

I tried Codeforces for the first time

[toc]

What is Codeforces

It’s so called “Programming Contests”。 Special feature are follows.

  • Solve 5 problems within 2 houres
  • Russia origin
  • held three or four times per month
  • Lot’s of Langages supports
    • GNU C++ 4
    • GNU C 4
    • MS VS C++ 2005
    • Free Pascal 2
    • Delphi 7
    • C# Mono 2.6
    • Java 6
    • Ruby 1.9
    • Python 2.7
    • PHP 5.3
    • Haskell GHC 6.12
    • F# 2.0
    • OCaml
    • Scala

How to Enter Cotests

How to register Codeforces

At first access to the url

If you have a google account, authenticate with that。Wah, it’s easy.

How to Enter Contest

If the contest day comming, there shows a notice at the top page. Just click and is over. Wah, it’s easy

Start Contest!

You can see plobrems at the web, like that

Coding at test view. there is an editor, and you can make there. Give input date、 push the “Run” to run the test. Check the output

If your answer complete, move to SUBMIT tab, then submit your answer.

How to handle standard input and standard output

At first, I can’t understand this input and output。I can’t handle input and can’t do anything!

How to handle stdin with C++

In C++, you can put data to variable with cin

For example 、Input is

1 2


cin >> a >> b;

cin input date 1 line at once, so if you want to input another line, use multiple times

How to handle stdout with C++

In C++, you can put data to stdout with cout

For example、output rslt to stdout

cout << rslt << endl;

Impressions

I can7t figure it out stdin and stdout, so I spend 30min to research

Codinng with web edittor is not easy. It seems that there is no plugin to code from eclipse, like topcoder

My answer

My answer was failed with system test,..(ノД`)

Codeforces Round #192 (Div. 2) A

[gist id=6045503]

20 Jul 2013, 11:48

既存のCentOSのイメージファイルを使ってvagrant用boxファイルを作ったメモ

既存のvmをbox化する方法がワカラなかったので、自分でvargrant用boxを作成する方法を調べました。

ネットからisoを落としててきてカスタマイズするのは、veeweeやpackerといったツールがあるみたいだけれども、今回はあくまで既存のvmイメージをなんとかする。

公式サイトによると、以下の設定が必要

  • VirtualBox Guest Additionsのインストール(ファイル共有、ポートフォワードのため)
  • SSH の設定
  • Ruby & RubyGemsインストール(Chef and Puppetをインストールするため)
  • Chef and Puppet インストール(プロビジョニングのため)

ちなみに、一番参考になったのは、以下のサイト

[toc]

事前準備

使うのは、もともともっている自分のvmです。こんな歴史のCentOS 6.4 minimal構成。

VMの設定

rootパスワードをvargrantにする

root権限になって、変更

su
vagrant

vagrantユーザを作成する

vagrant userを追加して、adminグループに入れる。

useradd vagrant
passwd vagrant
groupadd admin
usermod -G admin -a vagrant

Permission設定

adminグループにパスワードなしで、sudoできるようにする。

visudo

以下を末尾に追記

vagrant ALL=(ALL) ALL

%admin ALL=(ALL) NOPASSWD:ALL

Defaults env_keep=”SSH_AUTH_SOCK”

requirettyの先頭に!をつける。

Default !requiretty

これをしないと、起動時にこんなエラーが出た。

[default] -- /vagrant
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

mkdir -p /vagrant

VirtualBox Guest Additionsのインストール

ファイル共有やポートフォワーディングを利用するために、virtualbox guest additionをインストールする。

VirtualBox の [デバイス]-[GuestAdditionインストール]を選択してダウンロード。ダウンロードされたら、ファイルをマウントしてファイルを取り出す。

mkdir /mnt/cdrom
mount -r /dev/cdrom1 /mnt/cdrom
cd /mnt/cdrom/

VBoxLinuxAdditions.runというファイルがあるので、これを実行。

# 念のため
yum -y install gcc kernel-devel
sh VBoxLinuxAdditions.run

CentOSだとエラーしたけど、構わずReboot

Installing the Window System drivers     [FAILED]

これはエラーしても問題はない。以下のコマンドでインストールできたことを確認する。

VBoxControl --version
VBoxService --version

インストールが終わったら、CentOSを再起動する。

ソフトウェアのインストール

以下の5つが必要。

  • Ruby – Use the dev package so mkmf is present for Chef to compile
  • RubyGems – To install the Chef gem
  • Puppet – To install Puppet (also ensure that a ‘puppet’ group is present!)
  • Chef gem – For provisioning support (gem install chef)
  • SSH

Ruby & RubyGemを入れる

yum -y install ruby rubygems

Chef,Puppetのインストール

プロビジョニングのためにChefを入れる

gem install chef --no-ri --no-rdoc
// puppetはいらないかも
gem install puppet --no-ri --no-rdoc

SSH設定

githubにSSHのためのキーがおいてある。

自分でつかうだけならば、この鍵をつかう。boxを公開するきは、自分で鍵を作成する。

vagrantユーザになって、

 mkdir .ssh
 cd  .ssh
 curl 'https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub' > authorized_keys
 chmod 0755 .ssh
 chmod 0644 .ssh/authorized_keys

これを叩くとssh高速化するらしい

echo 'UseDNS no' >> /etc/ssh/sshd_config

パッケージ作成

不要なファイルはできるだけ、パッケージ化前に削除しておくこと。

yum clean all

VMの電源を一旦OFFにする。

vagrant package でパッケージを作成する。

vagrant package --base "C:\home\TSUNEMICHI\VirtualBox VMs\Saru\Saru.vbox"

package.boxが作成される。(けっこう時間かかる)

作成できたか確認

実際に、boxをつかってみて、ちゃっとできたか確かめる。

vagrant box add my_box package.box
mkdir test_environment
cd test_environment
vagrant init my_box
vagrant up
vagrant ssh

接続できればOK.接続できなければ、sshの設定が怪しい。

共有フォルダの設定も確認。

touch test
vagrant ssh
less /vagrant

参考

15 Jul 2013, 09:26

ミライの組込み開発!vagrant × sahara × minitestで実現する仮想エンドツーエンドテスト

photo credit: Ѕolo via photopin cc

以前、組込み開発での機能テスト自動化について考察しました。

組込み開発でのエンドツーエンドの課題は、テストが失敗したところから正常な状態まで復旧させることでした。

実際にテストできるかどうかはまだまだ試行錯誤が必要そうだ。実際の仕事で適用するためには、後処理から正常な状態に復旧させる処理が最大の課題だと思っている。

この課題を、仮想環境のスナップショットがコマンドラインから操作できるvagrantとsaharaを利用して解決してみようと思います。

3ヶ月前のリベンジ

3ヶ月前に書いた、Rubyのminitestを利用したスクリプトのなかに、vagrantとsaharaを組込みます。ポイントは、

  • setupでスナップショットから仮想環境を初期化

です。テストが失敗した結果、いくらボロボロに環境を破壊してても、一瞬でもとに戻します。

# sahara rollbackで初期化
system( 'vagrant sandbox rollback' )

 mkdirするサンプルテスト

動画

[//www.youtube.com/embed/Ct7ivafdpoY?rel=0]

ミライの組込み開発

GOOS本を読んでから、ウォーキングスケルトンを組込み開発でどうやってつくればいいのか、ずっと頭を悩ませていた。(そして、途中で読むのをやめてしまった。。えっ?(・・?)

vagrant、これが、答えだ! ( ー`дー´)キリッ

vagrantとsaharaを利用したエンドツーエンドテスト、革命的な方法だと思う。

githubのReadmeを読むと、Acceptance Tests用の追加機能もあるっぽいのでもう少し調べてみる。

会社では、quemで作成されたシミュレータをCentOS上で動作させてテストしたりしてる。vagrantとsaharaを利用すれば、quemで作られたシミュレータも一瞬で初期化できるのだ。もっとも、quem自体にスナップショット機能があるっぽいけど。。

実機がないけど、シミュレータを利用してテスト出来て、いくらでも壊して一瞬で復元できる。。。これが、ミライの組込み開発。

これって、すごいことじゃないか?

15 Jul 2013, 00:47

仮想環境を破壊しまくっても大丈夫だ、問題ない。vagrantプラグイン『sahara』

vagrantのプラグイン、saharaを使ってVirtualBox上のCentOSを破壊しました。

photo credit: mariusz kluzniak via photopin

[toc]

saharaとは

saharaはvagrantのプラグインです。

saharaを使うと、以下のようなことがコマンドラインからできます。

  • 仮想マシンのスナップショットを作成
  • スナップショットから仮想マシンを復元

つまり、仮想マシンをボロボロのメタメタのケチョンケチョンに破壊しまくっても、

元に戻せるのです!( ̄ー ̄)

saharaのインストール

$ vagrant plugin install sahara
Installing the 'sahara' plugin. This can take a few minutes...
Installed the plugin 'sahara (0.0.15)'!

saharaの使い方

コマンドは以下の4つです。

  • vagrant sandbox on
  • vagrant sandbox commit
  • vagrant sandbox rollback
  • vagrant sandbox off

簡単な例

ここでは、 /usr配下をうっかり削除してしまい、復元しようと思います。

まずは、事前にvmを立ちあげときます。

$ vagrant up
サンドボックス有効化

saharaを利用するためには、sandboxモードを有効化します。

$ vagrant sandbox on
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

GUIからも、スナップショットが作成されたことが確認できます。


以下のフォルダに格納されました。

C:\home\TSUNEMICHI\VirtualBox VMs\centos_1373847520\Snapshots
スナップショットから以前の状態を復元

rollbackコマンドでsandboxモードを有効化した時点に戻ることができます。

$ vagrant sandbox rollback
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

それでは、ここでうっかりディレクトリ削除をしてみます。

$ vagrant ssh
$ su # root passwordは vagrant
$ rm -rf /usr

うひゃあ 。゚(゚´Д`゚)゚。

$ ls /usr
ls: cannot access /usr: No such file or directory

でも、大丈夫だよ (´・ω・)っ□

$ vagrant sandbox rollback
$ vagrant ssh
$ ls /usr/
bin  etc  games  include  lib  lib64  libexec  local  sbin  share  src  tmp

よかったねー。(っ´∀`)っ


[//www.youtube.com/embed/uviNa0kyVX8?rel=0]

サンドボックス無効化

saharaをもう利用しない時は、sandboxモードを無効化します。ちなみに、けっこう時間がかかります。

$ vagrant sandbox off
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

スナップショットは以下に保存されています。もちろん、VirtualBoxからもスナップショットの管理ができます。

スナップショット作成

commitコマンドで現在の状態を保存します。これによって、rollbackで戻れる時点を変更できます。これはスナップショットを一旦削除するので、時間がかかります。

$ vagrant sandbox commit

内部的には、sandbox offしてonしているだけに見えます。

パフォーマンスについて

時間はどうなの?

sandbox onと sandbox rollbackは一瞬で終わります。sandbox offとsandbox commitスナップショットの削除時間が入るので、数分かかります。

とくに、sandbox rollbackが一瞬で完了するのは素晴らしいです。これなら、エンドツーエンドテストに十分応用可能なスピードです。

容量はどうなの?

スナップショットをたくさんとった時の気になる容量を確認しました。

CentOS 6.4 Minimal の元ファイルが1.5GBのスナップショットは 63.8 MB でした。このくらいならば、許せるレベル。僕の貧弱マシンでも大丈夫です。

参考

525A3%2525E3%252583%2525BC_2013-7-14_15-7-43_No-00.jpg

14 Jul 2013, 23:06

vagrantがスゲエ!コマンドラインからVirtualBoxを自由自在に操る方法

前回、VirtualBoxの導入をしました。

今回は、VirtualBoxをコマンドラインから操作することができるVagrantを使ってみようと思います。

[toc]

環境

  • VirtualBox 4.2
  • Vagrant 1.2.3
  • Windows 7 x64

Vagrantとは

Vargrantとは、仮想環境をコマンドラインから操作することができる、オープンソースRubyスクリプトです。

VirtualBoxやVMware Fusion/VMware WorkBench、EC2をコマンドラインから操作できます。VMware Fusionは有料(4000円くらい?)なので、無料のVirtualBoxで試してみます。

Vagrantのインストール

最新版をサイトからとってきてインストールします。

Windows番だとMINGWやRubyがまとめて梱包されていました(重い)。

Cygwinで Vagrantを利用するための設定

Cygwinから利用するためには、以下のおまじないが必要みたいです。

dos2unix /cygdrive/c/HashiCorp/Vagrant/bin/vagrant

詳しくはココ。

ちなみに,このページだと、.VirtualBoxフォルダがCygwinで実行した場合には、Cygwinホーム配下に作成されて、Windowsホーム配下のものと二重管理になるので、リンクを作成するといいよとかいてある。

自分の場合、特に不都合がでることはなかったが、念のため、以下も実施しておく。

コマンドプロンプトから管理者権限で、

cd C:\Windows\system32
mklink C:\cygwin\home\TSUNEMICHI\.VirtualBox C:\home\TSUNEMICHI\.VirtualBox
mklink "C:\cygwin\home\TSUNEMICHI\VirtualBox VMs" "C:\home\TSUNEMICHI\VirtualBox VMs"

TSUNEMICHIの部分はユーザ名なので、適当に読み替えてください。

Vagrantの使い方

ドキュメントはコチラ。

環境構築には、3コマンドで行けます。

$ vagrant box add base http://files.vagrantup.com/lucid32.box
$ vagrant init
$ vagrant up

以下、詳細です。

boxファイルの作成

Vagrantを利用するためには、まずboxファイルというものを用意する必要がある。boxファイルの作成方法は、以下の2つがあるようだ。

  • テンプレートをネットから落としてくる方法
  • boxファイルを自作する方法

自作する方法はまた別の機会に調べることにして、まずはテンプレートからサクッとvagrantを試してみます。

以下のサイトで、様々なOSのISOにvagrant利用環境を整えたboxが配布されている。例えば、CentOS 6.4 minimal(VartualBox)は以下。

インストールは、以下のコマンドを実行。

vagrant box add base http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130427.box

IOSイメージをダウンロードしてくるので、メチャクチャ時間がかかります。気長に待つこと。

Vagrantの初期化

boxファイルが作成できたら、VMを管理するためのディレクトリをつくって、ディレクトリでvagrantが動作するように初期化します。

% mkdir centos
% cd centos
% vagrant init base
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

Vagrantfileが作成されます。

Vagrantの実行

いよいよ、vagrant実行です。コマンド数は少ないですが、ダウンロード時間でけっこうここに来るまで時間がかかった。。orz

いざ、実行!!( ´・∀・`)ノ

% vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'base'...
 [0K[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.

ここで起動が止まってしまった。。。いろいろと苦労してBIOSのvt-d設定を有効化したら、起動できた!

VirtualBoxを見ると、起動中となっていることがわかります。ホントにコマンドラインから起動できた!!


vagrantの基本コマンド

コマンドの使い方はヘルプから確認できます。

$ vagrant -h

Usage: vagrant [-v] [-h] command []

    -v, --version                    Print the version and exit.
    -h, --help                       Print this help.

Available subcommands:
     box
     destroy
     halt
     init
     package
     plugin
     provision
     reload
     resume
     ssh
     ssh-config
     status
     suspend
     up

基本コマンドは以下。

  • vagrant init vagrant 初期化(Vagrantfile作成)
  • vagrant up vagrant 起動
  • vagrant ssh vagrant ログイン
  • vagrant halt vagrant 終了

ログイン

$ vagrant ssh
Last login: Sun Jul 14 21:24:25 2013
Welcome to your Vagrant-built virtual machine.
[vagrant@localhost ~]$

vagrant 終了(一時停止)

$ vagrant halt
[default] Attempting graceful shutdown of VM...

コマンド数も少ないので、簡単に覚えられますね。動画も載せておきます。

[//www.youtube.com/embed/Pj8aEvXfaW8?rel=0]

容量は・・・

ちなにみ、気になる体重・・・じゃなかった、容量ですが、CentOS minimal構成でどのくらいになるのか、調べました。

vagrant initを実行したフォルダの容量を調べたら、4.51 KB・・・あれ?(´・д・`)

Boxファイルは、以下にありました。

$HOME/.vagrant.d/boxes/(ボックス名)/virtualbox/box-disk1.vmdk

容量は、524MB。軽い軽い。

そして、VMイメージですが、以下にありました。

C:\home\TSUNEMICHI\VirtualBox VMs

容量は、1.5GB。ふふふ、重い重い。

ちなみに、Boxファイルからではなく、普通にCentOS6.4 minimal構成のISOをインストールした場合の容量は、157MBだ。桁が1つ違う。。。