LoginSignup
18
4

OS(Ubuntu 22.04)のインストールから初める仕事用Elixir開発環境の作成方法

Last updated at Posted at 2022-12-16

Brightの対象

Webアプリ開発 Elixir > クラス1 > Elixir環境構築 > ローカルPC > Ubuntu上にElixir環境構築

対象者

・LinuxでElixirの仕事用の開発環境を作りたい方
・Linuxでなくても仕事用の開発環境を作りたい方で参考にしたい方
 Windows、Macはコマンドが違いますが、なにかヒントになるかも
・開発環境のインストールを少しでも自動化したい方

この記事で行うこと

・OSのインストール
・Elixirのインストール
・開発でよく使うものをまとめてインストール
 ・ブラウザーのインストール
 ・VSCodeのインストール
 ・VSCodeのプラグインのインストール
 ・Dockerのインストール

Ubuntuのisoファイルをダウンロード

OSのインストール

ここではKVMでインストールしてますが、好みのVMを使ってください
ほとんどのVMが似たような方法でインストールできます

実機はisoファイルをUSBに転送して(書き込むツールを使って)、USBからブートできればインストール可能です
実機の場合は、何も入ってないSSD等に接続してインストールすることをおすすめします
実機に関してはやり方は省略します
※実機は注意しないとインストール済みのWindowsを間違って消す恐れがあります

一番左のアイコンをクリックして新規のVMを作る
Screenshot from 2022-12-15 20-11-38.png

進むをクリック
Screenshot from 2022-12-15 20-11-47.png

参照をクリック
Screenshot from 2022-12-15 20-11-56.png

ダウンロードしたisoファイルをクリック
Screenshot from 2022-12-15 20-13-10.png

OSをUbuntu20.04を選ぶ(私の環境は22.04を選べなかったので可能な限り近いものを選ぶ)
進むをクリック
Screenshot from 2022-12-15 20-13-24.png

メモリとCPUの数を指定する
進むをクリック
Screenshot from 2022-12-15 20-13-41.png

ディスクの容量を指定する
進むをクリック
Screenshot from 2022-12-15 20-13-55.png

名前を入力して
完了をクリック
Screenshot from 2022-12-15 20-14-47.png

ここからは、実機でもVMでも同じ
エンターキーを押す
Screenshot from 2022-12-15 20-15-04.png

Screenshot from 2022-12-15 20-15-20.png

Screenshot from 2022-12-15 20-16-17.png

日本語を選択してUbuntuをインストールをクリック
Screenshot from 2022-12-15 20-16-23.png

キーボードを選択して、続けるをクリック
Screenshot from 2022-12-15 20-16-34.png

続けるをクリック
Screenshot from 2022-12-15 20-16-41.png

新規のSSDで実機にインストール又はVMの場合はそのままインストールをクリック
※もし他のOSが入ってる時はここの表示内容が変わります、ここで選択ミスをするとデータが消えます
その為新規のSSDまたはVMの前提で進めています
Screenshot from 2022-12-15 20-16-48.png

ここで続けると、インストールが開始されます
※ここがラストチャンスです。上記で選択誤っていた場合はデータを消す恐れがあります。
Screenshot from 2022-12-15 20-16-57.png

日本の地図をクリックして進むをクリック
Screenshot from 2022-12-15 20-17-16.png

情報を入力して続ける
Screenshot from 2022-12-15 20-21-33.png

あとは待つ
Screenshot from 2022-12-15 20-21-49.png

今すぐ再起動するをクリック
Screenshot from 2022-12-15 20-26-34.png

Screenshot from 2022-12-15 20-27-09.png

アカウントをクリック
Screenshot from 2022-12-15 20-27-15.png

パスワードを入力
Screenshot from 2022-12-15 20-27-24.png

次へをクリック
Screenshot from 2022-12-15 20-27-30.png

いいえを選択して次へをクリック
Screenshot from 2022-12-15 20-27-50.png

次へをクリック
Screenshot from 2022-12-15 20-27-58.png

完了をクリック
Screenshot from 2022-12-15 20-28-17.png

この操作を今すぐ実行するをクリック
Screenshot from 2022-12-15 20-28-44.png

インストールをクリック
Screenshot from 2022-12-15 20-28-55.png

パスワード入力し認証をクリック
Screenshot from 2022-12-15 20-29-27.png

Screenshot from 2022-12-15 20-29-34.png

閉じるをクリック
Screenshot from 2022-12-15 20-30-05.png

もし下記が表示していたら、今すぐインストールをクリック
Screenshot from 2022-12-15 20-30-14.png

パスワード入力し認証をクリック
Screenshot from 2022-12-15 20-30-38.png

Screenshot from 2022-12-15 20-30-49.png

今すぐ再起動をクリック
Screenshot from 2022-12-15 20-32-19.png

解像度の変更方法
右クリックしメニューが表示したら、ディスプレイの設定をクリック
Screenshot from 2022-12-15 20-32-47.png

解像度を選択
Screenshot from 2022-12-15 20-32-52.png

解像度選択 例
Screenshot from 2022-12-15 20-33-10.png

変更を保存
Screenshot from 2022-12-15 20-33-15.png

右上の☓をクリックしてがこの画面を閉じる
Screenshot from 2022-12-15 20-33-43.png

これでOSのインストールは終わりです

Elixirのインストール

asdfを使ってElixirをインストールします
・gitをインストール
・インストールスクリプトダウンロード

$ sudo apt update
$ sudo apt install git -y

私が自作したインストールスクリプトはこちらです

$ git clone http://github.com/t-yamanashi/install
$ cd install

$ ls
README.md  devinstall.sh  elixir_asdf_install  vscode_ext.sh
chrome.sh  docker.sh      vscode.sh

