質問

XML ::パーサーは、新しい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を構築する前にappatをインストールする必要があります。 標準ライブラリディレクトリの中にあります。あなたと「expat-devel」パッケージをインストールしてください OSパッケージマネージャ。'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の代替位置への取り付けを示しています。ランプ

ダウンロードから: >>>/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パーサーをインストールすることです:

sudo apt-get install libxml-parser-perl
.

とここでの指示に従って、私はRhythmBoxへのすべての私の評価を正常にインポートすることができました。さて、私がする必要がある唯一の作業は、スマートプレイリストを再度作成することです。

今日は、OSX 10.8の新しいGIMP 2.9.4ベータをコンプレイしたいのと同じ問題と、HomeBrewの助けを借りていました。

最初のインストールPerl

brew install perl
.

その後XML ::パーサーモジュールを使用して

perl -MCPAN -e shell
.

を入力して

およびシェルの内部XML :: Parserをインストールします。

install XML::Parser
.

EXITシェル

exit
.

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

perl -e "require XML::Parser"
.

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

で設定することです
export $INTLTOOL_PERL=perl
.

再び走る。

上記の方法のどれも私のために働いていませんでした。私は正しい環境変数を設定しましたが、それらは私がPerlモジュールをインストールするために使用するcpanmによって管理されていませんでした。expatもインストールされました。

これは、OPが報告しているのと同じ問題を克服するためにしたことです。 これは @ladybuzz 推奨されるものに非常に近いです。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top