0

マシンで Solaris を実行していますが、スクリプトの 1 つを機能させるには、Date::Calc perl モジュールをインストールする必要があります。

次のコマンドを実行すると:

sudo perl -MCPAN -e 'install Date::Calc'

次のエラーが表示されます。

Tests succeeded but one dependency not OK (Bit::Vector)
  STBEY/Date-Calc-6.3.tar.gz
  [dependencies] -- NA
Running make install
  make test had returned bad status, won't install without force

私は Perl 開発の経験がないので、エラーが何であるか、どこで詳細情報を入手できるかについての手がかりがありません。

これを修正するにはどうすればよいですか?


最初に Bit::Vector をインストールしようとする場合、つまり次のコマンドを実行する場合:

sudo perl -MCPAN -e 'install Bit::Vector'

次のエラー メッセージが表示されます。

Checking if your kit is complete...
Looks good
Writing Makefile for Bit::Vector
Writing patchlevel.h for /usr/bin/perl (5.012003)
cp lib/Bit/Vector/Overload.pm blib/lib/Bit/Vector/Overload.pm
cp Vector.pm blib/lib/Bit/Vector.pm
cp Vector.pod blib/lib/Bit/Vector.pod
cp lib/Bit/Vector/Overload.pod blib/lib/Bit/Vector/Overload.pod
cp lib/Bit/Vector/String.pod blib/lib/Bit/Vector/String.pod
cp lib/Bit/Vector/String.pm blib/lib/Bit/Vector/String.pm
cc -c    -DPTR_IS_LONG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV -xO4    -DVERSION=\"7.2\"  -DXS_VERSION=\"7.2\" -KPIC "-I/usr/perl5/5.12/lib/i86pc-solaris-64int/CORE"   BitVector.c
sh: line 1: cc: not found
*** Error code 127
make: Fatal error: Command failed for target `BitVector.o'
  STBEY/Bit-Vector-7.2.tar.gz
  /usr/bin/make -- NOT OK
'YAML' not installed, will not store persistent state
Running make test
  Can't test without successful make
Running make install
  Make had returned bad status, install seems impossible

次のコマンドを使用してgccをインストールしました(ここでアドバイスされているように):

pkg install gcc-45 
pkg install system/header

しかし、Bit::Vector をインストールしようとすると、同じエラーが発生します。実際、ccコマンドラインに入力すると、command not foundエラーが発生します。gccただし、入力すると、 が表示されますgcc: no input files

4

2 に答える 2

2

このエラーは、Bit::Vector (Date::Calc の依存関係) が何らかの理由でインストールに失敗したことを意味します。Bit::Vector では C コードをコンパイルする必要があります。つまり、CPAN 構成では、perl のビルドに使用された C コンパイラとライブラリ (およびヘッダー) にアクセスする必要があります。

私が理解していることから、Solaris ではそれが時々苦痛になることがあります。

別の C コンパイラを利用できる場合は、perlbrewを使用してローカル Perl をビルドおよびインストールすることを検討してください。

于 2013-05-20T15:46:51.077 に答える
0

したがって、唯一のオプションは、C コードをコンパイルする必要がある新しい perl モジュールをインストールする前に、 Oracle Solaris Studioをインストールすることです。

Oracle Solarisフォーラムでの関連ディスカッションから:

/usr/perl5/5.12/lib/i86pc-solaris-64int/Config.pm の CC を変更しても、コンパイルの問題は解決されません。新しいエラーが生成され、一部のパーツはこの変数を使用しません。

デフォルトでは、モジュールを構築するこの方法は、perl コンパイル済みオプションを使用します。この場合、Oracle Studio を使用したため、一部のオプションが gcc では使用できないため、このソフトウェアが必要になります。

Oracle Studio で試したところ、コンパイルは成功しました。

gcc を使用する場合、いくつかの perl 構成ファイルを変更するのは非常に困難です。別の方法は、各 Makefile をカスタマイズした後で、必要な各モジュールを手動でコンパイルすることです。

于 2013-05-27T13:15:19.040 に答える