@eitantanをDigital Oceanで動かすまでのメモ

  • sshで入れるところまでは済んでいるとする
  • ログインするには ssh root@xx.xx.xx.xx
  • ローカルからファイルUPのために、scp -r eitantan root@xx.xx.xx.xx:~
  • サーバには最初からruby 2.0が入っていた
  • サーバで yum -y install gcc mysql-devel ruby-devel rubygems したあとに gem install twitter
  • 実行してみると文字コードが変。ローカルで文字コードを確認するには(Mac) file --mime * →日本語のテキストでregexpエラー
  • nkfで判定してみる brew install nkf →エラー。原因はYosemite。 brew.rbをちょっと書き換える http://qiita.com/sue738/items/7ab03ecc9f6fcf37408d
  • brew install nkf まだだめ。brew update →エラー。Mergeがなんちゃら。上のURLを参考に下記コマンド実行し、brew install nkf →成功
cd $(brew --repository)
git fetch origin
git reset --hard origin/master
  • 文字コード判定。nkfだとエラーにならず判定できた。nkf -g *
config.rb: ASCII
search_word.txt: UTF-8
tweet_test.rb: UTF-8
word_list.txt: UTF-8
  • config.rbもUTF-8に揃えたい。nkf -w config.rb > config.rb →変わらずASCII・・・
  • サーバ側でもnkfで判定してみるか。yum install nkf →失敗したので検索して入れた
CentOS7のbaseリポジトリには、nkfが含まれていなかったため、CentOS6のbaseリポジトリからインストール。特に問題なく動作した。
yum localinstall -y http://mirror.centos.org/centos/6/os/x86_64/Packages/nkf-2.0.8b-6.2.el6.x86_64.rpm
  • サーバ側でnkf 問題なさそう
config.rb:ASCII (LF)
search_word.txt:UTF-8 (LF)
tweet_test.rb:UTF-8 (LF)
word_list.txt:UTF-8 (LF)
  • rubyでツイートコードを実行すると変わらずエラー。`gsub': invalid byte sequence in US-ASCII (ArgumentError)
$echo $LANG 
ja_JP.UTF-8
両環境ともこの設定
  • これでいけた!-Kuオプションかー
ruby -Ku tweet_test.rb
*/1 * * * * ruby -Ku ~/eitantan/tweet_test.rb
  • 1分毎に自動実行されていることを確認してから、15分毎に変更
  • TwitterのAPI制限は15分毎に解除されるので、その中で収まるように、非アクティブユーザのアンフォローも動かす
  • 15分後に確認、と思ったらちょうど45分すぎだったので実行されていた。Following数が減ったことも確認した。あとはたまにeitantanで検索して評判を見よう。サーバで動かすまでの作業Done.