• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:YAMLについて)

YAMLについての質問:perlの初心者がYAML::Syckモジュールのインストールエラーに遭遇

このQ&Aのポイント
  • perlの初心者がYAML::Syckモジュールのインストールエラーに遭遇しました。エラーメッセージには`Can't locate auto/YAML/Syck/DumpYAML.al in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .)`と表示されました。cpanコマンドやppmコマンドを使用してもうまくインストールできませんでしたので、cpanサイトからtarボールをダウンロードして解凍し、適切なモジュールのフォルダに保存しました。
  • 上記のサンプルスクリプトを実行すると、yaml.txtに結果が書き込まれません。正しい結果は`data1: 10 data2: 20 data3: 30`です。
  • YAML::Syckモジュールのインストールエラーには環境設定やパスの問題が関係している可能性があります。適切な場所にモジュールを格納し、再度インストールを試みることをおすすめします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

>Microsoft Visual C++ 2005 Express Editionでよろしいでしょうか? 2008だと問題がでるとかでないとか聞いたことがありますが 2005ならたぶん大丈夫だと思います。 > cpan YAML::Syckと実行してみたところインストールが始まったのかいろんなファイルが取得してきていたようですが, > これでコンパイル, インストールできたのでしょうか?初歩的な質問で申し訳ありませんね. cpan YAML::Syck と入力したのであれば、 ・ネットワーク越しにtar玉をとってきて ・作業用ディレクトリに展開して ・コンパイル ・テスト ・インストール とすべてやってくれるはずですので、 最後にエラーを示すメッセージがでていなければOKです。 ありがちなのはテストで失敗する項目があって インストールに進まないということですが。

aja8
質問者

補足

sakusaker7様, ご回答ありがとうございます. >最後にエラーを示すメッセージがでていなければOKです。 エラー的な内容は特に見れませでした. 正常にコンパイル, テスト, インストールできているのか確認する方法はありますか? 確認のため再度実行 >cpan YAML::Syck CPAN: Storable loaded ok (v2.16) Going to read C:\Perl\cpan\Metadata Database was generated on Mon, 21 Jan 2008 11:38:00 GMT YAML::Syck is up to date (1.01). おそらく正常にコンパイル, テスト, インストールができたと思うのですが, サンプルスクリプトを再度実行しても上述のようにエラーがまだ出ます. 私のものだとインストールされたものがC:\perl\cpan\build\YAML-Syck-1.01-WxCiJBに格納されていると思うのですが. 恐縮で申し訳ありません.

その他の回答 (4)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.5

XAMPPですか、PerlインタプリタはActivePerlのものと同じだけど ディレクトリ構成とかが違うみたいですね。 ちょっと調べたところではなんかアドオンを入れないとcpanも まともに使えないとかありましたけどその辺は大丈夫ですか? Syck.dllがきちんとインストールされていないと動かないはずなので とりあえず、Syck.dll が一体どこにインストールされたのか チェックしてみてください。 一つ確認ですが、XAMPPのものとは別に、自分でActivePerlを インストールしていませんか?

aja8
質問者

お礼

xamppと場合だと実行がうまく実行されません. 別のスレを立てるのでよろしくお願いします. >ちょっと調べたところではなんかアドオンを入れないとcpanも >まともに使えないとかありましたけどその辺は大丈夫ですか? そのへんが理解できていません.何か参考になるWebページあったら教えてください. >Syck.dllがきちんとインストールされていないと動かないはずなので >とりあえず、Syck.dll が一体どこにインストールされたのか >チェックしてみてください。 検索かけたところありません. >一つ確認ですが、XAMPPのものとは別に、自分でActivePerlを >インストールしていませんか? まさにその通りです.

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.4

> C:\perl\cpan\build\YAML-Syck-1.01-WxCiJB これはビルドに使われてた一時ディレクトリです。 実際にインストールされると、 c:\perl\site\lib\YAML\ などに Syck.pm がコピーされます。 また、Cコンパイラがビルドしたバイナリが c:\perl\site\lib\auto\yaml\syck に置かれているはずです。 わたしのところだと c:\perl\site\lib\auto\yaml\syck のディレクトリ 2008/01/22 16:29 423 .packlist 2008/01/22 16:28 0 Syck.bs 2008/01/22 16:28 77,824 Syck.dll 2008/01/22 16:28 786 Syck.exp 2008/01/22 16:28 1,910 Syck.lib 2008/01/22 16:28 257,024 Syck.pdb 6 個のファイル 337,967 バイト こんな感じですがどうなってますか? あと、c:\perl\site の下に syck.pm が複数あると思いますが、 それを全部列挙してみてください。 C:\Perl\site\lib\auto\YAML\Syck>cd \perl\site C:\Perl\site>dir /s Syck.pm ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は B03A-311F です C:\Perl\site\lib\JSON のディレクトリ 2008/01/19 02:45 5,236 Syck.pm 1 個のファイル 5,236 バイト C:\Perl\site\lib\YAML のディレクトリ 2008/01/19 02:45 8,095 Syck.pm 1 個のファイル 8,095 バイト C:\Perl\site\lib\YAML\Dumper のディレクトリ 2007/10/20 17:47 107 Syck.pm 1 個のファイル 107 バイト C:\Perl\site\lib\YAML\Loader のディレクトリ 2007/10/20 17:47 107 Syck.pm 1 個のファイル 107 バイト ファイルの総数: 4 個のファイル 13,545 バイト

aja8
質問者

お礼

sakusaker7様, なんとか実行できました. ありがとうございました.

