スポンサードリンク

前置き

今、大都会界隈で盛り上がってるソーシャルダイエットサービス #daitokaiet
私も使っているのですが、これ「測るだけダイエット」になりますね。
このサービス、体重を入力しますが、体重は公開されず、目標体重との差分のみ表示されるので、あまり恥ずかしくないかと思います。

この #daitokaiet ですが、このサービスのソースコードがソーシャルコーディングサイトで有名なSNSであるGitHubに公開されています。(daitokaietのリポジトリ

本題

さて、このdaitokaiet、欲しい機能があれば自分で開発すれば、その機能を取り込んでもらえますので、CentOSで開発環境を作成してみました。

試した環境
OS : CentOS 6.4 x64 (CnetOS 6.5でもよいと思いますが、私は確認していません)

※この手順ではRVM(Ruby Version Manager)を使ってRubyをインストールするところも含めていますので、rbenv派な方やソースからコンパイルする方は自力でお願いします。

  1. daitokaietの開発環境を動作させるユーザを作成
  2. 今回の場合はdaitokaietの開発環境を動作させるユーザをdaitokaietdeveloperとしています

    $ su -
    # useradd daitokaietdeveloper
    

    ※必要であればdaitokaietdeveloperユーザのパスワードを設定する

    # passwd daitokaietdeveloper
    
  3. RVMをdaitokaietdeveloperユーザで使えるようにグループの設定
  4. # groupadd rvm
    # usermod -a -G rvm root
    # gpasswd -a daitokaietdeveloper rvm
    
  5. RVMのインストール
  6. # bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
    
  7. RVMでRuby 2.0.0をインストール
  8. # source /etc/profile.d/rvm.sh
    # rvm install 2.0.0
    # rvm use 2.0.0 --default
    
  9. 今後.rvmrcが設置されたフォルダでは設定を自動で許可するようにする。
  10. # vi /etc/rvmrc
    

    で、/etc/rvmrcファイルを開き、下記の内容を追記する

    rvm_trust_rvmrcs_flag=1
    
  11. bundlerをインストール・・・しない
  12. ここでbundlerと呼ばれるrubyのパッケージの依存関係を解決するパッケージをインストールしたいところですが、RVMでRubyをインストールした場合はすでに入っているようなので、gem install bundlerはしません。

    補足
    rbenvやソースコードからrubyをインストールした場合はgem install bundlerしてください。

  13. epelリポジトリを無効化する(したい場合は)
  14. rvm install 2.0.0の際にlibyaml-develパッケージのインストールがされますが、このときにlibyaml-develのパッケージリポジトリであるepelリポジトリがyumに登録され有効化されているので無効化して他のパッケージに影響を与えないようにします。

    # vi /etc/yum.repos.d/epel.repo
    

    で、/etc/yum.repos.d/epel.repoファイルを開き、enabled=1 を enabled=0に変更します。

  15. daitokaietで使うPostgreSQL9.3をインストール
  16. CentOS6系の標準でインストールできるPostgreSQLは古いので、標準のではなく、最新版の9.3をインストールします。

    # LANG_OLD=${LANG}
    # export LANG=C
    # yum install http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-1.noarch.rpm
    # yum install postgresql93-server postgresql93-devel
    # service postgresql-9.3 initdb
    # service postgresql-9.3 start
    # chkconfig postgresql-9.3 on
    # export LANG=${LANG_OLD}
    
  17. daitokaietdeveloperユーザがPostgreSQLを使えるように設定する
  18. # su - postgres
    -bash-4.1$ createuser -d daitokaietdeveloper
    -bash-4.1$ exit
    
  19. daitokaietdeveloperユーザに変更して、daitokaietのソースをダウンロードしてインストールする
  20. # su - daitokaietdeveloper
    $ git clone https://github.com/daitokai/daitokaiet.git
    $ cd daitokaiet
    $ bundle config build.pg --with-pg-config=/usr/pgsql-9.3/bin/pg_config
    $ bundle install
    

    ※「$ git clone https://github.com/daitokai/daitokaiet.git」の箇所はdaitokaietのリポジトリをフォークした場合はそのリポジトリに変更してください。
    ※「$ bundle config build.pg --with-pg-config=/usr/pgsql-9.3/bin/pg_config」の部分は今回はCentOS標準ではないバージョンのPostgreSQL9.3をインストールしたため、「pg_config」の場所を設定する必要があります。

  21. データベースを構築
  22. $ cp config/database.yml{.sample,}
    $ bundle exec rake db:setup
    
  23. Twitter連携用の環境変数を.rvmrcに設定する
    1. ブラウザでhttps://dev.twitter.com/appsにアクセスして、連携アプリの登録をします
    2. 「Create a new application」ボタンから以下の入力をします。

      Name: はアプリ名
      Description: はアプリの説明
      Website: はWebsiteのURL 今回は「http://<開発環境のIPアドレスまたはホスト名>:3000/」でよい
      Callback URL: は認証後に移動したいURL 今回は「http://<開発環境のIPアドレスまたはホスト名>:3000/users/auth/twitter」でよい
      Developer Rules Of The Roadを読んで下の「Yes, I agree」のチェックボックスにチェックを入れる
      CAPTCHAの2つの数字を入力する

    3. Create your Twitter appplicationボタンを押してアプリ登録をする
    4. アプリ用の登録ができたので設定を変更する
    5. settingタブをクリックします。
      Application Typeを「Read, Write and Access direct messages」に変更し、
      Allow this application to be used to Sign in with Twitterにチェックを付けます

      Update this Twitter application's steeingsボタンを押して設定の変更を確定します。

    6. Detailsタブをクリックして、OAuth settingsのConsumer keyとConsumer secretをメモる
    7. このメモった2つのキーを環境変数に設定する
      • Consumer keyをTWITTER_KEYという環境変数に入れておく
      • Consumer secretをTWITTER_SECRETという環境変数に入れておく

      ために ~/.rvmrc を以下のように設定を追記する(なければ作成する)

      $ vi ~/.rvmrc
      

      で、~/.rvmrcファイルを開き、以下を追記します。

      export TWITTER_KEY=<メモったConsumer key>
      export TWITTER_SECRET=<メモったConsumer secret>
      
  24. ~/.rvmrcを読み込む
  25. $ source ~/.rvmrc
    
  26. 起動する
  27. $ bundle exec rails s
    

    エラーなく起動できればOKです。

  28. 確認する
  29. ブラウザから「http://<開発環境のIPアドレスまたはホスト名>:3000/」にアクセスしてページが見えることを確認します。
    「Twitterでログイン」からTwitter認証でログインできることを確認します。
    ※ログインするとログインしたTwitterアカウントでつぶやかれます。呟きたくない場合はNO_TWEETという環境変数を設定してけばツイートされません(development環境のみ)

ここまで終われば、開発環境の構築は完了です。

あとはソースを変更して自分の好きなように機能を追加していけます。
GitHubの自分のアカウントに一旦forkして自分のリポジトリ上で機能追加をcommitしたら、daitokai/daitokaietにpull requestを投げてみましょう。マージしてくれるかもしれませんよ。

レッツソーシャルコーディング!

補足・・・

  • RVMでrubyインストール時に必要なパッケージのインストールの手順がありませんが、rubyのインストール時のrvm install 2.0.0コマンド実行時に、自動的に必要なパッケージをインストールしてくれるので、書いておりません。
  • daitokaietは ruby + ruby on railsを使用したサービスですので、ruby on railsのインストールが必要ですが、bundle installで必要なパッケージがインストールされる際にRuby on Railsもインストールされますので、gem install railsコマンドを実行しなくてもよいです。

参考にしたサイト

最後に

今回、初めてRubyの開発環境を構築しました。そこで、調べてやってみて、記事をまとめる中で疑問があったらTwitterに投げると、答えてくれた大都会の方々、本当にありがとうございました。
また、追加したい機能があったのでdaitokaietのコードを修正して、Pull Requestしたらマージされました。一応、今年中にRubyに触る、始めるというのは達成されました。

スポンサードリンク