Xubuntu 14.04LTSを、VMWare Playerにインストールしました


Ubuntuの派生ディストロであるXubuntuの最初バージョン14.04LTSを、VMWare Player(Windows 7マシン上で動作)の仮想マシンにインストールしました。その時の手順のメモです。

近藤は、これまでUbuntu 12.04LTSを使っていました。前回の移行(Ubuntu 10.04LTSから12.04LTS)の際には、既存の10.04LTSの環境に対して、アップグレードをかけました。その時の記録はここにありますが、正直言って、かなり苦労、というか悪戦苦闘しました。

そのこともあったので、今回は、既存環境のアップグレードはせずに、新規にXubuntu 14.04LTSをインストールすることにしました。

UbuntuからXubuntuに移行した理由

まず最初に、なぜ今回は、Ubuntuではなく、Xubuntuを選んだかという話を書いておきます。

近藤は、数年前から、WindowsマシンにVMWare Playerをインストールして、その上で仮想マシンとしてLinux(Ubuntu)を動かしていました。

VMWare Playerには、Unityモードという動作モードがあります。これは、「Linuxのデスクトップを表示せずに、LinuxアプリのウィンドウをWindowsのデスクトップ上に直接表示する」というモードです。つまり、Linuxで起動したアプリ(例えばターミナル)が、あたかもWindowsのアプリのように扱われるのです。私のLinuxの使用目的は主に開発なので、基本的にこのUnityモードを使っています。

しかし、(12.04当たりから?)Ubuntuに導入されたUnityモード(まぎらわしいですね)が、VMWare PlayerのUnityモードと相性が悪いのです。Ubuntu 12.04LTSでは、古いバージョンのVMWare Playerを使って、何とか調整して使っていました。

しかし、最新版のVMWare Playerでは、『(VMWare Playerの)Unityモードは、Ubuntu(のUnityモード)はサポートしない』ということになってしまいました。実際に、VMWare Player 6.0.3に、Ubuntu 14.04LTSをインストールしたところ、Unityモードに切り替えができません。

いろいろ調べたところ、VMWare Unity Mode with Ubuntu 12.10というQAスレッドを見つけました。

ここでは「Unityデスクトップの代わりに、Gnome3デスクトップを使う」という回避策が紹介されてました。また、そのほかには「どうしてもUbuntuを使いたければ、Ubuntu系の派生ディストロのXubuntuを使えばいい。Xubuntuは、XFCEデスクトップを使ってるので、VMWareのUnityモードとコンパチだから」というアドバイスもありました。

そこで、試しにXubuntuを入れてみたら、確かにVMWare PlayerのUnityモードがちゃんと動きました。また日本語環境で使えるという実績も見つかりました。

というわけで、Ubuntu 12.04LTSから、Xubuntu 14.04LTSへと移行したのでした。

Xubuntu 14.04LTSをVMWare Playerにインストールする手順

さて、本題ですが、インストールの手順自体は簡単です。

1. Xubuntuの公式サイトから、14.04LTSの64bit版のISOイメージをダウンロードします。

http://cdimage.ubuntu.com/xubuntu/releases/14.04/release/xubuntu-14.04-desktop-amd64.iso

2. VMWare Playerから、「新規仮想マシンの作成」を実行します。ダイアログでは、「インストーラディスクイメージファイル」として、ダウンロードしたISOイメージを指定してやります。すると、「Ubuntu 64ビット 14.04」と認識してくれて、簡易インストール(ほぼ全自動でインストールくれる)をしてくれます。

3. XubuntuのVMをスタートさせると、シンプルなログイン画面が表示されます。

xubuntu-login

4. ログインすると、シンプルなデスクトップが表示されます。

xubuntu-desktop

5. メニューからターミナルを立ち上げてみます。

xubuntu-desktop-2

6. ユニティモードのアイコン(下のイメージで、赤丸で囲んだアイコン)をクリックすると、ユニティモードに移行します。

xubuntu-unitify-icon

ターミナルがWindowsアプリのようにウィンドウに表示されます。

xubuntu-unity

さて、この状態では日本語文字は表示されるものの、まだ日本語の入力はできません。

日本語入力をするためにiBusをインストールする

日本語入力を可能にするには、iBusをインストールした上で、日本語入力の設定をすればOKです。下記のページの手順で設定を行ないました。

これで、Xubuntu 14.04LTSの開発環境が手に入りました。あとは、必要なソフトをインストールして、設定を行なえばOKです。

Chefを使って、Ubuntuのタイムゾーンを日本時間(JST)に設定する


