2023/07/28(金) [n年前の日記]
#1 [ubuntu][linux] Ubuntu Linux 18.04 LTS を 20.04 LTS にアップグレードした
サブPC(Intel i5-2500機)には Ubuntu Linux 18.04 LTS をインストールしてあったのだけど、Ubuntu Linux 18.04 LTS のサポート期間が 2023/05 で終わっていたので、Ubuntu Linux 20.04 LTS にアップグレードすることにした。
最初はsshでログインした状態で作業を始めたのだけど、「復旧作業ができなくなるかもしれんけど本当にいいのか?」みたいなことを言われたので、sshでログアウトしてから、PC本体にキーボードとマウスを繋いで端末を開いて、端末上で作業をすることにした。以下を入力。
巷の解説記事を眺めると、sudo do-release-upgrade -d を実行するように解説してる記事もあったのだけど、手元の環境では -d をつけるとメッセージを数行出して処理が止まってしまった。-d をつけなければ先に進んだ。
時々、Enter だの y だの n だのを叩いて処理を進めていく。
パッケージのダウンロードに数時間、インストールに数時間かかった…。
最初はsshでログインした状態で作業を始めたのだけど、「復旧作業ができなくなるかもしれんけど本当にいいのか?」みたいなことを言われたので、sshでログアウトしてから、PC本体にキーボードとマウスを繋いで端末を開いて、端末上で作業をすることにした。以下を入力。
sudo apt update sudo apr upgrade -y -d sudo apt upgrade -y sudo apt --purge autoremove sudo apt install update-manager sudo apt dist-upgrade sudo do-release-upgrade
巷の解説記事を眺めると、sudo do-release-upgrade -d を実行するように解説してる記事もあったのだけど、手元の環境では -d をつけるとメッセージを数行出して処理が止まってしまった。-d をつけなければ先に進んだ。
時々、Enter だの y だの 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の日記にメモしておいた。
[ ツッコむ ]
#3 [godot] Godot Engine 4.1.1の勉強中
Windows10 x64 22H2上で、Godot Engine v4.1.1 x64 を使って勉強中。以前 Godot を触ってた頃は Godot 3.x.x だったので、何か変わってたりするのかなと…。
Godot Engine 3.x で作成した HelloWorld相当のプロジェクトは、4.x 用に変換できなかったので、最初からプロジェクトを新規作成して同じものが作れそうか試してみた。以前書き残したメモを参考にして作業。
_mieki256's diary - Godot Engine で Hello World
とりあえず、Label と Button は、4.x でも存在しているようだなと…。
フォントの指定でちょっと悩んだけれど、fonts というプロパティを探してテキトーに設定したら一応反映されたように見えた。
Godot Engine 3.x で作成した HelloWorld相当のプロジェクトは、4.x 用に変換できなかったので、最初からプロジェクトを新規作成して同じものが作れそうか試してみた。以前書き残したメモを参考にして作業。
_mieki256's diary - Godot Engine で Hello World
とりあえず、Label と Button は、4.x でも存在しているようだなと…。
フォントの指定でちょっと悩んだけれど、fonts というプロパティを探してテキトーに設定したら一応反映されたように見えた。
◎ html5エクスポートでハマった :
せっかくだから、.exe と html5 をエクスポートしてみようとしたのだけど…。
_mieki256's diary - Godot Engineでプロジェクトをエクスポート
.exe は問題無くエクスポートできたし、実行することもできたけど、html5 のエクスポートで問題発生。
Python 3.10.10 を使って、python -m http.server と打ってローカルWebサーバを起動して、http://localhost:8000/ に Firefox 115.0.2 でアクセスして .html ファイルを開いてみたのだけど、エラーが表示されて実行できない。
ググってみたら以下の記事に遭遇。
_[Godot] Godot4.0のWebエクスポートしたゲームがエラーで動かない!(Cross Origin Isolation、SharedArrayBuffer) | WorkToolSmith
Godot 4.x から、エクスポートした html5 の実行時に、Cross Origin Isolation、SharedArrayBuffer なるものが必要になったらしい…。python -m http.server で立ち上がるローカルWebサーバはあくまで簡易サーバなので、そこまではサポートしていない、ということなのだろう。
これがもし、Webサーバが Apache等であれば、.htaccess に以下を追記することで解決するらしいのだけど。残念ながら、自分の手元のWindows環境では Apache を動かしていない…。
それぞれ、略称として COEP、COOP と呼ばれてるようだなと…。
さておき。Godot でエクスポートした html5 の動作確認のために Apache を新規導入するというのもちょっとヘビーな作業のような気もする。Pythonだけでどうにかならんかとググっていたら、以下のスクリプト、server-cross-origin.py に遭遇。
_Local HTTP server with COEP+COOP enabled for SharedArrayBuffer - GitHub
これは使えそうな気がする…。.pck もファイルの種類を指定しないといけないので、extensions_map = { } に、.pck の記述も追加した。
python server-cross-origin.py で動かしてみたところ、ローカルWebサーバが起動した。http://localhost:8000/ にアクセスして .html を開いたところ、Godot 4.1.1 でエクスポートした html5 を実行することができた。助かった。ありがたや。
ちなみに、Webサーバが Apache で、Godot からエクスポートした html5 を置きたい場合、.htaccess に以下も書いておいたほうがいいのかもしれない。
_mieki256's diary - Godot Engineでプロジェクトをエクスポート
.exe は問題無くエクスポートできたし、実行することもできたけど、html5 のエクスポートで問題発生。
Python 3.10.10 を使って、python -m http.server と打ってローカルWebサーバを起動して、http://localhost:8000/ に Firefox 115.0.2 でアクセスして .html ファイルを開いてみたのだけど、エラーが表示されて実行できない。
ググってみたら以下の記事に遭遇。
_[Godot] Godot4.0のWebエクスポートしたゲームがエラーで動かない!(Cross Origin Isolation、SharedArrayBuffer) | WorkToolSmith
Godot 4.x から、エクスポートした html5 の実行時に、Cross Origin Isolation、SharedArrayBuffer なるものが必要になったらしい…。python -m http.server で立ち上がるローカルWebサーバはあくまで簡易サーバなので、そこまではサポートしていない、ということなのだろう。
これがもし、Webサーバが Apache等であれば、.htaccess に以下を追記することで解決するらしいのだけど。残念ながら、自分の手元のWindows環境では Apache を動かしていない…。
Header set Cross-Origin-Embedder-Policy "require-corp" Header set Cross-Origin-Opener-Policy "same-origin"
それぞれ、略称として COEP、COOP と呼ばれてるようだなと…。
さておき。Godot でエクスポートした html5 の動作確認のために Apache を新規導入するというのもちょっとヘビーな作業のような気もする。Pythonだけでどうにかならんかとググっていたら、以下のスクリプト、server-cross-origin.py に遭遇。
_Local HTTP server with COEP+COOP enabled for SharedArrayBuffer - GitHub
これは使えそうな気がする…。.pck もファイルの種類を指定しないといけないので、extensions_map = { } に、.pck の記述も追加した。
extensions_map = { '': 'application/octet-stream', '.css': 'text/css', '.html': 'text/html', '.jpg': 'image/jpg', '.js': 'application/x-javascript', '.json': 'application/json', '.manifest': 'text/cache-manifest', '.png': 'image/png', '.wasm': 'application/wasm', '.xml': 'application/xml', '.pck': 'application/octet-stream', }
python server-cross-origin.py で動かしてみたところ、ローカルWebサーバが起動した。http://localhost:8000/ にアクセスして .html を開いたところ、Godot 4.1.1 でエクスポートした html5 を実行することができた。助かった。ありがたや。
ちなみに、Webサーバが Apache で、Godot からエクスポートした html5 を置きたい場合、.htaccess に以下も書いておいたほうがいいのかもしれない。
AddType application/octet-stream pck AddType application/wasm wasm Header set Cross-Origin-Embedder-Policy "require-corp" Header set Cross-Origin-Opener-Policy "same-origin"
[ ツッコむ ]
以上、1 日分です。