Como instalo XML :: libxml para ActivePerl?
-
21-09-2019 - |
Pergunta
Eu sou novo no Perl e estou usando ActivePerl. Eu estou recebendo o seguinte erro:
Não consigo localizar xml/libxml.pm em @inc ...
Eu tentei de tudo, mas não consigo encontrar as etapas para instalar o módulo "correto" para XML :: libxml.
Aqui está exatamente o que está acontecendo. Estou executando um script de um prompt de comando:
C: temp> perl myscript.pl
As primeiras linhas de myscript.pl:
#!/usr/bin/perl
use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
use HTTP::Date;
use XML::Parser;
use LWP::UserAgent;
use XML::LibXML;
use Archive::Extract;
use Encode;
use LWP::Simple;
require HTTP::Request;
...
Então eu recebo este erro:
C: temp> perl myscript.pl não consegue localizar xml/libxml.pm em @inc (@inc contém: c:/perl/site/lib c:/perl/lib.) em myscript.pl linha 7. falhou-a compilação foi abortada em myscript.pl linha 7
Solução
Você deve poder instalá -lo com o Gerenciador de pacotes ativos Perl Perl. Deveria ter havido um atalho de menu inicial criado quando você instalou o ActivePerl, inicie a GUI e procure por XML-LIBXML e LIBXML-PERL.
--editar
Aqui está uma postagem sobre a adição de um repositório alternativo ao PPM e instalando o XML-LIBXML
Outras dicas
Não se parece com o Activestate fornecer um ppm com xml :: libxml. Eu olhei no ReadMe para o módulo na CPAN e, aparentemente, um pacote PPM pré -construído está disponível aqui.
Recentemente, passei pelo PAIS de instalar o XML :: libxml. Aqui está o que eu encontrei:
- Estamos usando o Activestate ActivePerl 5.8.8
- Para que o PPM do ActivePerl passasse pelo nosso proxy, teve que criar uma variável de ambiente "http_proxy" com valor "http: //proxy.ext. [Exemplo] .com", depois re-login.
- Os pacotes necessários não estavam todos localizados no repositório da Activestate. Adicionado o Repositório Perl da Universidade de Winnipeg http://theoryx5.uwinnipeg.ca/ppms/package.xml (Observe que o repositório exato usado depende da sua versão do ActivePerl)
- Instale manualmente as seguintes DLLs em c: perl bin (por qualquer motivo, eu estava tendo alguns problemas para construir essas DLLs, então acabei simplesmente pegando -as do repositório em http://trouchelle.com/ppm/dll/ )
- iconv.dll
- libxml2.dll
- zlib1.dll
- Pelo menos para a versão do XML-LIBXML que estamos usando, o instalador do pacote não funciona corretamente para o pré-requisito XML-LIBXML-Common. Você DEVO Instale o pacote XML-Libxml-Common por si só, ANTES DA Instalando o restante do XML-LIBXML.
Embora possam não ser as versões mais recentes, as versões dos pacotes (incluindo pré -requisitos) que estou usando atualmente são:
- XML-Libxml-Common (ver 0.13)
- XML-LIBXML (ver 1.64)
- Xml-namespacesupport (ver 1.10)
- XML-Sax (ver 0.96)
A resposta aceita não funcionou para mim no 5.16. A partir de essa questão:
XML :: libxml não estava pronto para o Perl 5.16. Instalar 5.14
Download:
No final, encontrei o único repositório alternativo ActivePerl existente, tanto quanto eu sei, e ele tinha um pacote para XML :: Libxml 2.0121, que será instalado nas versões Perl até 5.20.x.
Você pode obter versões do ActivePerl daqui que incluem 5.20.2: downloads.activeState.com/activePerl/releases/
O repositório alternativo é chamado de suborno de perl em BURIBES.org/perl/
O URL do repositório inserido em opções é http://bribes.org/perl/ppm/