fukuoka.exのpiacereです
ご覧いただいて、ありがとうございます
「gigalixirコマンド」が、バージョン古くなったときの対処法についてまとめます
なお、「Phoenix」は、ElixirのWebフレームワークで、「Gigalixir」は、Herokuに似たPhoenixが動くクラウド(PaaS)です
内容が、面白かったり、役に立ったら、「いいね」よろしくお願いします
本コラムの検証環境、事前構築のコマンド
本コラムは、以下環境で検証しています(Windowsで実施していますが、Linuxやmacでも動作する想定です)
- Windows 10
- Elixir 1.8.1 ※最新版のインストール手順はコチラ
gigalixirコマンドのバージョン確認
以下コマンドで、インストール済みのgigalixirコマンドのバージョンと、最新版を比較できます
pip search gigalixir
前回コラムをまとめたときから、今回コラムまでに、バージョンが上がっていました
gigalixir (1.0.19) -
INSTALLED: 1.0.9
LATEST: 1.0.19
インストール済みgigalixirコマンドをバックアップする
Windowsで動かすための修正などが、インストール済みgigalixirコマンドには入っているため、バックアップを取っておきます
まず、gigalixirコマンドがインストールされたpipライブラリフォルダを、以下コマンドで特定します
pip show gigalixir
「Location」が、gigalixirコマンドのインストールされたフォルダです
Name: gigalixir
Version: 1.0.9
Summary: UNKNOWN
Home-page: https://github.com/gigalixir/gigalixir-cli
Author: Jesse Shieh
Author-email: jesse@gigalixir.com
License: UNKNOWN
Location: xxxxxxxx/lib/site-packages
Requires: click, requests, stripe, rollbar, pygments
Required-by:
バックアップを取ります
cd xxxxxxxx/lib/site-packages
copy gigalixir gigalixir_backup
ちなみにLinux/macのときは、以下になります
cd xxxxxxxx/lib/site-packages
cp -a gigalixir gigalixir_backup
gigalixirコマンドをアップグレードする
gigalixirコマンドのアップグレードは、インストール時のコマンドと同じです
pip install gigalixir --ignore-installed six
バージョンが上がったことが確認できました
pip search gigalixir
gigalixir (1.0.19) -
INSTALLED: 1.0.19 (latest)
【Windowsのみ】gigalixirコマンドをWindowsで利用可能にする
※【2020/2/5確認】gigalixirコマンドが、Windowsでも標準対応になり、本項は実施不要となりました
バージョンアップをするたびに、初回インストール時同様、Windows対応が必要です
まず、gigalixirコマンドがインストールされたpipライブラリフォルダを、以下コマンドで特定します
pip show gigalixir
「Location」が、gigalixirコマンドのインストールされたフォルダです
Name: gigalixir
Version: 1.0.9
Summary: UNKNOWN
Home-page: https://github.com/gigalixir/gigalixir-cli
Author: Jesse Shieh
Author-email: jesse@gigalixir.com
License: UNKNOWN
Location: xxxxxxxx/lib/site-packages
Requires: click, requests, stripe, rollbar, pygments
Required-by:
このフォルダ配下にある、「__init__.py
」の以下変更が必要です(以前のバージョンと行番号が異なっていました)
224: PLATFORM = call("uname -s").lower() # linux or darwin
225: if PLATFORM == "linux":
226: ctx.obj['router'] = LinuxRouter()
227: ctx.obj['opener'] = LinuxOpener()
228: elif PLATFORM == "darwin":
229: ctx.obj['router'] = DarwinRouter()
230: ctx.obj['opener'] = DarwinOpener()
231: else:
232: raise Exception("Unknown platform: %s" % PLATFORM)
else配下をLinuxと同じ処理をコピーします
224: PLATFORM = call("uname -s").lower() # linux or darwin
225: if PLATFORM == "linux":
226: ctx.obj['router'] = LinuxRouter()
227: ctx.obj['opener'] = LinuxOpener()
228: elif PLATFORM == "darwin":
229: ctx.obj['router'] = DarwinRouter()
230: ctx.obj['opener'] = DarwinOpener()
231: else:
232: ctx.obj['router'] = LinuxRouter()
233: ctx.obj['opener'] = LinuxOpener()
gigalixirコマンドの動作確認
gigalixirコマンドで、まずバージョン確認します
gigalixir version
次に、Gigalixirにアカウント登録した際のメールアドレス/パスワードでログインしてみます
gigalixir login
Email: 【メールアドレス】
Password: 【パスワード】
Would you like us to save your api key to your ~/.netrc file? [Y/n]: Y
Logged in as 【メールアドレス】
うまくログインできたようなので、Gigalixir appsも確認します
gigalixir apps
[
{
"cloud": "gcp",
"region": "us-central1",
"replicas": 1,
"size": 0.2,
"stack": "gigalixir-14",
"unique_name": "xxxxxxxxxxxxxxxxxxxxxx"
}
]
うまく動きました
p.s.「いいね」よろしくお願いします
ページ左上の や のクリックを、どうぞよろしくお願いします
ここの数字が増えると、書き手としては「ウケている」という感覚が得られ、連載を更に進化させていくモチベーションになりますので、もっとElixirネタを見たいというあなた、私達と一緒に盛り上げてください!