mieki256's diary



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 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 がインストールされる。
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 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

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 というプロパティを探してテキトーに設定したら一応反映されたように見えた。

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 を動かしていない…。
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 日分です。

過去ログ表示

Prev - 2023/07 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project