UbuntuでのPiCockpitの回避策
注:これは進行中の作業であり、別の問題が発生したため、検討する必要があります。 現在、PiCockpitは残念ながらUbuntuでは動作しません。
あるユーザーがUbuntu for Raspberry PiにPiCockpitをインストールしようとしたところ、次のような問題が発生したと連絡がありました。
picockpit-client (2.0.1)のセットアップ ...
cp: cannot stat '/usr/bin/python3.7':No such file or directory
cp: cannot stat '/usr/bin/python3.7':そのようなファイルまたはディレクトリはありません。
警告:アップデート中に何らかのエラーが発生しました
/usr/share/picockpit-client/bin/python3
picockpit-client.serviceは、無効化されたユニットまたは静的ユニットであり、起動しません。
プラットフォームに依存しないライブラリが見つからない
プラットフォーム依存のライブラリが見つからない
$PYTHONHOMEを[:]に設定することを検討してください。
Fatal Python error: initfsencoding:ロケールのエンコーディングを取得できませんでした
ModuleNotFoundErrorです。encodings'という名前のモジュールがありません。
現在のスレッド 0xb6ef8970 (most recent call first):
bash: line 15: 28213 Aborted sudo picockpit-client connect -yes
この問題は、PicockpitクライアントがPythonバージョン3.7に依存していることが原因です。
Ubuntu 20.04.1 LTSのPythonバージョンは3.8です。
picockpit-clientのインストールを再実行する前に、次のコマンドを実行することで、この問題を回避することができます。
sudo ln -s /usr/bin/python3.8 /usr/bin/python3.7
これはかなり「汚い」回避策であることに注意してください。新しいPythonのバージョンが実際には古いバージョンであることをアプリケーションに示唆してしまうからです。DebianとRaspberry Pi OSパッケージのビルド方法を変更するのは、現在のところ少し難しいようです。UbuntuでPiCockpitが動かないという問い合わせが増えたら、さらに調査してみます。
別パッケージが用意される可能性もある。
もしかしたら、setup.shスクリプトにシンボリックリンクのオプションを入れるかもしれない。
上記のコマンドを実行した後、ワンライナーを使ってPiCockpitをインストールすることができます。
bash -c "$(curl -k -s https://picockpit.com/setup.sh)"
ここで、もう一つの問題、「ModuleNotFoundError:No module named 'picockpit-client'" - もし、さらにユーザーからPiCockpitをUbuntuで利用できるようにしてほしいという要望があれば、これを調査します。