不足しているPerlライブラリをすべてインストールするには?

不足しているPerlライブラリをすべてインストールするには?

logitechmediaserverOSMC(Raspbmc)Raspberry Piに7.8.0をインストールしようとしています。私は主に次のガイドラインに従います。ここ、一部のインストールは機能しませんが(一部の依存関係がリポジトリから欠落してパッチが失敗する)

とにかくサーバーを再起動してsudo service logitechmediaserver startからhttp://<pi_local_ip>:9000。失敗したため、サービスを停止し、実行可能sudo service logitechmediaserver stopファイルを手動で呼び出してトラブルシューティングを試みました。

$ 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

.を使用して不足しているライブラリをインストールしようとしましたが、apt-get installほとんど役に立ちませんでした。

  • libdbi-perl
  • libev-perl
  • libxml-parser-perl働く!
  • libhtml-parser-perlすでにインストールされています。
  • libjson-xs-perl
  • libdigest-sha-perl
  • そこには何もないのでインストールyaml-xsしましたlibyaml-perl
  • libsub-name-perl

不足しているライブラリをインストールする方法は? (これにより、さらに問題を解決できます。)

答え1

Perlの独自のパッケージマネージャは、Perlライブラリをインストールする最も簡単な方法です。残念ながら、ディストリビューションに統合されていないため、安定したリリース、セキュリティ更新プログラム、またはPerl以外のコンポーネントへの依存関係の追跡など、デプロイメントパッケージ管理の利点を得ることはできません。したがって、ディストリビューションに存在しないモジュールにのみ使用するのが最善です。

Perlのパッケージマネージャは次のとおりですCPAN同名のホームページ。 CPANと対話するには:

perl -MCPAN -eshell

設定の指示に従ってください。システムを使用する場合は、/usr/local/lib/site_perlシステムの下またはリストされている場所に取り付けてください。

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

モジュールを取り付けるには、install不足しているモジュールごとにこのコマンドを使用します。依存関係もインストールされます。例えば

cpan[4]> install YAML::XS

DBIディストリビューション(viaなど)を介してモジュールをインストールしたが、プログラムがlibdbi-perl「ロードに失敗しました」と報告した場合、これはプログラムのバグです。最新バージョンが必要な場合や、モジュール検索パスが混乱している可能性があります。

ご注意ください、指示するあなたの見積もりは非常に混乱しています。〜するパッケージマネージャが管理するファイルを変更するように指示するため、問題が発生します。これをしないでください。アップグレードすると、変更内容が失われます。代わりに、一部のシステムファイルにパッチを適用する必要がある場合は、パッチされたコピーをどこかに置き、プログラムにカスタムディレクトリからモジュールをロードするように指示します。

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

そして、サービスの起動スクリプトを編集logitechmediaserverして環境変数PERL5LIB/usr/local/lib/lms/perl

関連情報