Ubuntu Linuxでは、タイムゾーンは/etc/localtimeファイルの内容で決まります。日本の会社が提供するVPSでは、あらかじめタイムゾーンが日本時間(JST)に設定されています。

しかし、海外のVPSやVagrantのOSイメージでは、タイムゾーンが現地のものなっていたり、UTCになっているのが普通です。このままでは何かと不便なので、タイムゾーンの設定をJSTに変えたいところです。

各タイムゾーンを表わすファイルは、/usr/share/zoneinfoの中に置かれています。例えば、日本時間(JST)の場合には、/usr/share/zoneinfo/Japanです。/etc/localtimeから、/usr/share/zoneinfoのファイルにシンボリックリンクを張ることによって、マシンのタイムゾーン設定を変えることができます。

次のコマンドを実行すると、日本時間(JST)になります。

$ sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime

これをChefのレシピで実現すると次のようになります。linkリソースによってシンボリックリンクを張るだけの簡単な内容です。

Windows 7マシンで、VirtualBox+Vagrantを使いUbuntu 14.04を動かす


ノートPC(ASUS Zenbook, Windows 7)上に、VirtualBox + Vagrantを使って、Linux環境(Ubuntu 14.04LTS)を作成した際のメモです。

VirtualBoxのインストール

VirtualBoxの公式サイトから、Windows用の最新バージョンをダウンロードします。
今回は、VirtualBox 4.3.12 for Windows hostsをダウンロードしました。

次にダウンロードしたファイルを実行します。途中に、何回かダイアログ(VMが使用するネットワークやUSBのドライバをインストートするか、など)が表示されますが、デフォルトのままで進んで構いません。最後にマシンを再起動してインストールが完了です。

Vagrantのインストール

Vagrantの公式サイトのダウンロードページから、Windows用の最新版をダウンロードします。今回は、Vagrant 1.6.3 for Windowsをダウンロードしました。

次にダウンロードしたファイルを実行します。途中でダイアログが表示されたら、デフォルトを選んで進みます。最後にマシンを再起動してインストールが完了します。これで仮想マシンを実行する準備が整いました。

Vagrant用のOSイメージをインストール

仮想マシン(VM)で使用するOSのイメージは、http://www.vagrantbox.es/で公開されています。様々なOSやディストリビューションがあるので、使いたいものを選びます。ここではUbuntu 14.04 (64bit)のオフィシャル版を使うことにしました。

Official Ubuntu 14.04 daily Cloud Image amd64 (Development release, No Guest Additions):
https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box

vagrant box addコマンドを使い、OSのイメージファイルをvagrant環境にダウンロードします。

vagrant box add NAME URL

ここでNAMEは、ダウンロードしたOSイメージに付ける名称です。Vagrantで仮想マシンを起動する際には、この名称を使います。URLはOSイメージのURLです。

実際には次のように指定しました。

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

なお、このコマンドは、数百MバイトのOSイメージをダウンロードするので、時間がかかります。しかし、これ以降、実際に仮想マシンを作成して起動する際には、ここでダウンロードしたOSイメージが使用されるので、さほど時間はかかりません。

仮想マシンを初期化して起動する

仮想マシンの設定ファイルを置くために、適当なディレクトリを作成します。仮想マシンを使う際には、このディレトリにcdします。

まず最初にvagrant initコマンドを実行して、仮想マシンを初期化します。2番目の引数にはOSイメージ名ubuntu14.04を指定します。これは、先ほどvagrant box addで指定した名前と同じです。

C:\vagrant\myhost>vagrant init ubuntu14.04
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.

仮想マシンを起動するには、vagrant upコマンドを使います。

C:\vagrant\myhost>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'ubuntu14.04'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: myhost_default_1402444222649_68982
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => C:/vagrant/myhost

これで仮想マシンがスタートしました。ブート時に以下のように、SSH接続のアドレス、ポート、ユーザ名が表示されます(ちなみに、パスワードもvagrantとなっています)。

    default: 22 => 2222 (adapter 1)

    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant

vagrant本来の使い方では、仮想マシンにログインするにはvagrant sshコマンドを使うのですが、Windowsにはsshコマンドが入っていません。そこで、ターミナルソフト(例えばPutty)を使って、仮想マシンにログインします。

上の実行例では次のように設定すればログインできるはずです。

アドレス: 127.0.0.1
ポート: 2222
ユーザ: vagrant
パスワード: vagrant

ユーザvagrantはsudoできる設定になっているので、あとは好きなようにマシンの環境を設定しましょう。

仮想マシンを停止する

