今、大都会界隈で盛り上がってるソーシャルダイエットサービス #daitokaiet 。
私も使っているのですが、これ「測るだけダイエット」になりますね。
このサービス、体重を入力しますが、体重は公開されず、目標体重との差分のみ表示されるので、あまり恥ずかしくないかと思います。
この #daitokaiet ですが、このサービスのソースコードがソーシャルコーディングサイトで有名なSNSであるGitHubに公開されています。(daitokaietのリポジトリ)
さて、このdaitokaiet、欲しい機能があれば自分で開発すれば、その機能を取り込んでもらえますので、CentOSで開発環境を作成してみました。
試した環境
OS : CentOS 6.4 x64 (CnetOS 6.5でもよいと思いますが、私は確認していません)
※この手順ではRVM(Ruby Version Manager)を使ってRubyをインストールするところも含めていますので、rbenv派な方やソースからコンパイルする方は自力でお願いします。
今回の場合はdaitokaietの開発環境を動作させるユーザをdaitokaietdeveloperとしています
$ su - # useradd daitokaietdeveloper
※必要であればdaitokaietdeveloperユーザのパスワードを設定する
# passwd daitokaietdeveloper
# groupadd rvm # usermod -a -G rvm root # gpasswd -a daitokaietdeveloper rvm
# bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
# source /etc/profile.d/rvm.sh # rvm install 2.0.0 # rvm use 2.0.0 --default
# vi /etc/rvmrc
で、/etc/rvmrcファイルを開き、下記の内容を追記する
rvm_trust_rvmrcs_flag=1
ここでbundlerと呼ばれるrubyのパッケージの依存関係を解決するパッケージをインストールしたいところですが、RVMでRubyをインストールした場合はすでに入っているようなので、gem install bundlerはしません。
補足
rbenvやソースコードからrubyをインストールした場合はgem install bundlerしてください。
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に変更します。
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}
# su - postgres -bash-4.1$ createuser -d daitokaietdeveloper -bash-4.1$ exit
# 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」の場所を設定する必要があります。
$ cp config/database.yml{.sample,} $ bundle exec rake db:setup
「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つの数字を入力する
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ボタンを押して設定の変更を確定します。
ために ~/.rvmrc を以下のように設定を追記する(なければ作成する)
$ vi ~/.rvmrc
で、~/.rvmrcファイルを開き、以下を追記します。
export TWITTER_KEY=<メモったConsumer key> export TWITTER_SECRET=<メモったConsumer secret>
$ source ~/.rvmrc
$ bundle exec rails s
エラーなく起動できればOKです。
ブラウザから「http://<開発環境のIPアドレスまたはホスト名>:3000/」にアクセスしてページが見えることを確認します。
「Twitterでログイン」からTwitter認証でログインできることを確認します。
※ログインするとログインしたTwitterアカウントでつぶやかれます。呟きたくない場合はNO_TWEETという環境変数を設定してけばツイートされません(development環境のみ)
ここまで終われば、開発環境の構築は完了です。
あとはソースを変更して自分の好きなように機能を追加していけます。
GitHubの自分のアカウントに一旦forkして自分のリポジトリ上で機能追加をcommitしたら、daitokai/daitokaietにpull requestを投げてみましょう。マージしてくれるかもしれませんよ。
今回、初めてRubyの開発環境を構築しました。そこで、調べてやってみて、記事をまとめる中で疑問があったらTwitterに投げると、答えてくれた大都会の方々、本当にありがとうございました。
また、追加したい機能があったのでdaitokaietのコードを修正して、Pull Requestしたらマージされました。一応、今年中にRubyに触る、始めるというのは達成されました。
RSSを取得する