川又です。

その通りでした。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"

メールによる返信