From owner-freebsd-users-jp@freebsd.org Fri Feb 5 07:57:47 2016 Return-Path: Delivered-To: freebsd-users-jp@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 105739D9529 for ; Fri, 5 Feb 2016 07:57:47 +0000 (UTC) (envelope-from togino@port.kobe-u.ac.jp) Received: from akiakane.center.kobe-u.ac.jp (smtprelay.kobe-u.ac.jp [133.30.17.172]) by mx1.freebsd.org (Postfix) with ESMTP id A13CA1A4 for ; Fri, 5 Feb 2016 07:57:41 +0000 (UTC) (envelope-from togino@port.kobe-u.ac.jp) Received: from (smtprelay.kobe-u.ac.jp [133.30.17.172]) by kobemaimai.center.kobe-u.ac.jp with smtp id 778a_3867_2143edd0_cbde_11e5_ae01_000423e7395a; Fri, 05 Feb 2016 16:57:41 +0900 Received: from beniitotonbo.center.kobe-u.ac.jp (beniitotonbo [133.30.16.42]) by akiakane.center.kobe-u.ac.jp (Postfix) with ESMTP id 17CBEF3090A for ; Fri, 5 Feb 2016 16:40:42 +0900 (JST) Received: from (smtp.kobe-u.ac.jp [133.30.16.42]) by kobemaimai.center.kobe-u.ac.jp with smtp id 778d_7027_c2310a96_cbdb_11e5_aa2c_000423e7395a; Fri, 05 Feb 2016 16:40:41 +0900 Received: from [150.84.224.210] (unknown [150.84.224.210]) by beniitotonbo.center.kobe-u.ac.jp (Postfix) with ESMTPSA id 133D210FD0C; Fri, 5 Feb 2016 16:40:42 +0900 (JST) To: freebsd-users-jp@freebsd.org References: <20160204114301.BC5E.D8AB530D@next.matrix.jp> <20160205151824.1998.D8AB530D@next.matrix.jp> From: OGINO Tetsuo Message-ID: <56B451F8.2010605@port.kobe-u.ac.jp> Date: Fri, 5 Feb 2016 16:40:40 +0900 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <20160205151824.1998.D8AB530D@next.matrix.jp> Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Subject: [FreeBSD-users-jp 95665] Re: =?utf-8?q?taglib-ruby_=E3=81=A7_0_is_not_a_class/module_=28Ty?= =?utf-8?q?peError=29?= X-BeenThere: freebsd-users-jp@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Discussion relevant to FreeBSD communities in Japan List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Feb 2016 07:57:47 -0000 荻野です. 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 `
': 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 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 `': 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 `
': 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-unsubscribe@freebsd.org" >