見出し画像

Local UIFLow をRespberry Pi4 で動かす上でつまづいたことのメモ

とりあえず、忘れないうちにメモ。

結論

結論からいくと、LocalUIFlowは、手元のRaspberry Pi 4、日本語環境だとエラー吐いて起動しないようです。
コンソールからの起動時に「LC_ALL=C」をつけて起動すると起動しました。

LC_ALL=C ./UIFlow.Server.Desktop

経緯

Raspberry Pi 4にRaspberry Pi OS 32bitをインストール、「UIFlow-Local-Server_Linux_arm.tar.gz」をダウンロードして展開、「./UIFlow.Server.Desktop」をコンソールから実行してもエラーを吐いて起動しませんでした。
「UIFlow-Local-Server_Linux_arm.tar.gz」を展開した中に入っているフォルダの中の「README.txt」には

Run ./UIFlow.Server.Desktop

If run failed, try to run

apt install ttf-mscorefonts-installer

とありました。
要するに

./UIFlow.Server.Desktop で起動

もし起動が失敗するなら、以下の実行を試してみて

apt install ttf-mscorefonts-installer

とのことです。が、「sudo apt install ttf-mscorefonts-installer」を実行してもエラーは変わらず。(素だと権限が足りないのでsudoを足しています)

Lang-Shipさんとか、610tさんとかはRaspberry Piベースで難なく起動しているみたいなので「起動するはずなんだけどなー。」と思って、検索するも、LocalUIFlowをRaspberry Pi で構築しようとしている人たちは日本では上記2件くらいしか見当たりません。上記2件は、問題なく起動しているので、現時点(2024/1)で、日本では参照できるような起動失敗の事例がWeb上にないようです。

解決策

エラー文を検索(Default font family name can't be null or empty)したら以下のページが引っ掛かりました。

日本語環境のLinux上で、dotnetを動かそうとしているのが原因っぽい。

$ sudo apt install ttf-mscorefonts-installer
$ fc-cache --force
$ LC_ALL=C ./UIFlow.Server.Desktop

fc-chache --forceとかLC_ALL=Cが何なのかは詳しく調べていないので、これで解消する理由はちゃんと理解していません。とりあえず動いたのでよし。

※追記ここから

fc-chache --forceはフォントキャッシュの更新のようです。

一時的に英語ロケールでプログラムを実行したい場合に、コマンドの頭に「LC_ALL=C」をつけて実行するといった使い方ができます。環境変数「LANG」や「LC_」で始まる環境変数に何が設定されていても、「アメリカ英語」で処理/表示が行われます。

ということなので、「LC_ALL=C」は英語環境としてプログラムを実行する命令のようです。
※追記ここまで

なお、起動だけ確かめて動作はまだ検証してません。ひとまず起動でつまづいたのでメモ。

Lang-Shipさんとか、610tさんとかは、もしかしたら日本語環境じゃないRaspberry Pi上で動かしていて、問題が顕在化しなかったのかもしれません。

ひとまず、同じところでつまづいている人がいれば、参考になれば幸いです。

この記事が気に入ったらサポートをしてみませんか?