WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:Perlモジュールのインストールでエラーが出るのですが、調べても分かりません。どなたかご存知でしょうか?

0:[投稿] ぽんた [2004/02/03 20:39 ][環境:Windows2000 HP-UNIX、apache1.3.26、perl5.6.1]

こんばんは。
今日の昼間に投稿させて頂いたぽんたです。
その時はふじさまにお力添えを頂き解決できました。
その後モジュールのインストールを行いましたが、
下記の3つのモジュールでエラーが出てしまい、
その内容が理解できず困っております。
モジュールは「ExtUtils::ParseXS2.07」「Compress::Zlib1.33」
「Module::Build」です。全てのエラー内容を書くと、スペースを
とても多く取ってしまうので、共通してあるエラーを下記に記します。(「Module::Build」を一部抜粋しました)
***********************************************************
t/runthrough....FAILED tests 14-17, 19-20
       Failed 6/27 tests, 77.78% okay
t/signature.....skipped
       all skipped: Skipping unless $ENV{TEST_SIGNATURE} is true
t/versions......ok
t/xs............ok 2/12In file included from /opt/perl/lib/5.6.1/PA-RISC1.1-thread-multi/CORE/perl.h:713,
                from lib/XSTest.xs:2:
/usr/include/sys/socket.h:484: error: parse error before "sendfile"
/usr/include/sys/socket.h:484: error: parse error before "bsize_t"
/usr/include/sys/socket.h:486: error: parse error before "sendpath"
/usr/include/sys/socket.h:486: error: parse error before "bsize_t"
/usr/include/sys/socket.h:501: error: parse error before "__sendfile64"
/usr/include/sys/socket.h:501: error: parse error before "bsize_t"
/usr/include/sys/socket.h:502: error: parse error before "__sendpath64"
/usr/include/sys/socket.h:502: error: parse error before "bsize_t"
/usr/include/sys/socket.h:504: error: parse error before "sendfile"
/usr/include/sys/socket.h: In function `sendfile':
/usr/include/sys/socket.h:504: error: parse error before "bsize_t"
/usr/include/sys/socket.h: At top level:
/usr/include/sys/socket.h:505: error: parse error before "sendpath"
/usr/include/sys/socket.h: In function `sendpath':
/usr/include/sys/socket.h:505: error: parse error before "bsize_t"
t/xs............ok 5/12In file included from /opt/perl/lib/5.6.1/PA-RISC1.1-thread-multi/CORE/perl.h:713,
                from lib/XSTest.xs:2:
/usr/include/sys/socket.h:484: error: parse error before "sendfile"
/usr/include/sys/socket.h:484: error: parse error before "bsize_t"
/usr/include/sys/socket.h:486: error: parse error before "sendpath"
/usr/include/sys/socket.h:486: error: parse error before "bsize_t"
/usr/include/sys/socket.h:501: error: parse error before "__sendfile64"
/usr/include/sys/socket.h:501: error: parse error before "bsize_t"
/usr/include/sys/socket.h:502: error: parse error before "__sendpath64"
/usr/include/sys/socket.h:502: error: parse error before "bsize_t"
/usr/include/sys/socket.h:504: error: parse error before "sendfile"
/usr/include/sys/socket.h: In function `sendfile':
/usr/include/sys/socket.h:504: error: parse error before "bsize_t"
/usr/include/sys/socket.h: At top level:
/usr/include/sys/socket.h:505: error: parse error before "sendpath"
/usr/include/sys/socket.h: In function `sendpath':
/usr/include/sys/socket.h:505: error: parse error before "bsize_t"
error building sl file from 'lib/XSTest.c' at /opt/perl/lib/site_perl/5.6.1/Module-Build-0.22/blib/lib/Module/Build/Base.pm line 1895, <
File0000> line 14.
t/xs............ok 6/12In file included from /opt/perl/lib/5.6.1/PA-RISC1.1-thread-multi/CORE/perl.h:713,
                from lib/XSTest.xs:2:
/usr/include/sys/socket.h:484: error: parse error before "sendfile"
/usr/include/sys/socket.h:484: error: parse error before "bsize_t"
/usr/include/sys/socket.h:486: error: parse error before "sendpath"
/usr/include/sys/socket.h:486: error: parse error before "bsize_t"
/usr/include/sys/socket.h:501: error: parse error before "__sendfile64"
/usr/include/sys/socket.h:501: error: parse error before "bsize_t"
/usr/include/sys/socket.h:502: error: parse error before "__sendpath64"
/usr/include/sys/socket.h:502: error: parse error before "bsize_t"
/usr/include/sys/socket.h:504: error: parse error before "sendfile"
/usr/include/sys/socket.h: In function `sendfile':
/usr/include/sys/socket.h:504: error: parse error before "bsize_t"
/usr/include/sys/socket.h: At top level:
/usr/include/sys/socket.h:505: error: parse error before "sendpath"
/usr/include/sys/socket.h: In function `sendpath':
/usr/include/sys/socket.h:505: error: parse error before "bsize_t"
t/xs............ok 9/12In file included from /opt/perl/lib/5.6.1/PA-RISC1.1-thread-multi/CORE/perl.h:713,
                from lib/XSTest.xs:2:
/usr/include/sys/socket.h:484: error: parse error before "sendfile"
/usr/include/sys/socket.h:484: error: parse error before "bsize_t"
/usr/include/sys/socket.h:486: error: parse error before "sendpath"
/usr/include/sys/socket.h:486: error: parse error before "bsize_t"
/usr/include/sys/socket.h:501: error: parse error before "__sendfile64"
/usr/include/sys/socket.h:501: error: parse error before "bsize_t"
/usr/include/sys/socket.h:502: error: parse error before "__sendpath64"
/usr/include/sys/socket.h:502: error: parse error before "bsize_t"
/usr/include/sys/socket.h:504: error: parse error before "sendfile"
/usr/include/sys/socket.h: In function `sendfile':
/usr/include/sys/socket.h:504: error: parse error before "bsize_t"
/usr/include/sys/socket.h: At top level:
/usr/include/sys/socket.h:505: error: parse error before "sendpath"
/usr/include/sys/socket.h: In function `sendpath':
/usr/include/sys/socket.h:505: error: parse error before "bsize_t"
t/xs............FAILED tests 3, 7, 10
       Failed 3/12 tests, 75.00% okay
Failed Test    Stat Wstat Total Fail  Failed  List of Failed
---------------------------------------------------------------------------------------------------------------------------------------
t/runthrough.t               27    6  22.22%  14-17 19-20
t/xs.t                       12    3  25.00%  3 7 10
1 test skipped.
Failed 2/10 test scripts, 80.00% okay. 9/163 subtests failed, 94.48% okay.
*** Error exit code 11

Stop.
********************************************************ここまで

/usr/include/sys配下のsocket.hが関わっているのは分かりますが、実際このファイルをいじって直すのか、それとも別のモジュールをあてるのか調べても載っていませんでした。
そこで行き詰まってしまっています。
行いたい操作自体は行えるのですが、その行いたい操作をするために必要なモジュールをインストールする際に、これらのモジュールを入れてくださいというメッセージが出ます。
長々と文を並べて申し訳ありませんが、今までこのようなエラーに
遭遇した経験のある方がいらっしゃいましたら、ご教授願えませんでしょうか?

よろしくお願いします。


1:[回答] かえる [2004/02/05 12:08 ]

CPANでインストールすると関連モジュールも引っ張ってくれると
思いますが、マニュアルでインストールしているんでしょうか?

それとも以前のアンインストールで必要なものまで削除されてし
まったとか?

外したらごめんなさい。


2:[保留] ぽんた [2004/02/06 10:46 ]

かえるさま

ご返答ありがとうございます。
御礼が遅くなって申し訳ありません。
どうやらsocket.hはHP-UNIXのバグらしいのですが…。

失礼します。


3:[回答] AC [2004/02/06 23:13 ]

make中にparse errorが出る、というのは、Cコンパイラがソースファイルを
理解できていない、ということです。

UNIXにデフォルトで入っているCコンパイラは、新しい文法で書かれた
ソースファイルを理解できない場合があります。
gccを使えば、コンパイルできるかもしれません。


4:[回答] B-Cus [2004/02/06 23:32 ]

> gccを使えば、コンパイルできるかもしれません。

エラーメッセージから推察するに、gcc を使っているんでしょう。

http://gcc.gnu.org/ml/gcc/2003-06/msg02325.html


てゆーか、OS のバージョン・コンパイラ名・コンパイラの
バージョン・コンパイラをどうやってインストールしたか、
モジュールインストール時の具体的な手順は、などの情報が
全然書かれていないので、まずは質問者が適切なる情報提供を
しないと始まらないでしょう。

あと、

> 行いたい操作自体は行えるのですが、その行いたい操作をする
> ために必要なモジュールをインストールする際に、これらの
> モジュールを入れてくださいというメッセージが出ます。

というのもいまいち意味がわからない。「行いたい操作自体は行える」
のなら別にモジュールを入れる必要はないんでは?


5:[回答] ぽんた [2004/02/09 12:04 ]

ACさま・B−Cusさま

ご返答ありがとうございます。
お礼が遅くなってしまい、申し訳ありません。

>OS のバージョン
HP-UNIX Version11.11

>コンパイラ名
gcc

>コンパイラのバージョン
Version3.3.2(以下確認メッセージ)
HPUX 74: gcc --version
gcc (GCC) 3.3.2
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

