[FreeBSD-users-jp 95662] Re: taglib-ruby で 0 is not a class/module (TypeError)
内藤祐一郎
naito.yuichiro @ gmail.com
2016年 2月 4日 (木) 15:13:30 UTC
こんばんは、内藤です。
TagLibは使ったことないのですが、
> uninitialized constant DL::Importable
とでるあたりから察するに Ruby 1.8 でしかサポートされていない
クラスを Taglib が使用してるのではないかと思います。
Centos のどのバージョンをお使いかは分かりませんが、
Centos 6 ならば ruby 1.8 が入っていますので、
この推測が正しければ Taglib は動作するだろうと思います。
FreeBSD で ruby 2.1 に切り替えたら、
ruby の互換性の問題で動かなくなったように思います。
同じことは Centos 7 に上げても起こると思いますので、
Taglib を別のライブラリで置き換えるか、Taglib 自体を修正するかを
したほうが良いのではないかと思います。
2016年2月4日 11:43 KAWAMATA Fumio <fumio at next.matrix.jp>:
> こんにちは。川又と申します。
>
> CentOSの環境上で動作している、taglibを用いたRubyスクリプトを
> Freebsd環境に移植しようとしていて、つまづいております。
>
> Freebsdの環境は、Freebsd 10.2、ruby 2.1.8p440、ruby21-taglib-1.1_1、
> taglib-1.10です。(ruby21-taglibとtaglibはportsからインストール)
>
> 自作スクリプト依存の切り分けのために、
> https://robinst.github.io/taglib-ruby/ にある Format-specific API
> のスクリプトのmp3ファイル名部分のみ変更してテストしてみたのですが、
>
> DL is deprecated, please use Fiddle
> /usr/local/lib/ruby/site_ruby/2.1/taglib.rb:40:in `<module:TagLib>':
> uninitialized constant DL::Importable (NameError)
>
> というワーニングとエラーが表示されます。
>
> /usr/local/lib/ruby/site_ruby/2.1/taglib.rb
> の、
> extend DL::Importable
> を
> extend DL::Importer
> に変更して実行すると、
>
> DL is deprecated, please use Fiddle
> ./specific.rb:7:in `<main>': 0 is not a class/module (TypeError)
>
> となります。
>
> エラー行は、
> TagLib::MPEG::File.open("hoge.mp3") do |file|
> なのですが、このあと、どこを修正すれば良いのか分からない状況
> です。
>
> 対処法をご存知の方がいらっしゃいましたらご教示いただけない
> でしょうか?
>
> よろしくお願いします。
>
>
> _______________________________________________
> freebsd-users-jp at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
> To unsubscribe, send any mail to "freebsd-users-jp-unsubscribe at freebsd.org
> "
>
--
内藤 祐一郎(naito.yuichiro at gmail.com)
freebsd-users-jp メーリングリストの案内