우분투 리눅스에 설치하기


이번 파트에서는 우분투 리눅스 호스트에 아이펀 엔진 을 설치하는 방법에 대해서 설명합니다.

Note

윈도우 용 아이펀 엔진에 대한 내용은 윈도우에 설치하기 파트를 참고하시기 바랍니다.

아이펀 엔진 은 물리 호스트 뿐 아니라 AWS 나 Azure, Google Cloud Platform 같은 클라우드 서비스나 VMWare, Hyper-V, VirtualBox 같은 가상화 솔루션으로 생성한 가상 호스트에서도 동작하며, 지원하는 우분투 리눅스 종류는 다음과 같습니다.

  • Ubuntu 16.04 LTS 64bit

  • Ubuntu 18.04 LTS 64bit

  • Ubuntu 20.04 LTS 64bit

아이펀 엔진 설치를 진행하기 전에 Ubuntu Linux 다운로드 페이지 에서 설치 디스크 이미지를 다운로드해서 설치를 진행하시거나, 클라우드 서비스의 가상 호스트 이미지를 사용해서 우분투 호스트를 준비 해 주세요.

Warning

32bit 아키텍처의 리눅스 운영체제 및 Cygwin 이나 WSL (Windows Subsystem for Linux) 기반의 리눅스 운영체제는 지원하지 않습니다.

설치 후 개발 환경을 설정하고 프로젝트를 생성하는 방법은 개발환경 만들기 항목을 참고해 주시기 바랍니다.

APT 저장소 설정하기

아이펀 엔진 은 우분투 리눅스의 패키지 매니저가 사용할 수 있는 APT 저장소를 제공합니다. APT 저장소를 설정하면 패키지 매니저를 사용해서 편리하게 설치/삭제/업그레이드를 진행할 수 있습니다.

APT 저장소를 설정하는 방식은 아이펀 엔진 에서 제공하는 데비안 패키지를 설치하는 방식과 수동으로 직접 설정하는 두가지가 있습니다.

Important

APT 저장소를 사용하기 위해서는 아래 호스트들과 통신이 가능해야 합니다.

  • keyserver.ubuntu.com (PGP key server) :

    패키지를 설치해서 설정하기 항목을 진행하기 위해 필요합니다. 만약 이 서버와 통신이 불가능한 경우 수동으로 저장소 설정하기 항목을 참고하시어, 직접 설정할 수 있습니다.

  • www.ifunfactory.com (54.65.9.158; 향후에 바뀔 수 있습니다) :

    아이펀 엔진 패키지를 내려받기 위한 서버로 만약 이 서버와 통신을 할 수 없는 경우, APT 저장소를 이용할 수 없습니다.

패키지를 설치해서 설정하기

우분투 리눅스 용 아이펀 엔진 자동 설정 패키지 를 다운받아 더블 클릭해서 설치하거나, 터미널 창을 열어 다음 명령을 실행합니다.

$ sudo apt-get install wget apt-transport-https
$ wget https://ifunfactory.com/engine/funapi-apt-setup.deb
$ sudo dpkg -i funapi-apt-setup.deb

수동으로 저장소 설정하기

만일, 방화벽 설정 등으로 인해 외부와 통신을 할 수 없는 경우에는 앞에서 언급한 방법으로 APT 저장소를 설정할 수 없습니다.

