LoginSignup
4

More than 3 years have passed since last update.

gigalixirコマンドのアップグレード

Last updated at Posted at 2019-06-19

fukuoka.exのpiacereです
ご覧いただいて、ありがとうございます:bow:

「gigalixirコマンド」が、バージョン古くなったときの対処法についてまとめます

なお、「Phoenix」は、ElixirのWebフレームワークで、「Gigalixir」は、Herokuに似たPhoenixが動くクラウド(PaaS)です

内容が、面白かったり、役に立ったら、「いいね」よろしくお願いします :wink:

本コラムの検証環境、事前構築のコマンド

本コラムは、以下環境で検証しています(Windowsで実施していますが、Linuxやmacでも動作する想定です)

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」の以下変更が必要です(以前のバージョンと行番号が異なっていました)

【pipライブラリフォルダ】/site-packages/gigalixir/__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と同じ処理をコピーします

【pipライブラリフォルダ】/site-packages/gigalixir/__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:        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.「いいね」よろしくお願いします

ページ左上の image.pngimage.png のクリックを、どうぞよろしくお願いします:bow:
ここの数字が増えると、書き手としては「ウケている」という感覚が得られ、連載を更に進化させていくモチベーションになりますので、もっとElixirネタを見たいというあなた、私達と一緒に盛り上げてください!:tada:

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4