cd elixir_asdf_install
 
asdf.sh  elixir.sh  elixir20.sh  phxinstall.sh  postgres.sh  vimelixir.sh

asdfのインストールスクリプト

asdf.sh
#!/bin/sh
sudo apt update
sudo apt install git curl git -y
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.8.1
echo ". $HOME/.asdf/asdf.sh" >> ~/.bashrc
echo ". $HOME/.asdf/completions/asdf.bash" >> ~/.bashrc
echo "type source ~/.bashrc"

asdf.shを実行してasdfをインストール

$ sh asdf.sh
$ source ~/.bashrc

Elixirインストールスクリプト

erlangとelixirのバージョン
25.0.41.13.4-otp-25
は適切に書き換えてください

elixir20.sh
#!/bin/sh
sudo apt -y install build-essential autoconf m4 libncurses5-dev libwxgtk3.0-gtk3-dev libgl1-mesa-dev libglu1-mesa-dev libpng-dev libssh-dev unixodbc-dev xsltproc fop libxml2-utils libncurses-dev openjdk-11-jdk libwxgtk-webview3.0-gtk3-dev

asdf plugin-add erlang https://github.com/asdf-vm/asdf-erlang.git
asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git

asdf install erlang 25.0.4
asdf install elixir 1.13.4-otp-25
asdf global erlang 25.0.4
asdf global elixir 1.13.4-otp-25

elixir20.shを実行

$ sh elixir20.sh 

Phoenixのインストールスクリプト

phxinstall.sh
#!/bin/sh
sudo apt update
sudo apt install -y nodejs npm inotify-tools
sudo npm install n -g
sudo n stable
sudo apt purge -y nodejs npm
mix archive.install hex phx_new

phxinstall.shの実行

$ sh phxinstall.sh

下記のように[Yn]を聞かれたらY

Could not find Hex, which is needed to build dependency :phx_new
Shall I install Hex? (if running non-interactively, use "mix local.hex --force") [Yn] Y
* creating /home/dev/.asdf/installs/elixir/1.13.4-otp-25/.mix/archives/hex-2.0.0
Resolving Hex dependencies...
Resolution completed in 0.009s
New:
  phx_new 1.6.15
* Getting phx_new (Hex package)
All dependencies are up to date
Compiling 11 files (.ex)
Generated phx_new app
Generated archive "phx_new-1.6.15.ez" with MIX_ENV=prod
Are you sure you want to install "phx_new-1.6.15.ez"? [Yn] Y
* creating /home/dev/.asdf/installs/elixir/1.13.4-otp-25/.mix/archives/phx_new-1.6.15

次の作業の為に一つ上のディレクトリに移動しておきます

$ cd ..

開発でよく使うものをまとめてインストール

複数のインストールインストールスクリプトを実行するスクリプト

devinstall.sh
#!/bin/sh
sudo apt update
sudo apt install -y build-essential
sh chrome.sh
sh vscode.sh
sh vscode_ext.sh
sh docker.sh

ブラウザーのインストールスクリプト

chrome.sh
#!/bin/sh
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb

VSCodeのインストールスクリプト

vscode.sh
#!/bin/sh
wget -O code.deb "https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64"
sudo dpkg -i code.deb

VSCodeのプラグインのインストールスクリプト

cat vscode_ext.sh
#!/bin/sh

#Elixir
code --install-extension jakebecker.elixir-ls
code --install-extension ritvyk.heex-html

#docker
code --install-extension ms-vscode-remote.remote-containers
code --install-extension ms-azuretools.vscode-docker

#editorconfig
code --install-extension editorconfig.editorconfig

#etc
code --install-extension mhutchie.git-graph
code --install-extension alefragnani.bookmarks
code --install-extension ms-vsliveshare.vsliveshare

Dockerのインストールスクリプト

docker.sh
#!/bin/sh
sudo apt install curl -y

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo apt-get install -y uidmap
dockerd-rootless-setuptool.sh install

cat  << EOS >> ~/.bashrc
export PATH=/usr/bin:\$PATH
export DOCKER_HOST=unix:///run/user/1000/docker.sock
EOS

curl -L https://raw.githubusercontent.com/docker/compose-cli/main/scripts/install/install_linux.sh | sh
mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.0.0/docker-compose-linux-amd64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose

devinstall.shを実行してまとめてインストール

$ sh devinstall.sh 

動作検証

Elixir

$ iex
Erlang/OTP 25 [erts-13.0.4] [source] [64-bit] [smp:16:16] [ds:16:16:10] [async-threads:1] [jit:ns]

Interactive Elixir (1.13.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> 1..10 |> Enum.sum()
55

※Ctrl + c で終了できます

Dockre検証

$ docker run -it --rm elixir
Erlang/OTP 25 [erts-13.1.2] [source] [64-bit] [smp:16:16] [ds:16:16:10] [async-threads:1] [jit:ns]

Interactive Elixir (1.14.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> 1..10 |> Enum.sum()
55

※Ctrl + c で終了できます

Phoenixプロジェクト作成検証&VSCode

$ cd 
$ mix phx.new hoge --no-ecto

下記のメッセージでYを入力

Fetch and install dependencies? [Yn] 

VSCodeを起動する

$ cd hoge
$ code .

インストールされたプラグインを確認
Screenshot from 2022-12-16 23-00-41.png

プログラムの起動テスト

$ mix phx.server

下記のメッセージでYを入力

I can install a local copy which is just used by Mix
Shall I install rebar3? (if running non-interactively, use "mix local.rebar --force") [Yn] 

http://localhost:4000/にアクセス
Screenshot from 2022-12-16 23-03-46.png

起動確認できました

さらにElixirDesktopの開発環境を作りたい場合は

こちらを参考にしてください↓

18
4
0

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
18
4