Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2722

Elixirの環境構築を一発で終わらせる!

$
0
0

概要

elixirを始めるにあたって、依存するアプリケーションやerlangのインストール、erlenvexenvを用いたバージョン管理をするのが大変そうだと思ったので対話形式のスクリプトを作ってみました

環境

  • macOS
  • brewはインストール済み
  • anyenvを使うのでない人はスクリプト内で入れる

スクリプト

#!/bin/bash# brewで必要なファイルを入れるTARGETS=(
  openssl@1.1
  unixodbc
  wxmac
  fop
)echo"Install dependencies. If you don't have applications, enter 'y' key."for target in${TARGETS[@]}do
  echo""read-p"Do you want install ${target}? (y/n): " check
  if[$check="y"];then
      brew install$targetif[$target="openssl@1.1"];then
        export PATH="$PATH:/usr/local/opt/openssl@1.1/bin"echo'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"'>>$HOME/.zshrc # zshfi
  fi
done# anyenvいれるif!(type"anyenv"> /dev/null 2>&1);then
  echo-e"\nanyenv is installing..."
  git clone https://github.com/anyenv/anyenv $HOME/.anyenv
  $HOME/.anyenv/bin/anyenv init
  export PATH="$PATH:$HOME/./anyenv/bin"
  anyenv install--initelse
  echo-e"\nanyenv is already setuped."fi# erlenv, exenvいれるarr=(erlenv exenv)for lang in${arr[@]}do
  if!(type"$lang"> /dev/null 2>&1);then
    echo-e"\n${lang} is installing..."
    anyenv install$langexport PATH="$PATH:$HOME/./anyenv/envs/${lang}/bin"else
    echo-e"\n${lang} is already setuped."fi
done# erlangインストールecho""read-p"Enter erlang version (version or n [ex: 23.1]): " erlang_version

if[$erlang_version!="n"];then
  echo-p"\nDownload from here: http://www.erlang.org/download/otp_src_${erlang_version}.tar.gz"
  curl -OL http://erlang.org/download/otp_src_${erlang_version}.tar.gz > otp_src_${erlang_version}.tar.gz
  # 解凍, インストールtar zxf otp_src_${erlang_version}.tar.gz
  cd otp_src_${erlang_version}

  ./configure                                                    \--prefix=$HOME/.anyenv/envs/erlenv/releases/$erlang_version\--enable-dynamic-ssl-lib\--with-ssl=/usr/local/opt/openssl@1.1                        \--enable-smp-support\--enable-threads\--enable-darwin-64bit\--enable-kernel-poll\--enable-hipe\--without-javac\--enable-dirty-schedulers\--enable-sharing-preserving\--enable-lock-counter\--disable-sctp\--without-obdc


  make -j 4
  make install# global設定
  erlenv global ${erlang_version}
  erlenv rehash

  # 不要なファイル削除echo""read-p"remove erlang file? (y/n): " remove_erlang
  if[$remove_erlang="y"];then
    cd ..
    rm-rf otp_src_${erlang_version} otp_src_${erlang_version}.tar.gz
  fi
fi# elixerインストールecho""
exenv install--listecho""read-p"Choose elixir version (version or n [ex: 1.10.0]): " elixir_version

if[$elixir_version!="n"];then
  exenv install${elixir_version}# global設定
  exenv global ${elixir_version}fi

https://qiita.com/zacky1972/items/27676894a03fb881e160

configureのオプションはあまりわからないのでコチラの記事を参考にさせていただきました


Viewing all articles
Browse latest Browse all 2722

Trending Articles