Elixir AdventCalendar 16日目ってことになります。
うっかりElixirアドベントカレンダーなんてものに参加してしまったので記事を書いています、あらっきぃです。
Elixirがどういう言語なのかは僕の前後の方々が詳細に解説してくださっていると思うので、今回はシンプルにインストール方法でも解説したいと思います、Windowsでの。
というのも、Windows上でElixirを使う、っていう日本語の記事が調べても一つくらいしかヒットしない(ここ)上に、そこで紹介されてるインストール方法がzipファイルをダウンロードして解凍してPathを通す、というどうもクールな方法ではないのです。
せっかくWindowsで、2行でElixirをインストールできる方法があるのに…。
##前置きはいいからさっさと教えろ!
はい、分かりましたよ、分かりました。
せっかちですね。
これがその2行です。
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin
cinst elixir
かなり密度が高いので、ブラウザのサイズによっては5行くらいに見えるかもしれませんが、確かに2行です。
これをWindowsのcmd.exe
やお気に入りのターミナルエミュレーターに貼りつけて実行してみてください。
2行ですが実行が終わるのにかなり時間がかかります。大体30~40分でしょうか? 実際にインストールしたのが一ヶ月くらい前なのでよく覚えてません。(TODO:一回アンインストールして調べる)
で、コマンドの実行が終わったら(TODO:終了時のスクリーンショットでも貼る)、今度はiex
とでも打ち込んでみてください。すると、Elixirのインタラクティブシェルが起動するはずです。起動したらこんな風にでも打ってみてください。
Interactive Elixir (0.10.0) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> IO.puts "Hello, Elixir World!"
Hello, Elixir World!
:ok
iex(2)>
ハロワ完了!
##上のコマンドは何をやってるの?
さっきのコマンドは一体何をしているのでしょうか?
1つずつ(といっても全部2つですが)説明していきます。
まずは一行目。
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin
コマンドの90%以上を占めるこれですが、その実態はChocolateyのインストールコマンドです。
この公式サイトのトップページに表示されているものですね。
###…Chocolateyってナンデスカ?
Chocolateyというのは、Windows用のパッケージマネージャーです。パッケージマネージャーというのは、Linuxでいうaptとかrpm、MacでいうHomebrewみたいなものですね。
要するに、パッケージの依存関係を自動的に解決しながらインストールすることができるツールです。
コマンドラインからWindowsのソフトがインストールできるんです。すごい。
コマンドの具体的な意味は……。インストールスクリプトを落としてきて、PowerShellでそれを実行して、Chocolateyをインストールしたフォルダをパスに加えてるって感じでしょう、多分。
あんまし深く考えても意味が無いような気がします。
で、次は2行目です。
cinst elixir
これはシンプルですね。
cinst
というのはchoco install
のエイリアス(のようなもの)で、choco
というのはChocolateyのコマンドです。
つまり、Chocolateyを使ってElixirをインストールしているわけです。
ちなみに、これでインストールした場合、そのコマンドプロンプト上ではパスが通った状態になっているのですが、一度ウインドウを消すと無くなってしまうので(確かChocolateyも)、あとでしっかりパスを通しておきましょう。
##雑感
これはElixirの記事ですか?
――いいえ、Chocolateyの記事にもなりそこねた何かです
そんな言葉が妙にしっくりきます。どういうことだ…。
ちなみに、上で散々Chocolateyを勧めてますが、ChocolateyでインストールできるElixirはv0.10.0で、Elixirの最新版はv0.12.0なので、結構古いです。特にElixirは活発なプロジェクトなので、できることなら最新版をおっかけられた方がいいような気もします。
(でさっき、「Chocolateyのパッケージ更新して」ってMLに投げたら、光の速さで「ここではChocolateyのパッケージはサポートしてないんだ。自分で頑張って(意訳)」と言われました。時間があったら自分で更新してみたいと思います)
[追記=20]
久し振りにChocolateyのサイトを覗いてたら、パッケージが定期的に更新されるようになっていました! WindowsでElixirをインストールするなら、よっぽどのことがない限り、この方法が一番いいのではないかと思います。
[/追記]
本当は、Windows上のErlangは標準でwxが動くからGUIが(比較的)簡単に作れるよー、ってやりたかったはずなのですが時間の都合で無理だったので、こんな微妙なクオリティの記事になってしまいました。すみません。
明日は――さんです! っていないしっ!
(Advent Calenderってこれでいいのかな?)