كيفية تثبيت XML::Parser بدون تطوير المغتربين؟
-
13-12-2019 - |
سؤال
فشل 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 مقترح.
- تحميل
XML::Parser
منcpan.org
- قم باستخراج كرة القطران إلى الدليل وانزل إليها.
- افتح ال
Makefile.pl
وقم بتحرير الأسطر الأولى للحصول على المسارات المطلقة لكليهما:EXPATLIBPATH
وEXPATINCPATH
- احفظ
Makefile.pl
, ، اصعد مستوى واحدًا وأنشئ كرة قطران جديدة باستخدامMakefile.pl
التي قمت بتحريرها للتو. - ينفذ
cpanm
على كرة القطران التي تم إنشاؤها حديثًا.
أدى هذا إلى التثبيت الناجح للوحدة.