>コンパイラをどうやってインストールしたか
すでにネットワーク管理者の方が入れて下さっていました。
GNUサイトから、最新バージョンを入手したとのことです。

>モジュールインストール時の具体的な手順
Log出力をLog4perlとLog::Dispatch::FileRotateを用いて、
出力・世代管理をさせます。
この2つのモジュールを入れる前に、ExtUtils::MakeMakerや
Module::Build、Params::Validateを入れるように出てくるので
操作をすると、ExtUtils::MakeMaker・Module::Build・Params::Validateで上記のようなメッセージが出てしまいます。
(Googleで検索かけたら、HP-UNIXはSocket.hにバグがあると
いう内容がありました)

なお、「ExtUtils::ParseXS2.07」「Compress::Zlib1.33」 はなくても動作するので、入れるのをやめました。

以上のようになっております。
言葉が足りずに大変申し訳ありませんでした。
ご指摘、感謝致します。
よろしくお願いします。


6:[関連] ぽんた [2004/02/09 12:05 ]

すいません、上記は「回答」ではなく、「関連」でした。
申し訳ありません。


7:[回答] B-Cus [2004/02/10 10:33 ]

> HP-UNIX Version11.11
HP-UX でしょう。

> この2つのモジュールを入れる前に、ExtUtils::MakeMakerや
> Module::Build、Params::Validateを入れるように出てくるので
これは本当でしょうか? 具体的にどういうメッセージが出ている
のでしょうか?

ExtUtils::MakeMaker は perl 標準モジュールだと思っていましたが、
本当にインストールを要求されるのでしょうか。

> 「ExtUtils::ParseXS2.07」「Compress::Zlib1.33」 はなくても
> 動作するので、入れるのをやめました。
ということは「Module::Build は必要である」という判断なのですね?

他の質問を見ると、ログの出力自体はできているようですが、なぜ
Module::Build が必要なのでしょうか? 「行いたい操作自体は行える」
というのは誤りなのですか?

わたしは
 「本当にそれらのモジュールをインストールする必要があるのか?」
と疑っています。それを解消するだけの情報を提示してください。


> Googleで検索かけたら、HP-UNIXはSocket.hにバグがあると
> いう内容がありました
自分で検索して情報を得たのなら、その URL を提示するのが
親切でしょう。

なお、socket.h のエラー自体は、
  http://gcc.gnu.org/ml/gcc/2003-06/msg02325.html
を行なうのがよいと思います。


あと、
>>モジュールインストール時の具体的な手順
というのは、具体的に何をタイプしたのか? ということです。例えば
 % perl Makefile.PL
 % make
 % make test
 % make install
など。

こういう情報を最初に書かないから、回答側が
>>1
> CPANでインストールすると関連モジュールも引っ張ってくれると
> 思いますが、マニュアルでインストールしているんでしょうか?
のような質問を抱くわけです。


8:[関連] ぽんた [2004/02/10 21:12 ]

B-Cusさま

再度のご返答、ご指摘ありがとうございます。
表現が曖昧で、言葉が足りずご迷惑をお掛けしました。
申し訳ございません。

>ExtUtils::MakeMaker は perl 標準モジュールだと思っていまし
>たが、本当にインストールを要求されるのでしょうか。
大変申し訳ございません。
これは標準モジュールです。思いっきり勘違いしていました。
お騒がせしてすいませんでした。

>ということは「Module::Build は必要である」という判断なのですね?
>他の質問を見ると、ログの出力自体はできているようですが、
>なぜModule::Build が必要なのでしょうか? 
>「行いたい操作自体は行える」というのは誤りなのですか?
まず、なぜModule::Buildをインストール必要かと思ったかと言いますと、
Module::Buildモジュールがない状態で、Log::Dispatchモジュール
をインストールしようとすると、必ず「Module::BuildをCPANから
ダウンロードして入れますか?」というメッセージがでます。
そこでN(No)を選ぶと、そこで処理が終了してしまいます。
そのためModule::Buildが必要と考えました。
Module::Buildインストール時にmake testでsocket.hに関する
エラーが出ても、その後rootでmake installしていれば、
ログ出力自体は上手くいきます。

>なお、socket.h のエラー自体は、
>http://gcc.gnu.org/ml/gcc/2003-06/msg02325.html
>を行なうのがよいと思います。
大変参考になりました。ありがとうございます。

>モジュールインストール時の具体的な手順
>というのは、具体的に何をタイプしたのか? ということです。
>例えば
> % perl Makefile.PL
> % make
> % make test
> % make install
>など。
モジュール内にBuild.PLがあるものは、
% perl Build.PL
% ./Build
% ./Build test
% ./Build install
です。他のものは、
> % perl Makefile.PL
> % make
> % make test
> % make install
です。

申し訳ございませんでした。
失礼します。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World