web-dev-qa-db-ja.com

不足しているすべてのPerlライブラリをインストールするにはどうすればよいですか?

OSMC(Raspbmc)RaspberryPiにlogitechmediaserver7.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
Sparhawk

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

Perlのパッケージマネージャーは、 同じ名前のWebサイト の後に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

ディストリビューションを介してインストールされたモジュールがあるが(たとえば、libdbi-Perlを介してDBI)、プログラムが「ロードに失敗した」と報告した場合、それはプログラムのバグになります。より新しいバージョンが必要な場合もあれば、モジュールの検索パスを台無しにしている場合もあります。

あなたが引用する 指示 はかなり厄介であり、willは、ファイルを変更するように指示するため、後で問題を引き起こすことに注意してください。パッケージマネージャーによって維持されます。絶対に行わないでください。アップグレード時に変更内容が失われます。代わりに、いくつかのシステムファイルにパッチを適用する必要がある場合は、パッチを適用したコピーをどこかに置き、カスタムディレクトリからモジュールをロードするようにプログラムに指示します。

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に設定します。