Вопрос

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 должен быть установлен до создания XML :: Parser, и я не могу найти его в стандартных библиотечных каталогах.Установите пакет 'Expat-Devel' с помощью менеджера пакетов ОС.См. README.

Но эмигрант-развитие его нет в репозитории Debian.

Можно ли преодолеть это без необходимости сборки/установки экспата из исходного кода?

Это было полезно?

Решение

Пакет, который вы хотите установить, называется libexpat1-dev.Вы также можете просто установить libxml-parser-perl через APT-Get.Или если вы действительно хотите установить через CPAN, попробуйте сначала установить зависимости пакетов Debian Packages сначала через apt-get build-dep libxml-parser-perl.

Другие советы

libexpat1-dev содержит как libexpat, так и expat.h, которые оба упомянуты всообщение также:

Если установлен Expat, но в нестандартном каталоге, затем используйте Следующие опции для makefile.pl:

ExpatlibPath= ... Чтобы установить каталог, в котором можно найти libExpat

expatincpath= ... установить каталог, в котором можно найти Expat.h

Установка libexpat1-dev, кажется, решает проблему:

$ aptitude install libexpat1-dev
.

Всегда есть ручной метод - для создания / установки Excat из источника. (Этот пример показывает установку в альтернативное место для 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
.

И следуя инструкциям здесь, я смог успешно импортировать все свои рейтинги в ритмии.Теперь, единственная работа, которую мне нужно сделать, это создать снова умные списки воспроизведения, это ничего по сравнению со всеми рейтингами библиотеки.

Сегодня у меня была такая же проблема, желающая потребительскую бета-версию 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.Глядя на сценарий, говорит мне, что это тест с $INTLTOOL_PERL -e "require XML::Parser".Попробуя генеракодицетагкод ничего не дал, поэтому магия - это установить его с

export $INTLTOOL_PERL=perl
.

Теперь запустите ./Configure еще раз.

Ни один из вышеперечисленных методов мне не помог.У меня были правильные настройки переменных среды, но они почему-то не подхватывались cpanm который я использую для установки модулей Perl.Экспат тоже был установлен.

Вот что я сделал, чтобы решить ту же проблему, о которой сообщает ОП.Это очень близко к тому, что @ЛедиБазз предложенный.

  1. Загрузите XML::Parser от cpan.org
  2. Извлеките архив в каталог и перейдите в него.
  3. Открой Makefile.pl и отредактируйте первые строки, чтобы они имели абсолютные пути к обоим: EXPATLIBPATH и EXPATINCPATH
  4. Спасти Makefile.pl, поднимитесь на один уровень выше и создайте новый архив с помощью Makefile.pl который вы только что отредактировали.
  5. Выполнять cpanm во вновь созданном архиве.

Это привело к успешной установке модуля.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top