[groonga-dev,04564] rroongaがRubyInstaller2.4(x64)で動かない

Back to archive index

ongaeshi ongae****@gmail*****
2018年 1月 22日 (月) 23:01:22 JST


ご無沙汰しております、おんがえしです。

久しぶりにWindowsのRuby環境を更新しようと思い
最新のRubyInstallerで Ruby 2.4.3-1 (x64) をインストールしました。

rroonga 7.0.2 のインストールには成功したのですが、
require "rroonga"しようとすると実行時エラーとなりました。

---

$ ruby -v
ruby 2.4.3p205 (2017-12-14 revision 61247) [x64-mingw32]

rroongaのインストールには成功する。

$ gem install rroonga
$ gem list
rroonga (7.0.2 x64-mingw32)

しかし実行するとgroonga.soが見つからないといわれる。

$ ruby -r "rroonga" -e ""
C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in
`require': cannot load such file -- groonga.so (LoadError)
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in
`require'
   from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/rroonga-7.0.2-x64-mingw32/lib/groonga.rb:46:in
`rescue in <top (required)>'
   from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/rroonga-7.0.2-x64-mingw32/lib/groonga.rb:42:in
`<top (required)>'
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in
`require'
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in
`require'
   from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/rroonga-7.0.2-x64-mingw32/lib/rroonga.rb:16:in
`<top (required)>'
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:133:in
`require'
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:133:in
`rescue in require'
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:39:in
`require'

lib以下を見ると2.4が存在しない。

$ ls /c/Ruby24-x64/lib/ruby/gems/2.4.0/gems/rroonga-7.0.2-x64-mingw32/lib/
2.1  2.2  2.3  groonga  groonga.rb  rroonga.rb

rroonga-6.1.3-x64-mingw32

試しに一つ前のメジャーバージョンに戻る。

$ gem install rroonga -v 6.1.3 --platform x64-mingw32
$ gem uninstall rroonga -v 7.0.2

しかし同様のエラー。ただしlib/2.4が存在していた。

$ ruby -r "rroonga" -e ""
C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in
`require': cannot load such file -- groonga.so (LoadError)
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in
`require'
   from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/rroonga-6.1.3-x64-mingw32/lib/groonga.rb:46:in
`rescue in <top (required)>'
   from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/rroonga-6.1.3-x64-mingw32/lib/groonga.rb:42:in
`<top (required)>'
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in
`require'
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in
`require'
   from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/rroonga-6.1.3-x64-mingw32/lib/rroonga.rb:16:in
`<top (required)>'
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:133:in
`require'
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:133:in
`rescue in require'
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:39:in
`require'

ここまでの情報をもとにgroonga-dev MLに質問してみよう。

おんがえし (id:tuto0621) 17分前

広告を非表示にする
コメントを書く
2018-01-21

WindowsのRuby開発環境を整える

開発環境

前回でmsys2のインストールに成功したので、次はWindowsのRuby開発環境を整えることにする。せっかくなので最新のRuby2.5を入れてみる。

RubyInstaller2でWindows環境にRuby 2.4 + Rails 5.0.2をインストールする - Qiita

手順

古いRubyが入っていたのでアンインストール
rubyinstaller-2.5.0-1-x64.exeをダブルクリック
デフォルトの外部エンコーディングをUTF-8にするオプションがあったのでONに(もうSJISのテキストはあまり無いだろう・・)
インストール終了後に開発キットのインストール画面に移動
msys2のインストールはすでに済んでいるので3を選択

無事インストールされているか確認する。

$ ruby --version
ruby 2.5.0p0 (2017-12-25 revision 61468) [x64-mingw32]

Gemのインストール

早速Milkodeをインストール。

$ gem install milkode
ERROR:  Error installing milkode:
        The last version of rroonga (>= 1.1.0) to support your Ruby &
RubyGems was 7.0.2. Try installing it with `gem install rroonga -v
7.0.2` and then running the current command again
        rroonga requires Ruby version < 2.5, >= 2.1. The current ruby
