質問: Windows XPでのCPANの問題 私は、Windowsの箱にいくつかのPerlモジュールをインストールすることを考えています。これは顧客のUATボックスなので、どのように構成されたのか、誰によって考えられたのか分かりません。私たちはDevボックスにインストールを行い、すべてが広告として動作しました。 このボックスはCygwinを実行しており、Perl 5.8.8がインストールされています。私はそれを更新したり、Cygwinを再インストールすることはできません。私は自分が持っているものを使う必要があります。 私はSpreadsheet :: Readをシステムにインストールしようとしましたが、次のエラーがあります: ``` CPAN.pm: Going to build F/FD/FDALY/Test-Tester-0.107.tar.gz Checking if your kit is complete... Looks good Unable to find a perl 5 (by these names: /usr/bin/perl.exe perl.exe perl5.exe pe rl5.8.7.exe miniperl.exe, in these dirs: /usr/local/bin /usr/bin /bin /usr/X11R6 /bin /cygdrive/d/oracle/product/10.2.0/client_1/bin /cygdrive/c/WINDOWS/system32 /cygdrive/c/WINDOWS /cygdrive/c/WINDOWS/System32/Wbem /usr/bin /cygdrive/d/APPL IC~1/MCAFEE~1 /cygdrive/d/Applications/PowerCenter8.6.1/server/bin /usr/lib/lap ``` 何? Perl 5が見つかりませんでしたか?そこはCygwinの `/usr/bin/perl.exe` にあります。 makeにも問題がありますが、gccはCygwinにインストールされていますので問題ありません。 一体何が起こっているのですか?私は `/cygdrive/p/cpan` に.cpanを持っていますが、それは私の `HOME` ディレクトリがそこに定義されているからです。 (それは企業のものです)。 何か案が? `Spreadsheet :: Read` 、 `Spreadsheet :: ParseExcel` 、 `Spreadsheet :: XLSX` をインストールする必要があります。 CPANがそれをしていない場合、またはコンパイルされたものが必要な場合、インストールを中止することは可能ですか?覚えておいて、メイクもやります。 --- > Strawberry Perlを使用し、Cygwinの頭痛を残すことができればどんなチャンスですか? > > 私はすでに尋ねました。答えはノーだ。 > あなたは5.8.8を持っていますが、perl5.8.7.exeを探しています。 $ PATHを投稿してください。 > > それはPerl 5.8.7です。私の悪い。 パス: ``` /usr/local/bin /usr/bin /bin /usr/X11R6/bin /cygdrive/d/oracle/product/10.2.0/client_1/bin /cygdrive/c/WINDOWS/system32 /cygdrive/c/WINDOWS /cygdrive/c/System32/Wbem /usr/bin /cygdrive/d/APPLIC~1/MFAFEE~1 /cygdrive/d/ApplicationsPowerCenter8.6.1/server/bin /usr/lib/lapack ``` > 実際にどのような条件でメッセージが表示されているか確認しましたか? > > 状態はあまりありませんでした。そのメッセージをすべてダウンロードしました。 > perl -le'print(-x "/usr/bin/perl.exe")|| 0) 'の出力は何ですか?' > > あなたは勝ちます:パーミッションは `-rwx ------` でした。私はそれを逃したとは信じられません。 > /usr/bin/perl.exe -eの出力は何ですか? "require 5; print qq {VER_OK \ n}" - ikegami 1時間前 > > VER_OK --- 何らかの理由で、私は/ usr/bin/perlを実行することができましたが、確かにCPANはPerlプログラムではありませんでしたが、CPANがそれを探していたときに、うんざりする
回答: メッセージはExtUtils :: MakeMakerから来ます。このメッセージは、 `-e "を実行できるディレクトリ(-d)ではない実行可能ファイル(-x)を見つけられなかったために発生します。print qq {VER_OK \ n}"` だから、あなたのPerlのパーミッションをチェックし、 ``` perl -le'print( (-x "/usr/bin/perl.exe") || 0 )' ``` 上記が真実を返す機会がない場合は、次のように実行されていることを確認してください。 ``` /usr/bin/perl.exe -e "require 5; print qq{VER_OK\n}" ```