Как установить XML:: Parser без expat-devel?
XML:: Parser не может построить на довольно свежей 64-битной коробке Debian. После выдачи cpan XML::Parser
, на CPAN выдает много ошибок о Expat.c и экспат.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 должен быть установлен до создания XML:: Parser, и я не могу найти это в стандартных библиотечных каталогах. Установите пакет "expat-devel" с вашим Менеджер пакетов ОС. Видеть "Читай".
но экспат-девел не находится в репозитории Debian.
можно ли преодолеть это без необходимости создавать / устанавливать expat из источника?
6 ответов
пакет, который вы хотите установить, называется libexpat1-dev
. Вы также можете просто установить libxml-parser-perl
через apt-get. Или, если вы действительно хотите установить через CPAN, попробуйте сначала установить зависимости пакетов Debian через apt-get build-dep libxml-parser-perl
.
libexpat1-dev содержит как libexpat, так и expat.h, которые также упоминаются в сообщении:
Если expat установлен, но в нестандартном каталоге, используйте следующие варианты Makefile.PL:
EXPATLIBPATH=... Чтобы установить каталог, в котором найти libexpat
EXPATINCPATH=... Установить каталог, в котором можно найти экспатов.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. Теперь, единственная работа, которую мне нужно сделать, это снова создать интеллектуальные списки воспроизведения, это ничто по сравнению со всеми моими рейтингами libray.
сегодня у меня была такая же проблема, желая дополнить новую бета-версию GIMP 2.9.4 на OSX 10.8 и помощь homebrew.
Сначала установите perl
brew install perl
затем модуль XML:: Parser, перейдя в оболочку perl с
perl -MCPAN -e shell
и внутри оболочки установите XML:: Parser, введя
install XML::Parser
выход shell
exit
теперь убедитесь, что он был успешно установлен. Если все в порядке, вы не увидите ошибка.
perl -e "require XML::Parser"
если ./ configure по-прежнему не хватает XML::Parser, то intltools не использует perl, который вы установили. Глядя на скрипт, я понимаю, что он делает тест с $INTLTOOL_PERL -e "require XML::Parser"
. Попытка echo $INTLTOOL_PERL
ничего не выдал, поэтому магия состоит в том, чтобы установить его с
export $INTLTOOL_PERL=perl
выполнить ./ настройте снова.
ни один из вышеперечисленных методов не работал для меня. У меня была правильная настройка переменных среды, но они почему-то не были подобраны cpanm
который я использую для установки модулей perl. Expat также был установлен.
вот что я сделал, чтобы преодолеть ту же проблему, о которой сообщает OP. Это очень близко к тому, что @LadyBuzz предложил.
- скачать
XML::Parser
Сcpan.org
- извлеките tarball в каталог и спуститесь к он.
- открыть
Makefile.pl
и отредактируйте первые строки, чтобы на самом деле иметь абсолютные пути к обоим:EXPATLIBPATH
иEXPATINCPATH
- сохранить
Makefile.pl
, подняться на один уровень и создать новый tarball сMakefile.pl
что вы только что отредактировали. - выполнить
cpanm
на вновь созданном tarball.
это привело к успешной установке модуля.