仮想マシンを停止するコマンドはvagrant suspendとvagrant haltの2つがあります。

vagrant suspendコマンド

vagrant suspendは、仮想マシンを「休止状態」(hybernation)にします。つまり現在の仮想マシンの状態をディスクに書き出します。後ほどvagrant upで仮想マシンを起動すると、vagrant suspendした直前の状態からリスタートします。

vagrant haltコマンド

vagrant haltは、仮想マシンの「電源を強制的にオフ」にします。これは起動中のマシンの電源スイッチを切ることに相当します。次にvagrant upすると、仮想マシンはブ一トします。

仮想マシンをシャットダウンする際には、仮想マシンでpoweroffコマンドを実行するほうが良いでしょう。

仮想マシンの状態を調べる: vagrant statusコマンド

仮想マシンの現在の状態を表示します。

suspend状態なら次のように表示されます。

C:\vagrant\myhost>vagrant status
Current machine states:

default                   saved (virtualbox)

To resume this VM, simply run `vagrant up`.

実行中なら次のように表示されます。

C:\vagrant\myhost>vagrant status
Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.

仮想マシンの「電源がオフ」ならば次のように表示されます。

C:\vagrant\myhost>vagrant status
Current machine states:

default                   poweroff (virtualbox)

The VM is powered off. To restart the VM, simply run `vagrant up`

UnixBenchで仮想サーバのベンチマークを行なう


Linux/Unixの性能を比較するのに、UnixBenchというベンチマークテストがよく使われます。このエントリは、Ubuntuで、UnixBenchを実行する手順のメモです。

UnixBenchを実行するには、makeとgccが必要です。それぞれ同名のパッケージをインストールします。

$ sudo apt-get install make gcc

UnixBenchのソースファイルをダウンロード、展開します。2014/5/11時点では、最新版はバージョン5.1.3です。

$ wget https://byte-unixbench.googlecode.com/files/UnixBench5.1.3.tgz
$ tar xvzf UnixBench5.1.3.tgz 

ソースはUnixBenchというディレクトリに展開されるので、そこにcdして、ベンチマークを実行します。実行には結構時間がかかります。

$ cd UnixBench/
$ ./Run 

実行結果は標準出力に表示されます。次の例は、さくらVPS 2G(3 CPU、メモリ: 2GByte、HDD)の実行結果です。

スコアは2344.6(150行目)。マルチCPUの場合には、1CPUのスコア858.7も表示されます(117行目)。

RVMを使ってRuby on RailsをUbuntu 12.04LTSにインストールする


Ubuntu 12.04LTSが動いているマシンに、Ruby on Railsをインストールしました。Ubuntuでは、Ruby言語も、Ruby on Railsも、パッケージを使って簡単にインストールできます。しかし、パッケージからインストールした場合、利用できるバージョンが制約されることが多いので、今回は自前でインストールすることにしました。

RVM(Ruby enVironment Manager)を使ってRubyをインストールして、その上にRailsを入れることにしました。RVMを使ってRubyをインストールすれば、複数のバージョンを共存させることができます。

まずは、(RVMとは干渉しないようですが)念のために、Ubuntuのパッケージでインストールしたruby1.9.1をアンインストールしておきます。

インストールしたバージョンは、Rubyが1.9.3系列の最新版、Railsが3.2系の最新版です。

ステップ 1. RVMをインストールする

次のコマンドを実行すると、RVMのソースを取得してインストールしてくれます。(curlが必要です。入っていなければ、curlパッケージをインストールしてください。)

$ curl -L https://get.rvm.io | bash -s stable

RVMは、ディレクトリ~/.rvmの下にインストールされます。また、RVMを使って、インストールしたRubyやgemも、~/.rvmの下に置かれます。

実行結果:

$ curl -L https://get.rvm.io | bash -s stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   185  100   185    0     0    123      0  0:00:01  0:00:01 --:--:--   178
100 10956  100 10956    0     0   4125      0  0:00:02  0:00:02 --:--:-- 12686
Downloading RVM from wayneeseguin branch stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   131  100   131    0     0    151      0 --:--:-- --:--:-- --:--:--   208
100 1244k  100 1244k    0     0   193k      0  0:00:06  0:00:06 --:--:--  273k

Installing RVM to /home/cond/.rvm/
    Adding rvm PATH line to /home/cond/.bashrc /home/cond/.zshrc.
    Adding rvm loading line to /home/cond/.bash_profile /home/cond/.zprofile.

