この記事は「fukuoka.ex Elixir/Phoenix アドベントカレンダー Advent Calendar 2021」の15日目の記事です。
こんにちは、みずりゅと申します。
趣味でElixirを触っていて、同じく趣味でElixirの技術同人誌を数冊頒布していたりします。
お仕事では、Elixirはまったく利用していないです。...利用したいなぁ。
さて、今回は、「elixir-desktop」について書きます。
はじめにお断り
まず最初にお詫びしておきます。
タイトルにもある通り、本記事を書いている時点では、問題は解決しておりません。
→2021.12.26追記:解決しました。「後日談」で軽く触れています。
他の参加者さん達のように、__読みたい!__と思えるような記事にできずに、残念でなりません。
とはいうものの、背伸びをしても仕方ないし、(締め切りも迫っているので)、現時点での情報で本記事を書いております。
技術同人誌の執筆ネタ探しでelixir-desktopに注目
冒頭でも触れましたが、私は趣味で__Elixirの技術同人誌__を書いています。1
そして、新しい執筆ネタ探しで、「elixir-desktop」を見つけました。
elixir-desktopは、一言で言えばElixir/Phoenix LiveViewでネイティブ(のような)アプリをつくるライブラリ(もしくはフレームワーク?)、とのこと。Phoenix1.6にも対応している様子なので、デスクトプアプリができたら面白そうだなぁ...と思い、ターゲットとしました。
軽い気持ちでまずは動かしてみる
軽くREADMEをを読んで、__EXAMPLE__があることを確認。
さっそくcloneしてくる。
そして、軽い気持ちでrun
スクリプトを実行。
数日前にPhoenix1.6
が利用できる環境を整えていたので、うまく動くんじゃないかなーという甘い期待も持っていました。
期待するのは、こんな画面。
お、画面が出てきた。
「まぁ、そりゃそうなるか」というセリフが出てきましたね。
むしろ、よくここまで動いたなーと。
というわけで、環境設定をしますか、というところで、環境設定について書かれたページ「Getting your Environment Ready」を読み始めました。
Getting your Environment Ready
共通で必要な設定は以下の2つでした。2
Erlang >= OTP/24 (with wxWidgets >= 3.1.15)
Elixir >= 1.11.4
前述のエラーからもwxWidgets
あたりの対応ができていない印象。
では、これらを解決するために順番に上から書かれている内容を確認していこう、と。
自分の環境はmacOS
だったので、ここの章の内容を実施しています。
Xcodeとnpmの対応を済ませて、いざWxWidgets
への対応へ。
kerl
を利用してソースからのビルド...って、これElixirではなくErlangの世界の話になってきたなぁ。
あ! kerl
を/usr/bin/
にmvしようとするとOperation not permitted
が出てくる。
→ターミナル.appにフルアクセス権限を与えても、同じになる。...仕方ない、ホームディレクトリ配下にディレクトリを作成してkerlをこっちで起動させるように対応。
kerlが動くから、今度こそ...と思っていたら、Error mirroring remote git repository
。が出てきて、タイムアップとなりました。。。
ちなみに、この状態でもう一度run
バッチを動かしてみれば...
余計悪化していました。(画面立ち上がらない)
まぁ、WxWidgets
の問題がまだ解決していないんでしょうね。
最後に
ご覧のように、なかなか環境構築がうまくいかず四苦八苦している状況です。
動かせれば、かなり良い題材になるとは思っていたのですが、(自分にとっては)前途多難な状況。
これで、執筆のネタにできるのかな...ちょっと不安。
最悪は別のネタに切り替えて進めることも考えていかないと...という心境です。
ここまで読んでいただきありがとうございました。
明日からまた、「fukuoka.ex Elixir/Phoenix アドベントカレンダー Advent Calendar 2021」でElixirについての素晴らしい記事をお楽しみください。
後日談
投稿後、いただいたコメントなどを参考にして、以下の対応を実施して、無事にサンプルを動かすことができました。
私の利用OSはMacOSの「Big Sur」ですので、以下Macでの対応となっています。
- Macのアップデートを行った(これはもしかしたら必要がなかったかもですが、XcodeはOSのバージョンを確認されると言う話でもあるので、アップデートしておきました)
- Xcodeを最新の13.2.1にアップデート
- 前回やった対応ではうまくインストールができていなかった(11のままと怒られた)様なので、最新にアップデートした。
- こいつがものすごーーーく、インストールに時間がかかりました。インストールが実行されているのか、と思うくらいに反応がないのが不安になります。インストール中は、
/var/log/install.log
をみて、定期的にインストールが動いているのを確認していました。
- wxWidgetsをbrew経由で再インストール。
- こやつのインストール(アップデート)で、Xcode13を要求されたので、Xcodeのアップデートを行いました。Xcodeのアップデート後、brew経由で再インストールしました。(こちらも、xcodeほどでは無いにしても、それなりに時間はかかりました)
-
nodenv
でnode.jsの12。6.1をインストール3 -
nprogress
をassets
ディレクトリ配下でインストール(assets
ディレクトリのpackage.json
にnprogressの記述があるので実施。)- 余談ですが、Phoenix LiveViewの0.15.1から、「
Progress animation
」はtopbar
に置き換わっているみたいなんですよね。
- 余談ですが、Phoenix LiveViewの0.15.1から、「
-
「Elixirへのいざない」というシリーズで書いています。縁あって、そのうちの一冊が、商業誌化されました。詳細はこちら: https://nextpublishing.jp/book/11841.html ↩
-
2021年12月14日時点 ↩
-
最初はasdfでインストールしようとしていたのですが、パスの指定がうまくいかずに起動できなかったので、一旦諦めました。 ↩