CentOS 7.7 Erlang 및 Elixir 설치
설치하기 전에 그것들의 간략한 설명을 먼저 보아라
Erlang
Erlang은 고가용성에 대한 요구가 있는 대규모 확장 가능한 플로피 실시간 시스템을 구축하는 데 사용되는 소스 프로그래밍 언어이다.그것은 보통 전신, 은행, 전자상거래, 컴퓨터 전화, 실시간 메시지에 쓰인다.Erlang의runtime 시스템은 병렬, 배달, 용량 오류에 대한 내장 지원을 갖추고 있습니다.그것은 에릭슨 컴퓨터 과학 실험실에서 설계한 것이다.
Elixir
Elixir는 신축 및 유지보수 가능한 어플리케이션을 구축하기 위한 동적 기능 언어입니다.Elixir는 짧은 지연 시간, 분산 및 내결함성 시스템으로 유명한 Erlang VM을 활용하면서 웹 개발 및 내장형 소프트웨어 분야에도 성공적으로 활용했습니다.
이제 Erlang 및 Elixir를 CentOS 7.7 64비트 서버에 설치합니다.
사전 설치 준비
Erlang 및 Elixir를 설치하기 전에 다음 종속성을 설치해야 합니다.
yum update
yum install epel-release
yum install gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git wget wxBase.x86_64
침묵은 금이다https://blog.markhoo.com
Erlang 설치
공식 저장소의 Erlang 버전이 이전 버전일 수 있으므로 최신 Erlang 버전을 다운로드하여 설치합니다.
Erlang 공식 저장소를 추가하여 최신 Erlang을 설치합니다.
먼저 Erlang 저장소 페이지에서 사용 중인 릴리스에 따라 저장소를 다운로드합니다.
Erlang이 CentOS 7.7에 설치되어 있으므로 다음 저장소를 추가합니다.
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
다음 명령을 사용하여 저장소 목록을 업데이트합니다.
yum update
다음 명령을 사용하여erlang을 설치합니다
yum install erlang
현재 Erlang의 최신 버전이 설치되었습니다.
Erlang 확인
다음 명령을 실행하여 Erlang이 설치되어 있는지 확인합니다.
erl
출력 예:
Erlang/OTP 22 [erts-10.6] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
Eshell V10.6 (abort with ^G)
1>
위에서 설명한 Erlang shell이 표시되면 설치가 성공했습니다.셸을 닫으려면 Ctrl-C 를 두 번 누르면 됩니다.
Erlang에서 예제 "hello world"프로그램 테스트
"hello.erl"이라는 새 파일을 만듭니다.
vi hello.erl
다음 코드를 추가합니다.
-module(hello).
-export([hello_world/0]).
hello_world() -> io:fwrite("hello, world
").
:wq
파일을 저장하고 닫습니다.다음 명령을 사용하여 Erlang shell을 엽니다.
erl
다음 명령을 실행하고 각 명령의 끝에 영어 점을 추가합니다.
c(hello).
hello:hello_world().
출력 예:
[root@localhost ~]# erl
Erlang/OTP 22 [erts-10.6] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
Eshell V10.6 (abort with ^G)
1> c(hello).
{ok,hello}
2> hello:hello_world().
hello, world
ok
3>
침묵은 금이다https://blog.markhoo.com
Elixir 설치
Elixir를 설치하기 전에 먼저 Erlang을 설치해야 합니다.
Elixir는 EPEL 저장소에서 사용할 수 있지만 이미 사용되지 않습니다.최신 버전을 설치하기 위해서, 여기는 원본 코드를 사용하여 설치를 컴파일합니다.
이제 Elixir를 GitHub에서 로컬로 끌어옵니다.
git clone -b v1.9.4 https://github.com/elixir-lang/elixir.git
위의 명령은 현재 작업 디렉터리
elixir
의 폴더로 최신 버전을 가져옵니다.주의: 버전을 지정하는 것이 좋습니다. 그렇지 않으면 버전을 설치하고 확인하면 다음과 같습니다. 원본 코드와 버전 번호가 일치하지 않을 수도 있습니다.Erlang/OTP 22 [erts-10.6] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
Elixir 1.10.0-dev (ee758f9) (compiled with Erlang/OTP 22)
다음으로
elixir
디렉토리로 이동합니다.cd elixir/
다음 명령을 실행하여 Elixir 컴파일을 시작합니다.
make clean test
출력 예:
[root@localhost elixir]# make clean test
rm -rf ebin
rm -rf lib/*/ebin
rm -rf lib/elixir/src/elixir_parser.erl
make[1]: “/root/elixir”
rm -rf lib/*/_build/
rm -rf lib/*/tmp/
rm -rf lib/elixir/test/ebin/
rm -rf lib/mix/test/fixtures/deps_on_git_repo/
rm -rf lib/mix/test/fixtures/git_rebar/
rm -rf lib/mix/test/fixtures/git_repo/
rm -rf lib/mix/test/fixtures/git_sparse_repo/
rm -f erl_crash.dump
make[2]: “/root/elixir”
rm -f man/elixir.1
rm -f man/elixir.1.bak
rm -f man/iex.1
rm -f man/iex.1.bak
make[2]: “/root/elixir”
make[1]: “/root/elixir”
Recompile: src/elixir_utils
Recompile: src/elixir_tokenizer
Recompile: src/elixir_sup
Recompile: src/elixir_rewrite
Recompile: src/elixir_quote
Recompile: src/elixir_parser
Recompile: src/elixir_overridable
Recompile: src/elixir_module
Recompile: src/elixir_map
Recompile: src/elixir_locals
Recompile: src/elixir_lexical
Recompile: src/elixir_interpolation
Recompile: src/elixir_import
Recompile: src/elixir_fn
Recompile: src/elixir_expand
Recompile: src/elixir_errors
Recompile: src/elixir_erl_var
Recompile: src/elixir_erl_try
Recompile: src/elixir_erl_pass
Recompile: src/elixir_erl_for
Recompile: src/elixir_erl_compiler
Recompile: src/elixir_erl_clauses
Recompile: src/elixir_erl
Recompile: src/elixir_env
Recompile: src/elixir_dispatch
Recompile: src/elixir_def
Recompile: src/elixir_config
Recompile: src/elixir_compiler
Recompile: src/elixir_code_server
Recompile: src/elixir_clauses
Recompile: src/elixir_bootstrap
Recompile: src/elixir_bitstring
Recompile: src/elixir_aliases
Recompile: src/elixir
Generated elixir app
==> bootstrap (compile)
Compiled lib/elixir/lib/kernel.ex
Compiled lib/elixir/lib/macro/env.ex
Compiled lib/elixir/lib/keyword.ex
Compiled lib/elixir/lib/module.ex
Compiled lib/elixir/lib/list.ex
Compiled lib/elixir/lib/macro.ex
Compiled lib/elixir/lib/kernel/typespec.ex
Compiled lib/elixir/lib/code.ex
Compiled lib/elixir/lib/code/identifier.ex
Compiled lib/elixir/lib/module/checker.ex
Compiled lib/elixir/lib/module/locals_tracker.ex
Compiled lib/elixir/lib/module/parallel_checker.ex
Compiled lib/elixir/lib/module/types/helpers.ex
Compiled lib/elixir/lib/module/types/infer.ex
Compiled lib/elixir/lib/module/types/expr.ex
Compiled lib/elixir/lib/module/types/pattern.ex
Compiled lib/elixir/lib/module/types.ex
Compiled lib/elixir/lib/kernel/utils.ex
Compiled lib/elixir/lib/exception.ex
Compiled lib/elixir/lib/protocol.ex
Compiled lib/elixir/lib/stream/reducers.ex
Compiled lib/elixir/lib/enum.ex
Compiled lib/elixir/lib/map.ex
Compiled lib/elixir/lib/inspect/algebra.ex
Compiled lib/elixir/lib/inspect.ex
Compiled lib/elixir/lib/access.ex
Compiled lib/elixir/lib/range.ex
Compiled lib/elixir/lib/regex.ex
Compiled lib/elixir/lib/string.ex
Compiled lib/elixir/lib/string/chars.ex
Compiled lib/elixir/lib/io.ex
Compiled lib/elixir/lib/path.ex
Compiled lib/elixir/lib/file.ex
Compiled lib/elixir/lib/system.ex
Compiled lib/elixir/lib/kernel/cli.ex
Compiled lib/elixir/lib/kernel/error_handler.ex
Compiled lib/elixir/lib/kernel/parallel_compiler.ex
Compiled lib/elixir/lib/kernel/lexical_tracker.ex
make[1]: “/root/elixir”
==> unicode (compile)
Compiling /root/elixir/lib/elixir/unicode/unicode.ex (it's taking more than 15s)
make[1]: “/root/elixir”
==> elixir (compile)
Compiling /root/elixir/lib/elixir/lib/base.ex (it's taking more than 15s)
make[1]: “/root/elixir”
Generated elixir app
make[1]: “/root/elixir”
==> eex (compile)
==> mix (compile)
Generated mix app
==> ex_unit (compile)
Generated ex_unit app
==> logger (compile)
Generated logger app
Generated eex app
==> iex (compile)
Generated iex app
==> elixir (eunit)
All 190 tests passed.
==> elixir (ex_unit)
........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Finished in 81.6 seconds (47.2s on load, 34.4s on tests)
1569 doctests, 3374 tests, 0 failures, 7 excluded
Randomized with seed 847643
==> ex_unit (ex_unit)
...............................................................................................................................................................................................................................................................................................................................................................
Finished in 6.2 seconds (3.9s on load, 2.3s on tests)
42 doctests, 309 tests, 0 failures
Randomized with seed 541463
==> logger (ex_unit)
............................................................................................................................
Finished in 2.4 seconds (1.9s on load, 0.4s on tests)
3 doctests, 121 tests, 0 failures
Randomized with seed 211604
==> mix (ex_unit)
Excluding tags: [windows: true]
............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Finished in 158.5 seconds (12.1s on load, 146.4s on tests)
9 doctests, 611 tests, 0 failures
Randomized with seed 334499
==> eex (ex_unit)
...........................................................................................
Finished in 0.5 seconds (0.4s on load, 0.06s on tests)
5 doctests, 86 tests, 0 failures
Randomized with seed 599118
==> iex (ex_unit)
.......................................................................................................................................................................................................................................
Finished in 8.5 seconds (2.1s on load, 6.3s on tests)
231 tests, 0 failures
Randomized with seed 207545
[root@localhost elixir]#
테스트가 통과되면 컴파일 설치가 완료된 것을 의미합니다.
그런 다음 PATH 환경 변수에 Elixir의 bin 경로를 추가합니다. 그렇지 않으면 Elixir가 제대로 작동하지 않습니다.
메서드 1(일시적 적용)은 다음 명령을 실행합니다.
export PATH="$PATH:/root/elixir/bin"
여기에 Elixir를 설치했습니다
/root/elixir/
.이 경로를 실제 Elixir 설치 경로로 바꿔야 합니다.방법2(현재 로그인한 사용자에게만 적용, 영구적으로 적용)
vi ~/.bash_profile
기본값은 다음과 같습니다.
PATH=$PATH:$HOME/bin
추가 후:
PATH=$PATH:$HOME/bin:$PATH:/root/elixir/bin
다음 실행
source ~/.bash_profile
을 즉시 적용하거나 reboot
다시 시작합니다.방법3(모든 시스템 사용자에게 적용, 영구 적용)
vi/etc/profile
파일에서 마지막으로 다음 두 행을 추가합니다.
PATH="$PATH:/root/elixir/bin"
export PATH
다음 실행
source /etc/profile
을 즉시 적용하거나 reboot
다시 시작합니다.Elixir 확인
Elixir가 설치되어 있는지 확인하려면 다음을 실행하십시오.
iex
출력 예:
Erlang/OTP 22 [erts-10.6] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
Interactive Elixir (1.9.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>
Elixir shell을 보면 설치가 성공적으로 완료되었습니다!
마찬가지로 Elixir 셸을 닫으려면 Ctrl-C 를 두 번 누르면 됩니다.
Elixir 버전을 보려면 다음과 같이 하십시오.
elixir --version
출력 예:
Erlang/OTP 22 [erts-10.6] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
Elixir 1.10.0-dev (ee758f9) (compiled with Erlang/OTP 22)
현재 CentOS 7.7 서버에 작업 가능한 Erlang 및 Elixir 개발 환경이 설치되어 있으며 모든 설치가 완료되었습니다!
침묵은 금이다https://blog.markhoo.com
참조 링크:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.