# RVM:  Shell scripts enabling management of multiple ruby environments.
# RTFM: https://rvm.io/
# HELP: http://webchat.freenode.net/?channels=rvm (#rvm on irc.freenode.net)
# Cheatsheet: http://cheat.errtheblog.com/s/rvm/
# Screencast: http://screencasts.org/episodes/how-to-use-rvm

# In case of any issues read output of 'rvm requirements' and/or 'rvm notes'

Installation of RVM in /home/cond/.rvm/ is almost complete:

  * To start using RVM you need to run `source /home/cond/.rvm/scripts/rvm`
    in all your open shell windows, in rare cases you need to reopen all shell windows.

# Yoshiyuki Kondo,
#
#   Thank you for using RVM!
#   I sincerely hope that RVM helps to make your life easier and
#   more enjoyable!!!
#
# ~Wayne

$

インストールが完了したら、rvmを有効にするために、次のコマンドを実行します。(実行結果の26〜27行目にTo start using RVM you need to run `source /home/cond/.rvm/scripts/rvm`と表示されています。)

$ source ~/.rvm/scripts/rvm

次のsource文を~/.bashrcに追加しておけば、いちいち手でsource文を実行しなくても、ログインすればすぐにrubyを使えるようになります。

source $HOME/.rvm/scripts/rvm

ステップ 2. Rubyのビルドに必要なパッケージをインストールする

次に、Rubyをビルドするために必要なパッケージをインストールしておきます。

rvm requirementsコマンドを実行すると、どのパッケージをインストールすべきかを表示してくれます。

$ rvm requirements

Requirements for Linux "Ubuntu 12.04.1 LTS"

NOTE: 'ruby' represents Matz's Ruby Interpreter (MRI) (1.8.X, 1.9.X)
             This is the *original* / standard Ruby Language Interpreter
      'ree'  represents Ruby Enterprise Edition
      'rbx'  represents Rubinius

bash >= 4.1 required
curl is required
git is required (>= 1.7 for ruby-head)
patch is required (for 1.8 rubies and some ruby-head's).

To install rbx and/or Ruby 1.9 head (MRI) (eg. 1.9.2-head),
then you must install and use rvm 1.8.7 first.

Additional Dependencies:
# For Ruby / Ruby HEAD (MRI, Rubinius, & REE), install the following:
  ruby: /usr/bin/apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion pkg-config

# For JRuby, install the following:
  jruby: /usr/bin/apt-get install curl g++ openjdk-6-jre-headless
  jruby-head: /usr/bin/apt-get install ant openjdk-6-jdk

# For IronRuby, install the following:
  ironruby: /usr/bin/apt-get install curl mono-2.0-devel

# For Opal, install the following:
  opal: /usr/bin/apt-get install nodejs npm

普通のRubyをインストールする場合には、19から20行目に表示されているパッケージが必要になります。

次のように、apt-get installコマンドでパッケージをインストールしておきます。

$ sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion pkg-config

ステップ3. Rubyをインストールする

rvmコマンドを使って、Ruby 1.9.3をインストールします(かなり時間がかかります)。

$ rvm install 1.9.3

rvmコマンドが完了したら、イントールされたRubyのバージョンを確認しましょう。

$ ruby -v
ruby 1.9.3p362 (2012-12-25 revision 38607) [i686-linux]

whichコマンドを使えば、rubyが~/.rvmの下にインストールされていることがわかります。

$ which ruby
/home/cond/.rvm/rubies/ruby-1.9.3-p362/bin/ruby

rvmを使って複数バージョンのRubyをインストールしている場合には、rvm listにより、インストールされているRuby処理系の一覧が表示されます。

$ rvm list

rvm rubies

=* ruby-1.9.3-p362 [ i686 ]

# => - current
# =* - current && default
#  * - default

この例では、1つのバージョン(1.9.3-p362)だけがインストールされていることがわかります。

複数バージョンがインストールされている場合には、rvm useコマンドを使って、使用するRubyを切り替えることができます。

$ rvm use 1.8.7

また、–defaultオプションを指定すれば、そのバージョンがデフォルトになります。

$ rvm use 1.9.3 --default
Using /home/cond/.rvm/gems/ruby-1.9.3-p362

ステップ4 RubyGemsをインストールする

rvmコマンドを使って、RubyGemをインストールします。

$ rvm rubygems current

インストールされたgemのバージョンを確認します。

$ gem -v
1.8.24

ステップ4 Railsをインストールする

gemコマンドを使ってRailsをインストールします(結構時間がかかります。)

$ gem install rails

gemコマンドが終わったら、railがインストールされていることを確認しましょう。

$ rails -v
Rails 3.2.11

これで、Ruby on Railの環境が構築できました。