version is 2.5.0.
Successfully installed highline-1.7.10
Successfully installed termcolor-1.2.1
Successfully installed pkg-config-1.2.9
Successfully installed gqtp-1.0.6
Successfully installed groonga-command-1.3.4
Successfully installed json-stream-0.2.1
Successfully installed groonga-command-parser-1.1.2
Successfully installed hashie-3.5.7
Successfully installed groonga-client-0.5.8
Successfully installed io-like-0.3.0
Successfully installed archive-zip-0.10.0

rrooongaが2.5だとインストールできない?なんですとー。試しにnokogiriもインストールしてみたら同じエラー。まだちょっと早かったかな・・。

追記: 公式ページ読んだら2.5はgemの問題があるからまだ使うなって書いてあるね・・。

$ gem install nokogiri
ERROR:  Error installing nokogiri:
        The last version of nokogiri (>= 0) to support your Ruby &
RubyGems was 1.8.1. Try installing it with `gem install nokogiri -v
1.8.1`
        nokogiri requires Ruby version < 2.5, >= 2.2. The current ruby
version is 2.5.0.
Successfully installed mini_portile2-2.3.0

Ruby2.4をインストール

改めてrubyinstaller-2.4.3-1-x64.exeをインストール。msys2開発キットのインストールはすでに終わっていたのですぐにインストールが終わった。

$ gem install milkode
$ gem install nokogiri

どちらも無事インストールできた!しかしMilkodeを実行しようとすると動かないエラーが。

