2015/11/10

[作業記録]Mikutter on JRuby on Debian 環境構築手順メモ

目次

環境

  • OS: Debian 8 minimal インストールから、ssh, sudo をインストールした状態。

手順

### 必要なパッケージのインストール
sudo aptitude update
sudo aptitude install git default-jdk

### jruby の準備(apt のパッケージが古くて?gem install に失敗するため、新しいのを持ってくる)
mkdir develop
cd develop
wget https://s3.amazonaws.com/jruby.org/downloads/9.0.3.0/jruby-bin-9.0.3.0.tar.gz
tar zxfv jruby-bin-9.0.3.0.tar.gz
PATH=$PATH:~/develop/jruby-9.0.3.0/bin/

mkdir -p ~/project
cd ~/project
git clone git://toshia.dip.jp/mikutter.git
cd mikutter

### プラグイン調整開始
cd core/plugin

# 不要なプラグインを削除
rm -rf achievement activity alsa aspectframe bitly bugreport change_account command console direct_message display_requirements extract followingcontrol gtk gui home_timeline image_file_cache libnotify list list_for_profile list_settings mentions notify openimg photo_support profile proxy ratelimit saved_search search set_input set_view settings shortcutkey skin smartthread sound user_filesystem_cache

# CUI で streaming が有効になるように、依存関係から gui を外す
sed -e "s/  - gui//g" streaming/.mikutter.yml > streaming/.mikutter.yml_; mv streaming/.mikutter.yml_ streaming/.mikutter.yml

# CUI 用のプラグインを入れる
mkdir -p ~/.mikutter/plugin
cd ~/.mikutter/plugin
git clone git://github.com/mikoto2000/mikutter_stdout.git stdout
git clone git://github.com/mikoto2000/mikutter_cui_account_register.git cui_account_register

### 実行
cd ~/project/mikutter
jruby -S gem install bundle
jruby -S bundle install --path=vendor/bundle
jruby -S bundle exec jruby mikutter.rb

2015/11/09

[Mikutter][JRuby][作業記録]Mikutter を JRuby で動かしたい

環境

MSYS2 で構築した環境上で動作確認を行った。

  • OS: Windows8.1
  • Shell: bash on MINGW64
  • Java: Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
  • Ruby: jruby 9.0.3.0 (2.2.2) 2015-10-21 633c9aa Java HotSpot(TM) 64-Bit Server VM 25.51-b03 on 1.8.0_51-b16 +jit [Windows 8.1-amd64]
  • Mikutter: 3.2.9

Consumer Key, Consumer Secret を変更する

GUI を変えたらそれはもう Twitter クライアントとしての Mikutter ではないので、 Consumer Key, Consumer Secret を変更する。

# TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET を自分で用意したものに修正する。
vim /PATH/TO/MIKUTTER/core/config.rb

Twitter への認証を済ませる

GUI のあるうちに Twitter への認証を済ませる。 CUI でのやり方わからんかった...。

GUI 的なプラグインを特定、削除

find/grep して gui とか gtk に依存しているものを削除。

$ find ./ -name Gemfile -print0 | xargs -0 grep nokogiri
./core/plugin/photo_support/Gemfile:gem 'nokogiri'

$ find ./ -name \*yml -print0 | xargs -0 grep gui
バイナリファイル ./core/plugin/achievement/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/activity/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/command/.mikutter.yml に一致しました
./core/plugin/console/.mikutter.yml:  - gui
バイナリファイル ./core/plugin/direct_message/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/display_requirements/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/extract/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/followingcontrol/.mikutter.yml に一致しました
./core/plugin/gtk/.mikutter.yml:  - gui
バイナリファイル ./core/plugin/gui/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/home_timeline/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/list_for_profile/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/list_settings/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/mentions/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/profile/.mikutter.yml に一致しました
./core/plugin/ratelimit/.mikutter.yml:  - gui
バイナリファイル ./core/plugin/saved_search/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/search/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/settings/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/shortcutkey/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/smartthread/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/streaming/.mikutter.yml に一致しました

$ find ./ -name \*yml -print0 | xargs -0 grep gtk
./core/plugin/aspectframe/.mikutter.yml:  - gtk
バイナリファイル ./core/plugin/bugreport/.mikutter.yml に一致しました
./core/plugin/gtk/.mikutter.yml:slug: :gtk
バイナリファイル ./core/plugin/image_file_cache/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/openimg/.mikutter.yml に一致しました
バイナリファイル ./core/plugin/profile/.mikutter.yml に一致しました
./core/plugin/proxy/.mikutter.yml:  - gtk

# find/grep に引っかからなかったけどこの辺もっぽいので削除
# skin
# sound
# set_view
# set_input
# notify
# change_account
# list
# aspectframe

必要な gem の準備

jruby の -S オプションで bundle install できる。

$ jruby -S bundle install --path vendor
Fetching gem metadata from https://rubygems.org/............
Fetching version metadata from https://rubygems.org/..
Resolving dependencies...
Installing rake 10.4.2
Installing addressable 2.3.8
Installing safe_yaml 1.0.4
Installing crack 0.4.2
Installing delayer 0.0.2
Installing locale 2.1.2
Installing text 1.3.1
Installing gettext 3.0.9
Installing hashdiff 0.2.3
Installing json_pure 1.8.3
Installing power_assert 0.2.5
Installing test-unit 3.1.5
Installing memoize 1.3.1
Installing metaclass 0.0.4
Installing mocha 0.14.0
Installing moneta 0.8.0
Installing oauth 0.4.7
Installing ruby-hmac 0.4.0
Installing typed-array 0.1.2
Installing watch 0.1.0
Installing webmock 1.22.3
Using bundler 1.10.6
Bundle complete! 14 Gemfile dependencies, 22 gems now installed.
Bundled gems are installed into ./vendor.

実行

warning 出るけど一応メッセージ受信はできるようだ。

$ jruby -S bundle exec jruby ./mikutter.rb
uri:classloader:/jruby/kernel/kernel.rb:17: warning: unsupported exec option: close_others
C:/msys64/home/mikoto/project/mikutter/core/message.rb:417: warning: undefining `__id__' may cause serious problem
▒w▒肳▒ꂽ▒p▒X▒▒▒▒▒▒▒▒܂▒▒▒B
【mikoto2000】@mikoto2000 もろもろプラグインを最新化したら治った...。なんだったんだろうか。
【mikoto2000】@mikoto2000 vim のカレントディレクトリを java プロジェクトのルートに移動しておかないといけないみたいだ。カレントディレクトリを移動しない設定にしてるのがまずいみたい。うーん...。
...(snip)

Ctrl+C で終了しても、裏で java が動き続けるみたい。これはどうしたものか。