georubyのバグ?
問題事象
2019年5月頃、cygwin-rubyのバージョンアップ 2.3.6->2.6.3 を実施した。
その影響からか、geo_ruby のshp読み込みができなくなっていた。
/usr/share/gems/gems/dbf-4.1.2/lib/dbf/table.rbの中で、以下の定義があるが、
header_length がnilのため、計算できない。というようなことである。
def seek(offset) # :nodoc:
@data.seek(header_length + offset)
end
解決策?
これを、以下のように書き換えてみた。
def seek(offset) # :nodoc:
header_length=header.header_length #append
@data.seek(header_length + offset)
end
これで正しいか、どうか、よくわからないが、今のところ、問題無い。
また、問題があれば、修正することとしよう。
R05.08.25加筆
dbf4.2.4 をインストールしたマシンで、同様のことをしても、うまく動かなかった。
仕組みよくわからなかったが、dbf 4.1.2 をインストールしなおせば、うまく動いた。
R05.09.14加筆
なんか、gdal のインストールを試みて、うまくいかなかったのが原因か、
動いていたはずの、georubyが無くなっていた。
またgeorubyを入れる。georubyはインストールできたが、
dbfは4.2.4で失敗し、-v 4.1.2にしてももできない。なんだかな~。
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /home/USER/bin directory.
こんなエラーは初めてだ。
たしかに、binは、linuxドライブをつないでいて、パーミッションは特殊かも。
で、chmod 777にしてやると、4.1.2をインストールできた。
しかし、動いていたはずのプログラムは動かない。
変なもの入れようとしたためか、ライブラリがおかしくなってしまったようだ。
そろそろ、pythonに乗り換えるかな~。
でも、それはそれで大変だよな~。