이 경우에는 다음 내용을 참고하시어 직접 아이펀 엔진APT 저장소를 설정 해 주세요.

  1. 다음 내용을 ifunfactory.gpg.key 로 저장해주세요.

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBFHLrjgBCACzI7l8y1nygGN1b0XwgEDdBZGUlaTZhyHs1Y2VLBmYm3dgyRHp
qLfHhVGZm1FXzT1X7GlGgQRV+GsyeXNUHWcY794UwZMCM4h0mGDGXX1eR2objUNZ
tVE9VzoXwKwnu7mKJGXgSm+olZKQ43wPnr7Keyap42yKSJv3GBkMmfKjwnjTooLk
g62wwpJa3AOZBBqLwHKt0BYVRT/7ILXJnW4NqDoQPeT1y3Iqt1KxsaR1Ik+byh3g
UUvDqgFRXPW+HDkB265MbQgXHmPTGih8j7ygZz1dM5pJQ//bMqNHmbDPZSwLt0Wb
yB6UNbO9W5ZENCz4h7+3utYAvwERqdZ/nxKZABEBAAG0L0Z1bmFwaSBTdXBwb3J0
IDxmdW5hcGktc3VwcG9ydEBpZnVuZmFjdG9yeS5jb20+iQE4BBMBAgAiBQJRy644
AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCj9+/dSTj/5jzNB/45CD2R
Bv8CrB+ErIVeFjXuhqYwg2fuAdQcXbVpla5rhrvHjGEbCl35kKqEPFP09YvWReIi
i3kK1yF7zNxyk/9N3GUZpIEgbyEuNVjkizPjrs+DWx0j6oZZQLrsEflUMxfALAmr
v3n6fB6XeCk2Hd83XBoqZSHKfzLPFUynS7e2/Vte4UVKbgFPsypPXazYrqvq4ej2
bnHva6/aUakti+A+l8Cs0kf2WzrwOp47PcceT5N0/mwF5XslwaiqH6q+6iGNLdj0
9hjzRcdZ5My/Do6rGXcFJJY17U72HGFTUCU8RXZRTBY2EfjAV6zQlKlaO/Aw0eWX
7UMXUhc+CLv+aZOxuQENBFHLrjgBCAC/xHRd1tH2zs8nplyI3EYRyWqF82waGIyK
SnV/pJ4CCc2YuECnQV0RvoOtZiuwmB3CuNTSEEyAfwU/K3tMsvczMN04MjQGvSA1
4it7xIkg24Qcx0O46JBwvihR4sZ8O/j6X/nVV4pN4zUg5PQh///yn/R7mVH2sWVW
WE5ZpZ1G/eA/fSiqdmZPOjFW9SWsVgPXvyKCM0b5lCjMlbwZspx8YGblJtDqCtWW
Ip2RnGTCSkSo4kRauDU+iGYojUsgsmUSxjtdGZHa41g5HDRoIcL3e40UYe3el7Sx
Aa+lV529kHAZCWtDfS7MoqtE7gvHSGoJAK+2nCAEfw1mz0Ja+XELABEBAAGJAR8E
GAECAAkFAlHLrjgCGwwACgkQo/fv3Uk4/+Y36Qf/VPov5n+h4pEzKspA6hHezD4J
rw9rVCQ/BvidBerV4VvL+oH5ghBV5QeAvd2TyccuKdZJsikAM9wUM1MS+Y4Akno7
vgIKO/7sGGkbAkgSG4vvfG4W9EQ0GqFycaTl9zpiNUrUri5vGNK2PC6p9uXxXmdQ
3iHe1c5+5jvLKCzOdC+Er2E949PzsMuI2L4viNp72J6ilm62RJ+/Pg1rOaRmTH1H
ax7L3Hwsy0GXeubKaeDizvBeKcv6e08DqI2TCllmd8NkR6OSLuks4yHDU1ztAa0c
+RcnddKag+TCYwto617oMZvCPaic/d6AjW3OL48PFNUPpfBeZEJ8B8tm16HxaQ==
=p+5n
-----END PGP PUBLIC KEY BLOCK-----
  1. 그리고, 위 키를 APT 패키지 관리자에 추가 합니다.

$ sudo apt-key add ifunfactory.gpg.key
OK
  1. 마지막으로 아래 내용을 /etc/apt/source.list.d/ifunfactory.list 파일에 저장해주세요.

deb [arch=amd64] https://www.ifunfactory.com/apt/ xenial non-free foreign
deb [arch=amd64] https://www.ifunfactory.com/apt/ bionic non-free foreign
deb [arch=amd64] https://www.ifunfactory.com/apt/ focal non-free foreign

Mono 프로젝트 저장소 설정하기

아이펀 엔진Protobuf 라이브러리C# 언어 를 활용할 개발 환경을 지원하기 위해서 Mono 라이브러리 를 사용합니다.

Ubuntu OS 에서 아이펀 엔진 을 설치하기에 앞서 아래 절차에 따라 Mono 라이브러리 저장소를 설정 해 주시기 바랍니다.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/ubuntu stable-xenial/snapshots/6.8 main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
sudo apt-get install mono-devel
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/ubuntu stable-bionic/snapshots/6.8 main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
sudo apt-get install mono-devel
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/ubuntu stable-focal/snapshots/6.8 main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
sudo apt-get install mono-devel

