30路SEのtech忘備禄

日々の業務やプライベートの技術的なメモをたんたんと。たまに関係ないことも。

vagrantをCentOS6.4にインストール 32bit と 64bit

最近話題vagrantを遅まきながら勉強しているのでメモ。

CentOS6.4にインストールした場合について。
vagrantのセットアップ手順は以下のサイトを主に参照。
http://dotinstall.com/lessons/basic_vagrant

基本は32bitベースでの説明。
64bitで手順が異なるところは追記。

virtualbox install

wget http://public-yum.oracle.com/public-yum-ol6.repo‎
mv public-yum-ol6.repo‎ /etc/yum.repos.d/
wget https://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
yum -y install VirtualBox


追記:64bitだと、↑だけでは不足の模様。以下で再トライ。

cd /etc/yum.repos.d/
wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
yum install VirtualBox-4.2

■vagrant install

yum  -y install rubygems
wget http://files.vagrantup.com/packages/7ec0ee1d00a916f80b109a298bab08e391945243/vagrant_1.2.7_i686.rpm
rpm -ivh vagrant_1.2.7_i686.rpm
mkdir vagrant_work
cd vagrant_work
vagrant init


追記:64bitだと、先にこのエラーが発生。不足しているモジュールを追加する。
#yum provides で探すと便利

/opt/vagrant/bin/../embedded/bin/ruby: /lib/ld-linux.so.2: bad ELF interpreter: そのようなファイルやディレクトリはありません
yum provides ld-linux.so.2
glibc-2.12-1.107.el6.i686

ここまで行ったら以下のエラー。。

/opt/vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/hosts/fedora/host.rb:39:in `block in initialize': undefined method `[]' for nil:NilClass (NoMethodError)

調べてみると、CentOSにvagarantを入れたときにバグがあるらしい。
ということで、vagrantのソースコードを修正。

cd /opt/vagrant/embedded/gems/gems/vagrant-1.2.7/plugins/hosts/fedora/
vim host.rb
diff host.rb host.rb.org
39,40c39
<             #version_number = /Fedora.*release ([0-9]+)/.match(f.gets)[1].to_i
<             version_number = /[Fedora|CentOS].*release ([0-9]+)/.match(f.gets)[1].to_i
---
>             version_number = /Fedora.*release ([0-9]+)/.match(f.gets)[1].to_i
-[3298]% cat /etc/redhat-release

これで再度実行して成功。

vagrant init