川又です。 その通りでした。gemとpkgを取り違えてました。 お騒がせして申し訳ありませんでした。
On Fri, 5 Feb 2016 16:40:40 +0900 OGINO Tetsuo <tog...@port.kobe-u.ac.jp> wrote: > > 荻野です. > > ruby-taglib を使ったことがないので,的外れな回答かもしれ > ませんが,FreeBSD の ports にある ruby21-taglib は > > http://www.hakubi.us/ruby-taglib/ > にて配布されている tablib.rb をインストールしています. > > 一方, > >> https://robinst.github.io/taglib-ruby/ にある Format-specific API > >> のスクリプトのmp3ファイル名部分のみ変更してテストしてみたのですが、 > > https://robinst.github.io/taglib-ruby/ > にて配布されている tablib.rb とは,中身が全く別物のよう > ですが,どうでしょう. > > ruby-taglib の README には > ---- > require 'taglib' > > file = TagLib::File.new('test.mp3') > puts "Old title: #{file.title}" > > file.title = "New title" > file.save > file.close > ---- > というサンプルが記載されています. > > TagLib::MPEG というモジュールは使っていませんし,そのような > 定義はどこにも見当たりません. > > >> TagLib::MPEG::File.open("hoge.mp3") do |file| > >> ./specific.rb:7:in `<main>': 0 is not a class/module (TypeError) > > これは TagLib::MPEG が未定義なので,TagLib::MPEG::File という > クラスを探すことはできないです,というエラーかと思います. > > CentOS からの移行を考えるのであれば,ports にある ruby21-taglib > ではなく,https://robinst.github.io/taglib-ruby/ こちらを > gem を使ってインストールした方がよろしいのではないかと思います. > > On 2016/02/05 15:18, KAWAMATA Fumio wrote: > > 川又です。 > > > > 内藤さん、えぐちさん、レスありがとうございました。 > > > > (なぜかMLからのメールが届かないので、自分のメールにつなげる > > かたちでリプライします) > > > >> DL::Importable を DL::Importer に変えると直りませんか? > > > > ワーニングはそのままで、エラーメッセージが変わりました。 > > (メッセージは、最初のメールのとおり) > > > > require 'dl' > > require 'dl/import' > > extend Dl::Importer > > > > のdl、Dlをfiddle、Fiddleに変更すると、このワーニングは表示 > > されなくなるのですが、エラーメッセージは消えません。 > > > >> Centos のどのバージョンをお使いかは分かりませんが、 > >> Centos 6 ならば ruby 1.8 が入っていますので、 > >> この推測が正しければ Taglib は動作するだろうと思います。 > >> FreeBSD で ruby 2.1 に切り替えたら、 > >> ruby の互換性の問題で動かなくなったように思います。 > >> > >> 同じことは Centos 7 に上げても起こると思いますので、 > >> Taglib を別のライブラリで置き換えるか、Taglib 自体を修正するかを > >> したほうが良いのではないかと思います。 > > > > 情報を出し惜しみしていてすみません。現在スクリプトが動作して > > いる環境は CentOS 6.4 + ruby 2.0.0p195です。 > > CentOS 7.2を新規にセットアップしてスクリプトを実行してみた > > ところ、正常に動作しました。(Rubyのバージョンは2.0.0p598。 > > 普通にyum installしたので、CentOS 7.2標準のバージョンです。) > > > > 自分のスキルからするとTaglib自体の修正は敷居が高いですが、 > > OSをCentOSからFreeBSDに切り替えたいので、さらに調べてみます。 > > > > ありがとうございました。 > > > > > > On Thu, 04 Feb 2016 11:43:01 +0900 > > KAWAMATA Fumio <fu...@next.matrix.jp> wrote: > > > >> こんにちは。川又と申します。 > >> > >> 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@freebsd.org mailing list > >> https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp > >> To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org" > > > _______________________________________________ > freebsd-users-jp@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp > To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org" -- KAWAMATA Fumio <fu...@next.matrix.jp> _______________________________________________ freebsd-users-jp@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"