web-dev-qa-db-ja.com

ファイルが存在するにもかかわらず、共有libasoundライブラリを開けません

私の子供時代を再訪し、Linuxでもう一度シドマイヤーのアルファケンタウリ(数年前に成功したもの)をプレイしようとしたときに、頑固なエラーに遭遇しました。 Lokiポートは問題なくインストールされ、提供されているライブラリーとローダースクリプトを使用してクラッシュや視覚的な問題なしに再生されますが、サウンドなしで再生されます。コマンドラインからロードすると、ゲームは次のエラーをスローします。

ALSA lib conf.c:3314:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_Pulse.so
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM default

私はMint 17(Ubuntu 14.04)を使用しているため、サウンド用にPulseAudioを実行しています。私が知りたいのは、1)このエラーの原因は何ですか、2)どうすれば修正できますか?

奇妙なことに、ちょうど24時間前にゲームが正常に動作していましたwithサウンド。システムを再起動したときだけ、ゲームのサウンドが機能しなくなりました(他のアプリケーションからのサウンドは正常に機能します)。インストール中またはインストール後に、これを引き起こした可能性のある手順を再現することはできません。

私はosspd、32ビットlibasound2ライブラリ、および64ビットlibasound2ライブラリをインストールしており、libasound_module_conf_Pulse.sodoesは実際に/usr/lib/i386-linux-gnu/alsa-lib/usr/lib/x_86_64-linux-gnu/alsa-libの両方に存在します。ゲームの読み込みに使用したスクリプトと、サウンドが機能したときのスクリプトを以下に示します。

#!/bin/bash
export LD_LIBRARY_PATH=/opt/AlphaCentauri/Loki_Compat
$LD_LIBRARY_PATH/ld-linux.so.2 /opt/AlphaCentauri/smacx.dynamic

Loki_Compatに互換性のあるライブラリがないと、ゲームはまったく実行されません。 libasound_module_conf_Pulse.soの完全パスをLD_LIBRARY_PATHLD_PRELOADに追加してみました。ゲームと関連するライブラリを再インストールしてみました。また、 Loki_Compatのライブラリが見つからないことを確認するのは困難です。

このタイプのCannot open shared library ...エラーに関するさまざまな言及を見てきましたが(主にさまざまなプログラム間)via Googleですが、今のところ満足できる解決策はありません。私はこれを解決できない問題(今と最後にゲームをプレイしたときの間で何かが壊れたため)にまでチョークで書きたくなりますが、サウンドが奇跡的にゲームをインストールしたときに箱から出してしまったことを除いて週末。

3
B. L. Chaloux

Ubuntu 14.04 64ビットでも同様の問題がありました(おそらく、特定のバージョンのalsa-baseパッケージを手動でインストールした後で発生しました。これは、Java Hotspotおよびそのホスト上のソースからのJVM)。

また、「strace」の出力を確認し、問題を修正した1つのsymlink /usr/lib/x86_64-linux-gnu/libasound_module_conf_Pulse.soのみをインストールしました。おそらく、間違った場所にシンボリックリンクをインストールしました。私の正確なコマンドは:

cd /usr/lib/x86_64-linux-gnu/
Sudo ln -s alsa-lib/libasound_module_conf_Pulse.so libasound_module_conf_Pulse.so
1