PPAパッケージを利用してRuby 2.2をUbuntu 14.04にインストールする


UbuntuにRubyの新しいバージョンをインストールする場合は、ソースからインストールする他にPPAパッケージが利用できます。
Ruby 2.2.0 packages for Ubuntu
PPAはPersonal Package Archiveの名前の通り非公式の有志が提供するパッケージ集です。

手動でインストール

apt-add-repositoryコマンドを実行するためにsoftware-properties-commonをインストール

$ sudo apt-get install software-properties-common

インストールとバージョンの確認は以下の通り

$ sudo apt-add-repository ppa:brightbox/ruby-ng
$ sudo apt-get update
$ sudo apt-get install ruby2.2

$ ruby2.2 -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux-gnu]

Chef Cookbook

Chef SupermarketにはrubyのCookbookがいくつか公開されている(RubyのCookbookを検索)が、PPAパッケージのインストールはruby-ngを利用する

Chefリポジトリの作成して、ruby-serverというホスト名のサーバーにRuby 2.2をKnife soloでインストールするまでの手順

$ mkdir ruby-ng-chef
$ cd ruby-ng-chef
$ knife solo init .
$ knife solo bootstrap ruby-server
// Berksfile
site :opscode

cookbook 'ruby-ng'

デフォルトでは2.1がインストールされるので、属性ruby-ng::ruby_versionに2.2を指定

// nodes/ruby-server.json
{
  "run_list": [
    "ruby-ng::default"
  ],
  "ruby-ng": {
    "ruby_version": "2.2"
  }
}

Cookbookを適用

$ knife solo cook ruby-server

サーバーでインストールされたバージョンを確認

$ ruby -v
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux-gnu]

補足: UbuntuでのRubyのバージョン切り替え

Ubuntuに、複数のバージョンのRubyがインストールされている場合、update-alternativesを利用してデフォルトのRubyバージョンを切り替えることができる

インストールされているRubyのバージョンの確認

$ update-alternatives --list ruby
/usr/bin/ruby2.1
/usr/bin/ruby2.2

バージョンの切り替え
以下は2.1から2.2へ変更している

sudo update-alternatives --config ruby
There are 2 choices for the alternative ruby (providing /usr/bin/ruby).

  Selection    Path              Priority   Status
------------------------------------------------------------
* 0            /usr/bin/ruby2.1   51        auto mode
  1            /usr/bin/ruby2.1   51        manual mode
  2            /usr/bin/ruby2.2   51        manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/ruby2.2 to provide /usr/bin/ruby (ruby) in manual mode
update-alternatives: warning: skip creation of /usr/bin/testrb because associated file /usr/bin/testrb2.2 (of link group ruby) doesn't exist

参考: 通常使用するRubyのバージョンを変更する – Ubuntu 12.04

,