سؤال

فشل XML::Parser في البناء على صندوق دبيان 64 بت الجديد تمامًا.بعد صدوره 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

الرسالة في بداية الإخراج توضح ذلك تطوير المغتربين هناك حاجة للبناء.

يجب تثبيت الوافد قبل بناء XML :: Larser ولا يمكنني العثور عليه في أدلة المكتبة القياسية.قم بتثبيت حزمة "Expat-Devel" مع مدير حزمة نظام التشغيل الخاص بك.راجع "الملف التمهيدي".

لكن تطوير المغتربين غير موجود في مستودع دبيان.

هل من الممكن تجاوز هذا دون الحاجة إلى بناء/تثبيت المغتربين من المصدر؟

هل كانت مفيدة؟

المحلول

تم تسمية الحزمة التي تريد تثبيتها libexpat1-dev.يمكنك أيضًا التثبيت فقط libxml-parser-perl عبر apt-get.أو إذا كنت تريد حقًا التثبيت عبر CPAN، فحاول تثبيت تبعيات حزم دبيان أولاً عبر apt-get build-dep libxml-parser-perl.

نصائح أخرى

p> يحتوي libexpat1-dev يحتوي على كل من libexpat and expat.h، الذي يتم ذكره كلاهماالرسالة كذلك:

إذا تم تثبيت Expat، ولكن في دليل غير قياسي، ثم استخدم الخيارات التالية إلى makefile.pl:

expatlibpath= ... لتعيين الدليل الذي يمكن فيه العثور على libexpat

expatincath= ... لتعيين الدليل الذي تجد فيه expat.h

تثبيت libexpat1-dev يبدو حل المشكلة:

giveacodicetagpre.

هناك دائما الطريقة اليدوية - لبناء / تثبيت Expat من المصدر. (يظهر هذا المثال التثبيت إلى موقع بديل xampp | Lampp )

تحميل من: http://sourceforge.net/projects/expat/files/expat/

giveacodicetagpre.

http://search.cpan.org - البحث عن والدوة - xml :: parser

giveacodicetagpre.

تعمل مثل سحر في أوبونتو 15.04.الشيء الوحيد الذي أحتاجه هو تثبيت Perl XML Garser مع:

giveacodicetagpre.

وبعد التعليمات هنا، تمكنت من استيراد جميع تصنيفاتي بنجاح في Rhythmbox.الآن، فإن العمل الوحيد الذي أحتاج القيام به هو إنشاء قوائم اللعب الذكية مرة أخرى، وهذا لا يوجد شيء مقارنة بتصنيفات Libay بأكملها.

اليوم واجهت نفس المشكلة حيث كنت أرغب في تجميع الإصدار التجريبي الجديد من GIMP 2.9.4 على OSX 10.8 ومساعدة البيرة المنزلية.

قم أولاً بتثبيت بيرل

brew install perl

ثم وحدة XML::Parser بالانتقال إلى Perl Shell باستخدام

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".يحاول أ echo $INTLTOOL_PERL لم يعط شيئًا، لذا فإن السحر هو ضبطه

export $INTLTOOL_PERL=perl

الآن قم بتشغيل ./configure مرة أخرى.

لم تنجح أي من الطرق المذكورة أعلاه بالنسبة لي.كان لدي الإعداد الصحيح لمتغيرات البيئة ولكن بطريقة ما لم يتم التقاطها cpanm التي أستخدمها لتثبيت وحدات Perl.تم تثبيت المغترب أيضًا.

إليكم ما فعلته للتغلب على نفس المشكلة التي أبلغ عنها OP.وهذا قريب جدًا مما @LadyBuzz مقترح.

  1. تحميل XML::Parser من cpan.org
  2. قم باستخراج كرة القطران إلى الدليل وانزل إليها.
  3. افتح ال Makefile.pl وقم بتحرير الأسطر الأولى للحصول على المسارات المطلقة لكليهما: EXPATLIBPATH و EXPATINCPATH
  4. احفظ Makefile.pl, ، اصعد مستوى واحدًا وأنشئ كرة قطران جديدة باستخدام Makefile.pl التي قمت بتحريرها للتو.
  5. ينفذ cpanm على كرة القطران التي تم إنشاؤها حديثًا.

أدى هذا إلى التثبيت الناجح للوحدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top