14

XML :: Parserは、非常に新しい64ビットDebianボックスでのビルドに失敗します。を発行した後cpan XML::Parser、cpanはExpat.cとExpat.xsに関する多くのエラーで失敗します。

[...]
Expat.xs:2182: error: ‘CallbackVector’ has no member named ‘skip_until’
Expat.c: In function ‘XS_XML__Parser__Expat_Do_External_Parse’:
Expat.c:2904: error: ‘XML_Parser’ undeclared (first use in this function)
Expat.c:2904: error: expected ‘;’ before ‘parser’
Expat.xs:2194: error: ‘parser’ undeclared (first use in this function)
make[1]: *** [Expat.o] Error 1
make[1]: Leaving directory `/root/.cpan/build/XML-Parser-2.41-rpV6ok/Expat'
make: *** [subdirs] Error 2
  TODDR/XML-Parser-2.41.tar.gz
  /usr/bin/make -- NOT OK
Running make test
  Can't test without successful make
Running make install
  Make had returned bad status, install seems impossible

出力の最初のメッセージは、構築にはexpat-develが必要であることを説明しています。

XML :: Parserをビルドする前に、Expatをインストールする必要がありますが、標準ライブラリディレクトリにExpatが見つかりません。OSパッケージマネージャーを使用して「expat-devel」パッケージをインストールします。「README」を参照してください。

しかし、expat-develはDebianリポジトリにありません。

ソースからエクスパットをビルド/インストールせずにこれを乗り越えることは可能ですか?

4

6 に答える 6

45

インストールするパッケージの名前はlibexpat1-devです。libxml-parser-perlapt-getからインストールすることもできます。または、本当にCPAN経由でインストールしたい場合は、最初にを介してDebianパッケージの依存関係をインストールしてみてくださいapt-get build-dep libxml-parser-perl

于 2012-03-13T22:20:50.323 に答える
9

libexpat1-devには、libexpatとexpat.hの両方が含まれています。これらは両方ともメッセージに記載されています。

expatがインストールされているが、非標準ディレクトリにある場合は、Makefile.PLに対して次のオプションを使用します。

EXPATLIBPATH =...libexpatを検索するディレクトリを設定します

EXPATINCPATH =...expat.hを検索するディレクトリを設定します

libexpat1-devをインストールすると、問題が解決するようです。

$ aptitude install libexpat1-dev
于 2012-03-13T22:20:30.713 に答える
5

ソースからエクスパットをビルド/インストールする手動の方法が常にあります。(この例は、XAMPP | LAMPPの別の場所へのインストールを示しています)

ダウンロード元: http ://sourceforge.net/projects/expat/files/expat/

tar zxf /[where-ever]/expat-2.1.0.tar.gz -C /tmp
cd /tmp/expat-2.1.0
/opt/lampp/bin/perl ./configure --prefix=/opt/lampp LDFLAGS=-L/opt/lampp/lib 
make
make install

http: //search.cpan.org-検索してダウンロード-XML::Parser

tar zxf /[where-ever]/XML-Parser-2.41.tar.gz -C /tmp
cd /tmp/XML-Parser-2.41
/opt/lampp/bin/perl ./Makefile.PL EXPATLIBPATH=/opt/lampp/lib EXPATINCPATH=/opt/lampp/include
make
make test
make install
于 2012-04-24T20:19:42.123 に答える
3

Ubuntu15.04で魅力のように機能します。必要なのは、PerlXMLパーサーを次のコマンドでインストールすることだけです。

sudo apt-get install libxml-parser-perl

そして、ここでの指示に従って、すべての評価をRhythmboxに正常にインポートすることができました。今、私がする必要がある唯一の作業は、スマートプレイリストを再度作成することです。これは、私のlibray評価全体と比較して何もありません。

于 2015-05-24T00:54:11.893 に答える
2

今日、私はOSX10.8の新しいGIMP2.9.4ベータ版と自作の助けを借りてコンパイルしたいという同じ問題を抱えていました。

最初にperlをインストールする

brew install perl

次に、XML :: Parserモジュールを使用して、perlシェルに入ります。

perl -MCPAN -e shell

そして、シェル内に次のように入力してXML::Parserをインストールします

install XML::Parser

シェルを終了します

exit

ここで、正常にインストールされていることを確認します。すべて問題がなければ、エラーは表示されません。

perl -e "require XML::Parser"

それでも./configureがXML::Parserの欠落に失敗する場合、intltoolsはインストールしたperlを使用していません。スクリプトを見ると、でテストを行っていることがわかります$INTLTOOL_PERL -e "require XML::Parser"。何も与えないようにしようとするとecho $INTLTOOL_PERL、魔法はそれを設定することです

export $INTLTOOL_PERL=perl

./configureを再度実行します。

于 2016-07-21T17:20:27.473 に答える
0

上記の方法はどれも私にはうまくいきませんでした。cpanm私は適切な環境変数を設定しましたが、 perlモジュールをインストールするために使用するものによってどういうわけかそれらが検出されませんでした。Expatもインストールされました。

OPが報告しているのと同じ問題を克服するために私がしたことは次のとおりです。これは、 @LadyBuzzが提案したものに非常に近いものです。

  1. XML::Parserからダウンロードcpan.org
  2. tarballをディレクトリに抽出し、そこに降ります。
  3. を開き、Makefile.pl最初の行を編集して、実際に両方への絶対パスを設定しますEXPATLIBPATHEXPATINCPATH
  4. を保存し、1つ上のレベルに移動して、編集したばかりMakefile.plのtarballを使用して新しいtarballを作成します。Makefile.pl
  5. cpanm新しく作成されたtarballで実行します。

これにより、モジュールが正常にインストールされました。

于 2017-06-08T16:36:26.280 に答える