$ milk init
C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in
`require': cannot load such file -- groonga.so (LoadError)

groonga.soが見つからないとのこと。試しにfindしてみる。

ongaeshi @ DESKTOP MSYS /c/Ruby24-x64
$ find . -name "groonga.so"
./lib/ruby/gems/2.4.0/gems/rroonga-7.0.2-x64-mingw32/lib/2.1/groonga.so
./lib/ruby/gems/2.4.0/gems/rroonga-7.0.2-x64-mingw32/lib/2.2/groonga.so
./lib/ruby/gems/2.4.0/gems/rroonga-7.0.2-x64-mingw32/lib/2.3/groonga.so

2.1、2.2、2.3は用意されているけど、2.4はもしかしてない?

明日もう少し調べてみよう。

おんがえし (id:tuto0621) 1日前

広告を非表示にする
コメントを書く
2018-01-21

msys2をインストールする

開発環境

新しいWindowsマシンの開発環境を整えるためにmsysをインストールした。WSLだけでなんとかなるかと思ったけど、コマンドラインツールをエディタから起動することができなかったり、特にgitがないのでmagitが起動できないのもあって不便になってきた。Web開発などWSLの方が便利なケースも多々あるため、しばらくは併用で使ってみようと思う。

Windows10の開発環境をMSYS2で再構築 - Qiita

↑に沿ってインストールしてみたけど、pacmanがうまく動かなくなってしまった。最新版で状況が変わっているのかもしれない。

MSYS2 homepage

次は公式に沿ってやってみる。

$ pacman -Syu
$ pacman -Su

うまくいった。WindowsのPATHを引き継ぎたいので環境変数MSYS2_PATH_TYPEにinheritを設定してからシェルを再起動する。

ホームディレクトリがバラバラなので、設定ファイルはそれぞれ独立している。

種類 場所
Windows c:\Users\ongaeshi\AppData\Roaming
msys2 C:\msys64\home\ongaeshi
WSL Windowsから直接触ってはいけない

そのうちホームディレクトリを一か所にまとめた方がよさそうだが、とりあえずはmsy2のホームにもコピーしてしのぐ。

$ cp /c/Users/ongaeshi/AppData/Roaming/.gitconfig ~/

これで、msys2が最低限動くようになった。

おんがえし (id:tuto0621) 1日前

広告を非表示にする
コメントを書く
2018-01-09

RubyPico 0.9.7 をリリース - mruby 1.3 に対応

rubypico

mruby 1.3 に対応したり、Browser.openを連続でできるようにしました - 更新履歴

RubyPico

ongaeshi
仕事効率化
無料

mruby 1.3 に対応

Safe navigation operator (&.)
Array#dig, Hash#dig
Object#freeze
Kernel#caller

詳しくはmruby 1.3.0 releasedをどうぞ。

マルチオープン

URLのリストから複数のウェブページを開いたり、任意のアプリをまとめて起動することができます。

URLS.each do |e|
  Browser.open e
end

以下の動画が分かりやすいと思います。

私はこの機能を使ってクリップボードにコピーした行区切りの買い物リストをまとめてリマインダーに登録しています。超便利です。

インストール

App Storeからどうぞ。

おんがえし (id:tuto0621) 13日前

広告を非表示にする
コメントを書く
2018-01-06

mrubyの文字列をC言語から参照するときはmrb_string_value_ptr()ではなくmrb_string_value_cstr()を使う

src = Clipboard.get.split("\n")

src.each do |e|
  p e
  puts e
  puts
end

みたいなコードを書いているときに、pだと正しく表示されるけどputsだと後ろの文字列が一緒に表示されてしまうときがあった。

# クリップボードの内容は"foo\nbar\nbaz\n"とする
"foo"
foo
bar
baz

"bar"
bar
baz

"baz"
baz

調べていくと、C言語内でmrubyの文字列を参照しているときにmrb_string_value_ptr()を使っているのが原因だった。NULL終端された文字列が確実に欲しいときはmrb_string_value_cstr()を使う必要がある。

Make sure that mrb_string_value_ptr() returns a null-terminated
string. by sdottaka · Pull Request #2673 · mruby/mruby
use mrb_string_value_cstr() instead of mrb_string_value_ptr() · Issue
#9 · iij/mruby-env

慌ててRubyPico全体をgrepして、ひととおりmrb_string_value_cstr()に変更した。結構あったのに、意外とちゃんと動いていてびっくり。

Use mrb_string_value_cstr() instead of mrb_string_value_ptr() ·
ongaeshi/RubyPico @ f1a1264

後でSketchWaltz側も直しておこう。

※ このバグは申請中のRubyPico 0.9.7 で直ります

おんがえし (id:tuto0621) 16日前

広告を非表示にする
コメントを書く
2018-01-05

TiddlyWiki備忘録2018を公開しました

TiddlyWiki

去年に引き続き、TiddlyWiki備忘録の2018年版を作りました。

残念ながらFirefox QuantumでTiddlyFoxプラグインが使えなくなってしまいますが、代わりにTiddlyServerを使うとよいらしいです(私は今はESRを使ってしのいでいます、、がそのうちQuantumに乗り換える予定)。

特徴

ブラウザさえあればどこでも使える
1つのhtmlファイルだけで構成されているので、持ち運びが楽
見出し、リスト、表組、リンク等、単なるテキスト以上の機能を内包する
豊富なプラグインが世界中で開発されている、アップデートも簡単
JavaScriptで作られているのでブラウザの進化に合わせて表現力が上がる。

個人用のメモを作った方がよい理由

以下に書きました。

自分専用のメモを作って簡単に検索出来るようにする

ダウンロード

zipアーカイブ - Releases · ongaeshi/my_tiddlywiki
gitレポジトリ - ongaeshi/my_tiddlywiki - GitHub

zipアーカイブを展開します。memo.htmlが入っているのでブラウザで開いて下さい。

2018年版の特徴

HISTORY.md

ヘッダーの色を水色に

要望や不具合、使ってみた報告など頂けたら、2019年版を作る時の励みになります。

おんがえし (id:tuto0621) 17日前

広告を非表示にする
コメントを書く
2018-01-05

音声入力が素晴らしい

日記

前回の記事で抱負を3つほど書いたので、それを実行するためのシステムを整えることにした。

まずはブログ。最初の入力が億劫になるのが1番の問題なので入力を極力簡単にしたい。そこで最近勝間さんのブログなどで紹介されている音声入力を試してみることにした。Remote
Mouseと言うソフトをiPod
Touchにインストール、ウィンドウズ側にもサーバソフトのインストールが必要だがどちらのインストールもとても簡単だった。これでWindowsにiPod
Touchの音声入力を使って文字が入力できるようになる。

良いアプリなので早速240円のプロ版を購入。プロ版を使うとiPod touchを横向きにして使えたり、ウィンドウズボタンなどの特殊キーも入力できるようになる。

使ってみた感想として音声入力は確かに早い。特に今回のようなブログっぽい話し言葉の文章が並ぶ記事を書くときはかなり高速に入力できる、エッセイ的な文章に向いているだろうか。逆に大量のコードの途中途中に文章が並ぶような記事はあまり効果は無いかもしれない。

音声入力で文章を打ち込みながら音声入力で書けるプログラム言語があったら結構面白いんじゃないかなと思ったり。こういうちょっと思いついたくだらないことはキーボードだと書かないことが多いが音声入力だと割と簡単に入力できるのもとても良い。

次にESLPodを習慣づける方法を考える。やはりどの時間にやるかを決めてしまうのが良さそうなので朝の運動と一緒にまとめて行うことにした。朝起きたら毎朝踏み台昇降運動をすることにしたのだが、それと一緒にESLPodを聴き終わるまで運動も続ける。大体30分位なので踏み台昇降としてもちょうど良い。1つの時間で2つの習慣を実行できるので効率もよい。

最後に自分が欲しいソフトウェアを書くということについては残念ながらまだ良いシステムが思いついていない。しかし作りたいものは2,3個見つかったのでそれを毎日ちょっとずつ書くいていくことにする。

ちなみに、この記事自体もリモートマウスを使って入力している。それなりに誤字脱字があるので後で編集が必要だがこの最初の文章の入力自体は5分もかかっていない。つまり音声入力は素晴らしい。

おんがえし (id:tuto0621) 17日前

広告を非表示にする
コメントを書く
次のページ
ABOUT

iOSのRubyプログラム環境PictRuby、電子書籍検索エンジンHonyomi、FirefoxプラグインFireLinkなどを作っています。

読者になる
86
POPULAR
数万のソースコードから目的の一行を一瞬で見つけ出す、Milkode
自分でプログラム言語を書いてみたい人$ ruby -r "rroonga" -e ""
C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in
`require': cannot load such file -- groonga.so (LoadError)
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in
`require'
   from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/rroonga-7.0.2-x64-mingw32/lib/groonga.rb:46:in
`rescue in <top (required)>'
   from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/rroonga-7.0.2-x64-mingw32/lib/groonga.rb:42:in
`<top (required)>'
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in
`require'
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in
`require'
   from C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/rroonga-7.0.2-x64-mingw32/lib/rroonga.rb:16:in
`<top (required)>'
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:133:in
`require'
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:133:in
`rescue in require'
   from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:39:in
`require'
---

1つ前のrroonga-6.1.3も試してみましたが、
同じくうまく動かないようです。さらに詳細は以下のURLをどうぞ。

http://ongaeshi.hatenablog.com/entry/rroonga-rubyinstaller-2.4

RubyInstallerは2.4から内部でmsys2を使うようになり大きく構造が変わっているようです。旧来のDevKitを使う2.3系なら動くかもしれませんが、
できれば最新版で動かしたいと思っています。

何か情報をお持ちの方はいますでしょうか?
よろしくお願いいたします。

-- 
/******************************************
 ongaeshi
 MAIL:   ongae****@gmail*****
 WEB:   http://ongaeshi.me
 Twitter: http://twitter.com/ongaeshi
 ******************************************/



groonga-dev メーリングリストの案内
Back to archive index