Ubuntu18.04 にアップグレードしたら ePSXe が動かなくなってハマる。
Ubuntu を 17.10→18.04 にアップグレードしたら ePSXe が起動しなくなったので、その解決方法を書きます。
マイクラでハマった Ubuntu 18.04 ですが、今度は ePSXe でハマりました。
ePSXe を起動しようとしても起動しない。
コマンドから起動すると、
libcurl.so.4: version `CURL_OPENSSL_3' not found
とエラーが出ました。
なんだ。共有ライブラリ不足か。と、最初は軽く考えていました。
ネットで検索するとハマっている人がけっこういて、Arch Linux では libcurl-compat を入れるといいよ、みたいな回答がありました。
Ubuntuでは パッケージ libcurl3 に CURL_OPENSSL_3 が あるそうなんで、これを入れれば解決しそうです。
ってなわけで、Synapticからインストールしようとしたのですが、競合してるんでいろんなパッケージを削除していいですか?ってな展開になりました。ダメだろう!削除しては!
なんか問題は思っていたより深刻みたいでした。
Ubuntu の launchpad でも問題になっていました。
libcurl3 をインストールしたら、virtualbox とか Opera とか勝手に削除されたんですけどー!
Ubuntu公式パッケージじゃないから知らねーよ。開発者に相談してくれよ。はい終了。
おいおい、これバグだろ。せめてリリースノートに書くとかしろよ。多くのパッケージはまだlibcurl3を使ってるよ。
・・・みたいな展開になっているんだと思います。
問題の根本は、libcurl3 と libcurl4 で libcurl.so.4 が競合しているにもかかわらず、2つのライブラリの仕様が異なっているためのようです。
うーん、どうしたものか。
共有ライブラリをアプリ固有で指定できないのか調べた所、環境変数 LD_PRELOAD に ライブラリを指定すれば、強制的にそれを読み込んでくれるそうです。
libcurl3_7.58.0-2ubuntu2_amd64.deb をダウンロードしてきて、そこに入っている libcurl.so.4.5.0 を libcurl.so.4 に名前を変えて ePSXe のディレクトリに置いて、同じディレクトリに以下のようなシェルスクリプトを作成する。
# /bin/bash
export LD_PRELOAD=./libcurl.so.4
echo $LD_PRELOAD
./epsxe_x64
で、このシェルスクリプトを起動すると、無事 ePSXe が起動しました。
うーん、Ubuntu18.04 って本当に LTS なのか?
| 固定リンク
| コメント (0)
| トラックバック (0)
最近のコメント