XML :: Parserをexpat-develなしでインストールする方法は?
-
13-12-2019 - |
質問
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 推奨されるものに非常に近いです。
-
XML::Parser
から - tarballをディレクトリに抽出してそれに降ります。
-
Makefile.pl
を開き、最初の行を編集して両方の絶対パスを編集します.EXPATLIBPATH
とEXPATINCPATH
-
Makefile.pl
を保存し、1レベル上がり、編集したMakefile.pl
を使用して新しいtarballを作成します。 - 新しく作成されたtarballに
cpanm
を実行します。
cpan.org
をダウンロードします。
これにより、モジュールの設置が成功しました。