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