Como posso instalar todas as bibliotecas perdidas do perl?

1

Estou tentando instalar o logitechmediaserver 7.8.0 no meu Raspberry Pi OSMC (Raspbmc). Eu segui principalmente as instruções do aqui , embora algumas das instalações não funcionassem (algumas dependências faltavam nos repositórios e o patch falhou).

Independentemente disso, cheguei à parte em que reiniciei o servidor com sudo service logitechmediaserver start e tentei testar conectando-me a http://<pi_local_ip>:9000 . Isso falhou, então parei o serviço com sudo service logitechmediaserver stop e, em seguida, tentei solucionar problemas chamando manualmente o executável.

$ sudo /usr/sbin/squeezeboxserver
The following modules failed to load: DBI EV XML::Parser::Expat
    HTML::Parser JSON::XS Digest::SHA1 YAML::XS Sub::Name

Eu tentei instalar as bibliotecas ausentes com apt-get install , mas quase nenhuma delas ajudou.

  • libdbi-perl
  • libev-perl
  • libxml-parser-perl funciona!
  • libhtml-parser-perl já foi instalado.
  • libjson-xs-perl
  • libdigest-sha-perl
  • nada sob yaml-xs , então instale libyaml-perl em seu lugar.
  • libsub-name-perl

Como posso instalar as bibliotecas ausentes? (Para que eu possa, presumivelmente, resolver mais.)

    
por Sparhawk 05.06.2015 / 15:05

1 resposta

2

O próprio gerenciador de pacotes do Perl é a maneira mais fácil de instalar bibliotecas Perl. Infelizmente, ele não está integrado à distribuição, portanto, você não obterá os benefícios do gerenciamento de pacotes da distribuição, como versões estáveis, atualizações de segurança ou rastreamento de dependência para componentes não-Perl. Portanto, é melhor usar isso apenas para módulos que não estão presentes em sua distribuição.

O gerenciador de pacotes do Perl chama-se CPAN , depois do site com o mesmo nome . Para interagir com o CPAN, execute

perl -MCPAN -eshell

e siga as instruções de configuração. Para uso do sistema, instale em /usr/local/lib/site_perl ou o que o sistema listar para

perl -e '$\=$,="\n"; print grep m!^/usr/local!, @INC'

Para instalar um módulo, use o comando install para cada um dos módulos ausentes. Isso instala dependências também. Por exemplo,

cpan[4]> install YAML::XS

Se você tiver módulos instalados por meio de sua distribuição (por exemplo, DBI via libdbi-perl ), mas o programa relatar que eles "falharam ao carregar", isso seria um erro no programa. Talvez queira uma versão mais recente, ou talvez esteja atrapalhando o caminho de pesquisa do módulo.

Note que as instruções que você cita são bastante confusas e irá causar problemas a linha, porque eles dizem para você modificar os arquivos que são mantidos pelo gerenciador de pacotes. Nunca faça isso: suas modificações serão perdidas na atualização. Em vez disso, se você precisar corrigir alguns arquivos do sistema, coloque uma cópia corrigida em algum lugar e instrua o programa a carregar os módulos de um diretório personalizado, por exemplo,

mkdir -p /usr/local/lib/lms/perl/Slim
cp /usr/share/perl5/Slim/bootstrap.pm /usr/local/lib/lms/perl/Slim
patch /usr/local/lib/lms/perl/Slim/bootstrap.pm lms-rpi-bootstrap.patch

e edite o script de inicialização do serviço logitechmediaserver para definir a variável de ambiente PERL5LIB como /usr/local/lib/lms/perl .

    
por 07.06.2015 / 00:07