14
Help us understand the problem. What are the problem?

posted at

updated at

Organization

Phoenixバージョン確認/アンインストール/インストールの手順をまとめてみた

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

Phoenixは、最新版の1.4が出たものの、関連ライブラリのバージョンアップが追いついていない(特にEcto 3.x系の関連)ことがあり、Phoenix 1.3系に戻したいケースがあるため、バージョン確認/アンインストール/インストールの手順をまとめておきました

なお、「Phoenix」は、ElixirのWebフレームワークです

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

Phoenixのインストール

Phoenix最新版のインストール ※実行した時点での最新版がインストールされます
mix archive.install hex phx_new
Phoenixのバージョン指定インストール ※ここではPhoenix 1.6.5を入れています
mix archive.install hex phx_new 1.6.5
Phoenix 1.3以前のインストール
mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez

※Phoenix 1.3は、ライブラリ(plug_cowboy)不足で起動失敗するので、 @Yoosuke さんの こちらのコラムを参考にしてください

Phoenixのアンインストール(もしくはアップグレード)

Phoenixのアンインストール
mix archive.uninstall phx_new

Phoenixのアップグレード用コマンドは無いので、一度、アンインストールして、インストールし直してください

インストール済みPhoenixバージョンを確認する

mix phx.new -v
Phoenix v1.6.6

Phoenixのパッケージ名を確認する

mix archive
…(インストール済パッケージが並ぶ)
* phx_new-1.6.6
…(インストール済パッケージが並ぶ)

Phoenix 1.3インストール済で1.4以上をインストールすると…

以下のようなエラーが出るので、先にアンインストールは行ってください

== Compilation error in file lib/phx_new/ecto.ex ==
** (File.Error) could not read file "c:/Users/chris/oss/phoenix/installer/templates/phx_ecto/repo.ex": no such file or directory
    (elixir) lib/file.ex:319: File.read!/1
    lib/phx_new/generator.ex:28: anonymous fn/4 in Phx.New.Generator."MACRO-__before_compile__"/2
    (elixir) lib/enum.ex:1925: Enum."-reduce/3-lists^foldl/2-0-"/3
    lib/phx_new/generator.ex:24: anonymous fn/3 in Phx.New.Generator."MACRO-__before_compile__"/2
    (elixir) lib/enum.ex:1925: Enum."-reduce/3-lists^foldl/2-0-"/3
    expanding macro: Phx.New.Generator.__before_compile__/1
    lib/phx_new/ecto.ex:1: Phx.New.Ecto (module)

注意:既存Phoenix PJのバージョンはmix phx.newした際のバージョンのまま

Phoenixは、起動済みのWebサーバ上で動くWebアプリケーションとは異なり、各Phoenix PJ毎にPhoenixのWebサーバ機能が搭載されたアプリケーションとして構築されるため、Phoenixをインストールし直しても、構築済みのPhoenixのバージョンは変わりません

Phoenixの実態は、Webサーバ機能を含んだソースコードやアセットをジェネレートするアプリケーションに過ぎず、PJ生成時点のインストール済Phoenixバージョンでソレを行うだけなのです

p.s.「いいね」よろしくお願いします

よろしければ、ページ左上の image.pngimage.png のクリックをお願いしますー:bow:

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
14
Help us understand the problem. What are the problem?