배포판 타입 선택하기

아이펀 엔진 은 두 종류의 배포판을 제공하고 있습니다.

  • Stable 배포판: 안정화 버전

  • Experimental 배포판: 시험적인 기능들을 포함하는 버전

새로운 기능이 추가되거나 기존 기능에 변경이 생기면 먼저 experimental 버전을 통해서 안정성을 검증한 후에 stable 버전에 반영됩니다.

저장소를 패키지를 통해서 자동 설정하셨다면 stable 저장소를 사용하도록 초기화되며 funapi_select_repo 명령을 사용해서 현재 설정된 배포판 종류를 확인하거나 변경할 수 있습니다.

현재 배포판 타입 확인하기

현재 선택된 엔진의 배포판 타입과 실제로 설치된 엔진의 패키지 저장소 정보는 다음과 같은 방법으로 확인할 수 있습니다.

$ funapi_select_repo
Current repository: stable
Current package: funapi1-runtime_1.0.0-1661xenial: stable

위 명령어의 결과를 보면 현재 선택된 배포판 타입은 stable 이며, 설치되어있는 엔진은 stable 임을 알 수 있습니다.

Note

다음 챕터에서 설명하는 내용과 같이 설치 후 배포판 타입을 변경할 수 있기 때문에 현재 설정된 배포판 타입과 설치되어있는 배포판 타입은 다를 수 있습니다.

배포판 종류 변경하기

배포판을 확인할 때 사용한 funapi_select_repo 명령어 뒤에 배포판 종류를 입력하면 배포판 설정을 변경할 수 있습니다.

Warning

설정 변경을 위해서 funapi_select_repo 명령을 사용할 때에는 root 권한이 필요합니다.

$ sudo funapi_select_repo experimental
Activating iFunEngine experimental repository
Hit:1 http://mirror/ubuntu xenial InRelease
Get:2 http://mirror/ubuntu xenial-updates InRelease [109 kB]
Hit:3 http://download.mono-project.com/repo/ubuntu xenial InRelease
Get:4 http://mirror/ubuntu xenial-backports InRelease [107 kB]
Get:5 http://mirror/ubuntu xenial-security InRelease [109 kB]
Hit:6 https://download.docker.com/linux/ubuntu xenial InRelease
Hit:7 https://www.ifunfactory.com/apt xenial InRelease
Get:8 https://www.ifunfactory.com/apt xenial/non-free-experimental amd64
Packages [330 kB]
Fetched 656 kB in 0s (895 kB/s)
Reading package lists... Done

위 명령을 보시면, 노란색으로 강조한 것처럼 experimental 배포판이 활성화 되고 자동으로 패키지 목록이 갱신됨을 알 수 있습니다. 다시 인자 없이 funapi_select_repo 를 실행하면 다음과 같이 배포판 타입이 바뀐 것을 알 수 있습니다.

$ funapi_select_repo
Current repository: experimental
Installed funapi1-runtime does not belong to stable repository
Current package: funapi1-runtime_1.0.0-1661xenial: experimental

이 후의 APT 패키지 관리자는 experimental 배포판을 기준으로 동작합니다.

아이펀 엔진 패키지 설치하기

APT 저장소를 설정했다면 APT 패키지 매니저를 사용해서 저장소에 올라가 있는 패키지들을 설치 또는 삭제, 업그레이드할 수 있습니다.

현재 사용가능한 패키지 목록은 다음과 같습니다.

