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が必要であることを説明しています。
ExpatはXML :: Parserを構築する前にインストールする必要があり、標準ライブラリのディレクトリで見つけることができません。 OSパッケージマネージャーで 'expat-devel'パッケージをインストールします。 「README」を参照してください。
しかしexpat-develはDebianリポジトリにありません。
ソースからexpatをビルド/インストールする必要なしにこれを乗り越えることは可能ですか?
インストールするパッケージの名前はlibexpat1-dev
です。 apt-getを使用してlibxml-parser-Perl
をインストールすることもできます。または、本当にCPAN経由でインストールしたい場合は、最初にapt-get build-dep libxml-parser-Perl
経由でDebianパッケージの依存関係をインストールしてみてください。
libexpat1-dev には、メッセージにも記載されているlibexpatとexpat.hの両方が含まれています。
Expatがインストールされているが、標準以外のディレクトリにある場合は、Makefile.PLに次のオプションを使用します。
EXPATLIBPATH = ... libexpatを見つけるディレクトリを設定するには
EXPATINCPATH = ... expat.hを見つけるディレクトリを設定するには
Libexpat1-devをインストールすると問題が解決するようです:
$ aptitude install libexpat1-dev
常に手動の方法があります-ソースからexpatをビルド/インストールします。 (この例は、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
Ubuntu 15.04の魅力のように動作します。私が必要なのは、Perl XML Parserを次のようにインストールすることだけです。
Sudo apt-get install libxml-parser-Perl
そして、ここの指示に従って、すべての評価をRhythmboxに正常にインポートすることができました。今、私がしなければならない唯一の作業は、スマートプレイリストをもう一度作成することです。これは、私のライブラリ全体の評価と比較して何もありません。
今日、私はOSX 10.8の新しいGIMP 2.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を実行してください。
上記の方法はどれも私にとってはうまくいきませんでした。私は適切な環境変数を設定しましたが、Perlモジュールのインストールに使用するcpanm
によってそれらがどういうわけか選択されませんでした。 Expatもインストールされました。
OPが報告するのと同じ問題を克服するために私がやったことは次のとおりです。これは @ LadyBuzz の提案に非常に近いものです。
XML::Parser
からcpan.org
をダウンロードMakefile.pl
を開き、最初の行を編集して、実際に両方への絶対パスを設定します:EXPATLIBPATH
とEXPATINCPATH
Makefile.pl
を保存し、1レベル上に移動して、編集したMakefile.pl
で新しいtarballを作成します。cpanm
を実行します。これにより、モジュールが正常にインストールされました。