2023/07/28(金) [n年前の日記]
#2 [love2d][ubuntu][linux] Ubuntu 20.04 LTS で love2d が動かない
Ubuntu Linux 18.04 LTS (Bionic Beaver) を 20.04 LTS (Focal Fossa) にアップグレードしたけれど、無料で利用できる2Dゲームエンジン、love2d をインストールしても動かない。libsndio.so.6.1 が見つからないというエラーが出る。
_LoVE - Free 2D Game Engine
_Ubuntu - focal の love パッケージに関する詳細
love2d のインストールは以下。love2d 11.3-1 がインストールされる。
love と打って実行。
_Ubuntu - パッケージのファイル一覧: libsndio7.0/focal/amd64
libsndio.so.7.0 は存在するけど、libsndio.so.6.1 は無い。
ググってみたら以下のやり取りを見かけた。
_Prebuild binary: libsndio.so.6.1 cannot open shared object file - Issue #3862 - citra-emu/citra - GitHub
libsndio.so.7.0 から libsndio.so.6.1 にシンボリックリンクを張ってしまえ、という解決策が紹介されていた。Ubuntu Linux 20.04 LTS の場合は以下になるのだろうか。
たしかにコレをすれば、love2d 11.3-1 が動くようになった。正常に動作しているのかどうかは分からないけれど…。
余談。ppa版をインストールしても、libsndio.so.6.1 が見つからないと言われてしまう。
_love-stable : Bart van Strien
_LoVE - Free 2D Game Engine
_Ubuntu - focal の love パッケージに関する詳細
love2d のインストールは以下。love2d 11.3-1 がインストールされる。
sudo apt install love
love と打って実行。
$ love love: error while loading shared libraries: libsndio.so.6.1: cannot open shared object file: No such file or directory「libsndio.so.6.1 というファイルがねえぞ」と言ってきて実行できない。
_Ubuntu - パッケージのファイル一覧: libsndio7.0/focal/amd64
libsndio.so.7.0 は存在するけど、libsndio.so.6.1 は無い。
ググってみたら以下のやり取りを見かけた。
_Prebuild binary: libsndio.so.6.1 cannot open shared object file - Issue #3862 - citra-emu/citra - GitHub
libsndio.so.7.0 から libsndio.so.6.1 にシンボリックリンクを張ってしまえ、という解決策が紹介されていた。Ubuntu Linux 20.04 LTS の場合は以下になるのだろうか。
sudo ln -T /usr/lib/x86_64-linux-gnu/libsndio.so.7.0 /usr/lib/x86_64-linux-gnu/libsndio.so.6.1
たしかにコレをすれば、love2d 11.3-1 が動くようになった。正常に動作しているのかどうかは分からないけれど…。
余談。ppa版をインストールしても、libsndio.so.6.1 が見つからないと言われてしまう。
_love-stable : Bart van Strien
sudo add-apt-repository ppa:bartbes/love-stable sudo apt update sudo apt install love
$ love love: error while loading shared libraries: libsndio.so.6.1: cannot open shared object file: No such file or directory
◎ flatpak版を使う手もある :
flatpak (flathub) でも、love2d の最新版(11.4)が公開されているらしい。
_LoVE | Flathub
_Ubuntu Flathub Setup | Flathub
そちらをインストールできないか試してみた。しかしそもそも、flatpak のセットアップ時、以下でエラーが出てしまう。
sudo をつけたらエラーが出なかった。そんなことしちゃっていいのか分らんけど…。リポジトリ?を追加できたらOSを再起動。
love2d をインストール。
実行は以下。
一応動いたけれど、起動時にエラーが出る…。アンインストールしておいた。
_LoVE | Flathub
_Ubuntu Flathub Setup | Flathub
そちらをインストールできないか試してみた。しかしそもそも、flatpak のセットアップ時、以下でエラーが出てしまう。
sudo apt install flatpak sudo apt install gnome-software-plugin-flatpak
$ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo ** (flatpak remote-add:12667): WARNING **: 11:08:06.475: Error unregistering authentication agent: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name :1.84 was not provided by any .service files error: Authorization error: Message recipient disconnected from message bus without replying
sudo をつけたらエラーが出なかった。そんなことしちゃっていいのか分らんけど…。リポジトリ?を追加できたらOSを再起動。
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo sudo reboot
love2d をインストール。
sudo flatpak install flathub org.love2d.love2d
実行は以下。
flatpak run org.love2d.love2d
一応動いたけれど、起動時にエラーが出る…。アンインストールしておいた。
sudo flatpak uninstall flathub org.love2d.love2d
◎ AppImageのほうが楽かもしれない :
AppImage でも、love2d 11.4 が提供されている模様。
_LinuxでAppImage形式のアプリを使う方法と注意点のまとめ | virtualiment
_Release LoVE 11.4 [Mysterious Mysteries] - love2d/love - GitHub
alias で定義しておけば呼び出しも楽になるかもしれない。以下は bash利用、かつ、~/.bash_aliases で alias を定義してる場合の事例。
_LinuxでAppImage形式のアプリを使う方法と注意点のまとめ | virtualiment
_Release LoVE 11.4 [Mysterious Mysteries] - love2d/love - GitHub
mkdir ~/bin cd ~/bin wget https://github.com/love2d/love/releases/download/11.4/love-11.4-x86_64.AppImage chmod a+x love-11.4-x86_64.AppImage ./love-11.4-x86_64.AppImageこちらならエラーを出さずに実行することができた。
alias で定義しておけば呼び出しも楽になるかもしれない。以下は bash利用、かつ、~/.bash_aliases で alias を定義してる場合の事例。
vi ~/.bash_aliases
alias love='/home/USERNAME/bin/love-11.4-x86_64.AppImage'
◎ 2023/07/29追記 :
別の Ubuntu Linux 20.04 LTS上で試してみたら、libsndio.so.6.1 が無くても ppa版 love2d 11.4 が動いてしまった。原因も分かったので、2023/07/29の日記にメモしておいた。
[ ツッコむ ]
以上です。