Как установить XML:: Parser без expat-devel?
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, и я не могу найти это в стандартных библиотечных каталогах. Установите пакет "expat-devel" с вашим Диспетчер пакетов ОС. См. "README".
Но expat-devel не находится в репозитории Debian.
Возможно ли преодолеть это без необходимости создания/установки expat из исходного кода?
Ответы
Ответ 1
Пакет, который вы хотите установить, называется libexpat1-dev
. Вы также можете просто установить libxml-parser-perl
через apt-get. Или если вы действительно хотите установить через CPAN, попробуйте сначала установить зависимости пакетов Debian через apt-get build-dep libxml-parser-perl
.
Ответ 2
libexpat1-dev содержит как libexpat, так и expat.h, которые оба упоминаются в сообщении:
Если exat установлен, но в нестандартном каталоге, используйте следующие параметры Makefile.PL:
EXPATLIBPATH =... Чтобы установить каталог, в котором можно найти libexpat
EXPATINCPATH =... Чтобы установить каталог, в котором можно найти expat.h
Установка libexpat1-dev, похоже, решает проблему:
$ aptitude install libexpat1-dev
Ответ 3
Всегда есть ручной метод - для сборки/установки 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
Ответ 4
Работайте как шарм в Ubuntu 15.04. Единственное, что мне нужно, это установить Perl XML Parser с помощью:
sudo apt-get install libxml-parser-perl
И следуя инструкциям здесь, я смог успешно импортировать все мои рейтинги в Rhythmbox. Теперь единственная работа, которую мне нужно сделать, - это снова создать списки интеллектуальных игр, что ничто по сравнению с моими всеми рейтингами libray.
Ответ 5
Сегодня у меня была такая же проблема, которая хотела бы усложнить новую бета-версию GIMP 2.9.4 на OSX 10.8 и помощь доморощенного.
Сначала установите 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. Глядя на script, он говорит, что он проводит тест с $INTLTOOL_PERL -e "require XML::Parser"
. Попытка echo $INTLTOOL_PERL
ничего не выдавала, поэтому магия должна установить его с помощью
export $INTLTOOL_PERL=perl
Теперь запустите. /configure еще раз.
Ответ 6
Ни один из вышеперечисленных методов не работал у меня. У меня была правильная настройка переменных среды, но они были как-то не подобраны cpanm
, которые я использую для установки модулей perl. Expat также был установлен.
Вот что я сделал, чтобы преодолеть ту же проблему, о которой сообщает OP.
Это очень близко к предложению @LadyBuzz.
- Загрузите
XML::Parser
из cpan.org
- Извлеките архив в каталог и спуститесь к нему.
- Откройте
Makefile.pl
и отредактируйте первые строки, чтобы на самом деле иметь абсолютные пути для обоих: EXPATLIBPATH
и EXPATINCPATH
- Сохраните
Makefile.pl
, поднимитесь на один уровень и создайте новый архив с Makefile.pl
, который вы только что отредактировали.
- Выполните
cpanm
в новом созданном архиве.
Это привело к успешной установке модуля.