aja8
質問者

補足

sakusaker7様, ご回答ありがとうございます. ちなみにxamppをインストールしています. >c:\perl\site\lib\YAML\ などに Syck.pm がコピーされます。 はい。コピーされています. >また、Cコンパイラがビルドしたバイナリが >c:\perl\site\lib\auto\yaml\syck >に置かれているはずです。 私のところだとc:\perl\site\lib以下の\auto\syckが存在しません。 auto\libというフォルダはc:\xampp\perl\libにauto\YAMLというものがありますが.このsakusaker7様のおっしゃるようなc:\perl\site\lib\auto\yaml\syck のディレクトリには下記のようなバイナリファイルが存在していません. 2008/01/22 16:29 423 .packlist 2008/01/22 16:28 0 Syck.bs 2008/01/22 16:28 77,824 Syck.dll 2008/01/22 16:28 786 Syck.exp 2008/01/22 16:28 1,910 Syck.lib 2008/01/22 16:28 257,024 Syck.pdb 6 個のファイル 337,967 バイト 正常のインストールされていないのでしょうか? その代わりに C:\xampp\perl\site\lib\auto\YAMLのディレクトリには Syck.pmを含んだ12個のファイルがあります. Syck.dllといったファイルがなく拡張子が.pmというモジュールのファイルばかりが存在しています.正常にインストールされていないのでしょうか?

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

一つ確認したいのですが、エラーメッセージに出ているディレクトリ名からすると ActivePerl っぽいですけどそうですか? そしてその場合、Visual C++ コンパイラはインストールされていますか? もしきちんと使える状態になっていれば、 cpan YAML::Syck で何の問題もなく入ると思うんですが。 tarアーカイブからインストールする場合は、 perl Makefile.pl nmake nmake install でいけると思います。

aja8
質問者

補足

sakusaker7様, ご回答ありがとうございます. ActivePerlを使っています. >Visual C++ コンパイラはインストールされていますか? Microsoft Visual C++ 2005 Express Editionでよろしいでしょうか? インストールはしてます. そこで適当な場所で cpan YAML::Syckと実行してみたところインストールが始まったのかいろんなファイルが取得してきていたようですが, これでコンパイル, インストールできたのでしょうか?初歩的な質問で申し訳ありませんね.

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

>tarボールを取ってきて解凍し, 適当な格納モジュールフォルダに格納しています. YAML::Syck ってXS使ってるのでCコンパイラでコンパイルしないと インストールできませんけど? C:\perl\cpan\build\YAML-Syck-1.00-XT929A のディレクトリ 2008/01/11 02:55 <DIR> . 2008/01/11 02:55 <DIR> .. 2008/01/11 02:55 <DIR> blib 2007/10/20 17:47 21,498 bytecode.c 2008/01/11 02:55 16,402 bytecode.obj 2007/12/10 06:07 18,635 Changes 2007/10/20 17:47 787 COMPATIBILITY 2007/10/20 17:47 2,749 COPYING 2007/12/10 05:41 38,865 emitter.c 2008/01/11 02:55 43,127 emitter.obj 2007/10/20 17:47 59,778 gram.c 2007/10/20 17:47 2,262 gram.h 2008/01/11 02:55 30,203 gram.obj 2007/10/20 17:47 3,408 handler.c 2008/01/11 02:55 8,383 handler.obj 2007/10/20 17:47 45,355 implicit.c 2008/01/11 02:55 34,634 implicit.obj 2008/01/11 02:55 <DIR> inc 2008/01/11 02:55 <DIR> lib 2008/01/11 02:55 29,236 Makefile 2007/10/20 17:47 1,093 Makefile.PL 2007/10/20 17:47 1,143 MANIFEST 2007/10/20 17:47 368 META.yml 2007/10/20 17:47 7,674 node.c 2008/01/11 02:55 19,140 node.obj 2007/10/23 02:58 1,894 perl_common.h 2007/12/10 05:13 37,230 perl_syck.h 2008/01/11 02:55 0 pm_to_blib 2007/10/23 02:57 154,956 ppport.h 2007/10/20 17:47 1,301 ppport_math.h 2007/10/20 17:47 1,014 ppport_sort.h 2007/12/10 06:08 1,746 README 2007/12/10 06:11 4,749 SIGNATURE 2008/01/11 02:55 0 Syck.bs 2008/01/11 02:55 2,900 Syck.c 2008/01/11 02:55 86 Syck.def 2007/10/20 17:47 12,779 syck.h 2008/01/11 02:55 85,696 Syck.obj 2007/10/20 17:47 329 Syck.xs 2007/10/20 17:47 10,125 syck_.c 2008/01/11 02:55 25,987 syck_.obj 2007/10/20 17:47 11,073 syck_st.c 2007/10/20 17:47 1,049 syck_st.h 2008/01/11 02:55 17,232 syck_st.obj 2008/01/11 02:55 <DIR> t 2007/10/20 17:47 58,233 token.c 2008/01/11 02:55 46,015 token.obj 2008/01/11 02:55 102,400 vc70.pdb 2007/10/20 17:47 7,568 yaml2byte.c 2008/01/11 02:55 7,757 yaml2byte.obj 2007/10/20 17:47 6,704 yamlbyte.h

aja8
質問者

補足

sakusaker7様, ご回答ありがとうございます. >YAML::Syck ってXS使ってるのでCコンパイラでコンパイルしないと >インストールできませんけど とのことですが, コンパイル方法からインストール方法までよければ教えていただけないでしょうか?大変恐縮ではございますが.

関連するQ&A