$ sudo apt update
$ apt search funapi
  • funapi1-dev: 아이펀 엔진 으로 서버를 개발하기 위한 핵심 개발 패키지.

  • funapi1-runtime: 아이펀 엔진 으로 개발한 서버를 실행하기 위해 필요한 런타임 패키지.

  • python-funapi1-dev: 아이펀 엔진 에서 사용하는 Python 모듈을 설치하는 패키지.

  • funapi1-doc: 아이펀 엔진 에 대한 문서 패키지.

  • libfunapi1-mongodblogger: 아이펀 엔진 의 사용자 행동 로그를 MongoDB 에 남기기 위해 필요한 패키지.

  • funapi1-dedicated-server-host: 아이펀 엔진 으로 데디케이티드 서버 환경을 운용할 때, 데디케이티드 서버 호스트의 에이전트 역할을 하는 서버.

  • funapi-biller1: 아이펀 엔진 의 결제 검증 기능을 사용하기 위한 아이펀 빌러 패키지.

  • funapi-leaderboard1: 아이펀 엔진 의 리더보드 기능을 사용하기 위해 필요한 아이펀 엔진 리더보드 패키지.

  • funapi-dashboard: 아이펀 엔진 으로 제작한 서버의 여러 성능 지표를 모니터링하기 위한 아이펀 대시보드 서비스 패키지.

  • funapi-dashboard-agent: 아이펀 엔진 으로 제작하지 않은 서버로부터 아이펀 대시보드 가 필요한 성능지표를 추출하기 위한 서비스 패키지.

  • funapi-dashboard-collector: funapi-dashboard-agent 가 수집한 데이터를 다시 취합하는 서비스.

최신 버전 설치하기

아이펀 엔진 이 설치되어있지 않은 상태에서 패키지 설치를 진행하면, 현재 배포판 설정에 따라 stable 또는 experimental 패키지의 최신 버전을 설치합니다.

$ sudo apt-get update
$ sudo apt-get install funapi1-dev

위 명령 하나로 아이펀 엔진 으로 서버를 개발하기 위한 핵심인 funapi1-dev 패키지와 의존하는 패키지를 모두 설치합니다.

Important

최초에 아이펀 엔진을 설치하면 1주동안 유효한 평가판 라이선스가 자동으로 발급됩니다. 평가판 라이선스는 사용에 제약이 있습니다. 자세한 내용은 개요 매뉴얼을 참고해 주세요.

업그레이드 하기

현재 시스템에 설치한 아이펀 엔진 패키지의 버전이 APT 저장소의 최신 버전보다 낮다면 다음 명령으로 업그레이드 할 수 있습니다.

$ sudo apt-get update
$ sudo apt-get upgrade

이때, 저장소의 최신 버전이 현재 설치되어 있는 패키지 버전보다 낮으면 업그레이드가 진행되지 않으며 이것은 아이펀엔진 패키지 저장소과 상관없이 적용됩니다.

예를들어 현재 호스트에 Experimental 1.0.0-5000 버전이 설치되어 있다고 가정해 보겠습니다. 아이펀 엔진 저장소가 Stable 로 설정되어 있고, Stable 저장소의 최신버전이 Stable 1.0.0-4999 라면 업그레이드가 진행되지 않습니다.

이런 경우에는 다음에 설명하는 버전을 지정해서 설치하는 방법을 사용해 주시기 바랍니다.

특정 버전 설치하기

만약, 배포판 타입과 상관없이 이미 설치되어 있는 패키지의 버전이 APT 저장소의 최신 버전보다 높거나, 이전 버전의 패키지를 설치하고자 하는 경우에는 다음과 같이 버전을 지정해서 설치할 수 있습니다.

단, 이 경우는 아래와 같이 상호 의존하는 패키지를 동시에 설치해야 합니다.

Note

아래 명령 중 1.0.0-1234focal 은 우분투 리눅스 배포판 이름을 포함하는 버전명입니다.

$ sudo apt install funapi1-dev=1.0.0-1234focal funapi1-runtime=1.0.0-1234focal python-funapi1-dev=1.0.0-1234focal

데비안 패키지 파일을 사용해서 설치하기

패키지 매니저를 사용해서 APT 저장소로부터 패키지를 받지않고, .deb 확장자를 갖는 아이펀 엔진 패키지 파일로부터 직접 설치하기 위한 방법입니다.

  1. Runtime 패키지만 설치하는 경우, 파일이 있는 위치에서 다음 명령을 실행하면 패키지 매니저가 의존 패키지와 함께 설치를 진행합니다.

    $ sudo apt install ./funapi1-runtime.deb
    
  2. 아이펀 엔진 전체를 설치하는 경우에는 의존성이 걸려있는 funapi1-dev, funapi1-runtime, python-funapi1-dev 패키지 세 개를 동시에 설치해야 합니다.

    $ sudo apt install ./funapi1-dev.deb ./funapi1-runtime.deb ./python-funapi1-dev.deb