はじめに

はいさい!沖縄支店の石原です。 「はいさい」というのは沖縄の方言で「こんにちは」というそうです。ググりました。
sudo gem install capistrano
「Capistrano インストール」で検索をすると、HITした記事の冒頭は大抵このコマンドから始まります。 もしくは、「インストール後の簡単な設定」から書かれている記事も見られます。


記事を読んでいるとすぐ設定できそうな気がしますが、実際にインストールしようとするとうまくいかないことがあります。そもそも、そのコマンド叩いたらエラーがでるのですが...
Rubyがインストールされていない場合は、Rubyとその他必要そうなものを調べて、
自分でインストールしておいてください。


...はい。
そんなわけで、第一回となる今回は、一番最初に書いたコマンドにたどり着くために躓いたことをご紹介したいと思います。

まず結論から

  1. capistranoをインストールしたいサーバのrubyのバージョンを確認する(2系以降を推奨)
  2. rubyのインストールはユーザ単位となるので、問題がないのであればシステムワイドにインストールする

この2点をすでにクリアしている方は今回の記事を読む必要はないかもしれません。
お時間のあるときに、僕のあたふたしている様を想像しながら読んでいただければ幸いです。


Capistranoを無事インストールするまで

sudo gem install capistrano

今回導入しようとした環境で上記のコマンドを叩くと、こんな感じのエラーが出ました。

err1

net-sshのバージョンの都合かもしれないので、先にnet-sshのバージョンを指定してインストール。

gem install net-ssh -v 2.9.2


リトライしても同じエラーになるため、rubyのバージョンを確認することにしました。


ruby -v


↓結果↓
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]

capistrano3の公式サイトを見てみるとrubyのバージョンについては以下の通り書かれています。

Capistrano is bundled as a Ruby Gem. It requires Ruby 2.0 or newer.

どうやらrubyのバージョンが古いようなので、rubyの更新から。

yum install centos-release-SCLなるものをインストールしたほうが簡単らしいので、試してみました。


実際に試してみたコマンドは次の通り。

sudo yum install centos-release-SCL
sudo yum install ruby193
sudo scl enable ruby193 bash

再度バージョンを確認。

ruby 1.9.3p484 (2013-11-22) [x86_64-linux]

1.9.3にバージョンが上がったようなので、capistranoのインストールを再度試してみます。

err2


...デジャブ感あります。


調べてみると、どうやらrubyのバージョンはユーザ単位。

root権限のユーザのrubyが変更になっていないようでした。


このまま行ってもまた躓きそうなので、以前rubyのインストールで参考にした
CentOS/RHEL に Ruby 2.x をインストールする という記事内容を元に
再度インストールすることにしました。


cd /opt
git clone git://github.com/sstephenson/rbenv.git
mkdir /opt/rbenv/plugins
cd /opt/rbenv/plugins
git clone git://github.com/sstephenson/ruby-build.git
yum install gcc make openssl-devel libffi-devel
/etc/profile に以下の行を追加する

export RBENV_ROOT="/opt/rbenv"
export PATH="${RBENV_ROOT}/bin:${PATH}"
eval "$(rbenv init -)"


シェルを再起動し、変更を有効にします。

exec -l $SHELL
rbenv install 2.1.10
rbenv global 2.1.10
※バージョンは当時参考にしていたcapistranoのインストール記事に併せて、2.1.10にしています。
ここまでくると自分が何をしたかったのか忘れつつありますが、
問題なくインストールできたようなのでcapistranoのコマンドをリトライ。


err3


....(´・_・`)

最終的に、こちらの記事を参考にrbenvをシステムワイドにインストールすることで
無事にインストールすることができました。

以下は参考にさせていただいた記事の抜粋となります。

sudo visudo -f /etc/sudoers.d/00_base
上記のファイル(なければ作成)に下記の2行を追加します。
Defaults !secure_path
Defaults env_keep += "PATH RBENV_ROOT"
export のパス設定などはすでにrbenv, ruby-buildをインストールしていたため、
インストール先に合わせて設定を行いました。


おわりに

capistranoを初めてインストールしたときは動かすまでに時間が掛かりましたが、

一通り設定すると以降の運用がかなり楽になります。


capistranoをインストールした後の設定などについては、別の記事でまた改めて紹介します。



第2回の記事はこちら