Proxy環境下でElixirを動かすまでにやったこと
社内の環境だとProxyがあるためうまく動かないことはわかっていた。
時間ができたので、突貫でElixirの仮環境を作成しました。
時間ができたので、突貫でElixirの仮環境を作成しました。
突貫で作業したので、内容に不備があるかもしれません。
もし問題が発生しましたら、お手数ですが、ご連絡していただけると助かります。
また、私の環境で行ったことなので、環境の差異によって何か起こるかもしれませんのであらかじめご了承ください
もし問題が発生しましたら、お手数ですが、ご連絡していただけると助かります。
また、私の環境で行ったことなので、環境の差異によって何か起こるかもしれませんのであらかじめご了承ください
前提条件
以下のものがインストール済みであること。
- Git
- Erlang
- Elixir
環境
- Windows7 (32bit)
- Git 2.?
- Erlang/OTP 19
- Elixir v1.3.4
Gitのproxyを設定する
proxy環境下なので、proxyの設定がないとcloneさえできない!(残当)
そういうことで、まずはGitを使えるようにするためにgitの設定にproxyを追加します。
(Git Bashで実行しました)
そういうことで、まずはGitを使えるようにするためにgitの設定にproxyを追加します。
(Git Bashで実行しました)
Example:
$ git config --global http.proxy http://proxy.example.com:[port番号]
$ git config --global https.proxy http://proxy.example.com:[port番号]
$ git config --list
...
http.proxy=http://proxy.example.com:[port番号]
https.proxy=http://proxy.example.com:[port番号]
参考になるかわかりませんが、proxyについてはIEの設定から引っこ抜きました。
Elixir(mix)にlocal.hexをインストールする
私の環境だとどうにも”mix local.hex”を実行しても外へ接続ができませんでした。
仕方がないので、Githubからソースを取得してそれをアーカイブに固めました。
仕方がないので、Githubからソースを取得してそれをアーカイブに固めました。
hexpm/hex: https://github.com/hexpm/hex
Example:
$ cd path/to/clone/directory
$ git clone git@github.com:hexpm/hex.git
$ cd hex
$ mix archive.build
これでhexをアーカイブに固めたファイルができています。
ファイル名を忘れてしまったのですが、.ezで作成されているはずです。
そのファイルを”mix archive.install”で指定してあげればいいんです。
ファイル名を忘れてしまったのですが、.ezで作成されているはずです。
そのファイルを”mix archive.install”で指定してあげればいいんです。
Note: hexのカスタムタスクは使えるようになったが、結局local.hexは使えなかった。
Example:
$ mix archive.install [hex archive].ez
$ mix archive
hexの設定にproxyを追加します。
Example:
$ mix hex.config http_proxy http://proxy.example.com:[port番号]
$ mix hex.config https_proxy http://proxy.example.com:[port番号]
$ mix hex.config
Note: とりあえず設定していますが、httpsの方は意味があるのかはわかりません。(変な設定入れさせるな!って人ははずして進めてください)
Elixir(mix)にlocal.rebarをインストールする
これが意外と面倒でした。
Erlangのソースですからmix archive.buildで.ezファイルの作成ができなかったので・・・
しかし、すでに固めてあることを見つけたので最終的には簡単な手順でした。
Erlangのソースですからmix archive.buildで.ezファイルの作成ができなかったので・・・
しかし、すでに固めてあることを見つけたので最終的には簡単な手順でした。
下記のURL先からrebarをダウンロードしてきます。(2016/11/1確認)
(ダウンロードしたファイルは参照しやすいところに設置しておく、この後指定します)
(ダウンロードしたファイルは参照しやすいところに設置しておく、この後指定します)
なぜかよくわからないんですが、wikiからダウンロードできるみたいで・・・
Example:
$ mix local.rebar rebar [path/to/rebar]
rebar3を使う場合。
公式サイトでもGithubからでもrebar3はダウンロードできます。
公式サイトでもGithubからでもrebar3はダウンロードできます。
Example:
$ mix local.rebar rebar3 [path/to/rebar3]
Note: local.hexと同じく、local.rebarは使えないままでした。
Elixirアプリケーションの実行確認
Elixirのアプリケーションを作成して実行確認をとりましょう。
Example:
$ cd path/to/app/create/directory
$ mix new example
$ cd ./example
特に使うわけじゃないですが、deps.getの確認をしたいのでパッケージを適当にしてする。(ここではPlugとCowboyを取得します)
File: mix.exs
defmodule Example.Mixfile do
...
defp deps do
[{:cowboy, "~> 1.0", optional: true},
{:plug, "~> 1.1"}]
end
end
適当にモジュールを作成しましょう。
File: lib/example.ex
defmodule Example do
def test do
IO.inspect "hogehoge"
end
end
パッケージの取得、コンパイル、iexからモジュールの実行までできれば問題はないでしょう。
Example:
$ mix deps.get
$ mix compile
$ iex -S mix
iex> Example.test
"hogehoge"
"hogehoge"
おまけ
Phoenixフレームワークを使うのであれば、Node.jsで使われているnpmのproxy設定もあった方がよいです。
Example:
$ npm -g config set proxy http://proxy.example.com:[port番号]
$ npm -g config set https-proxy http://proxy.example.com:[port番号]
$ npm config list
上記でつながらない場合、下記も設定してみると動いてくれるかもしれません。
$ npm -g config set registry http://registry.npmjs.org/
おわりに
こんな感じでかなり無理くり環境構築もできるみたいです。
まぁおすすめはしません。
ではノシ
まぁおすすめはしません。
ではノシ