정보공간_1

[6기 전주 황규하] Tizen Platform 분석하기 - Tizen platform 개발환경 구축하기1 본문

IT 놀이터/Elite Member Tech & Talk

[6기 전주 황규하] Tizen Platform 분석하기 - Tizen platform 개발환경 구축하기1

알 수 없는 사용자 2014. 9. 15. 03:43

[Tizen Platform 분석하기] Tizen platform 개발환경 구축하기1

 

- 오픈소스란?

위키백과에 따르면 오픈소스는 소프트웨어 혹은 하드웨어의 제작자의 권리를 지키면서 원시 코드를 누구나 열람할 수 있도록 한 소프트웨어 혹은 오픈 소스 라이선스에 준하는 모든 통칭을 일컫습니다.

 

- 오픈소스를 공부를 해야 하는 이유.

최근 들어 오픈소스를 공부해야 한다는 이야기를 많이 듣곤 합니다. 혼자 소스를 작성하는 것도 좋지만 다른 사람들이 작성한 소스를 보는 것은 개발자의 실력을 늘리는데 큰 도움이 된다고 합니다. 몇 십 년 이상 개발에 임한 개발자들의 노하우와 알고리즘, 자료구조가 들어있기 때문입니다.

 

- Tizen?

타이젠은 오픈 소스 모바일 운영체제입니다. 저는 이번에 Tizen platform 개발환경을 어떻게 구축하는지와 일부 소스를 분석하고자 합니다. 아래의 내용은 타이젠 공식 홈페이지내의 플랫폼 개발자 가이드 내용 중 Ubuntu에서 구축하는 방법에 대해 설명했습니다.(Ubuntu 12.04)

참고 : https://source.tizen.org/ko/documentation/developer-guide/environment-setup

 

- SCM(Source Code Management)

타이젠의 소스 코드 관리 시스템은 두 개의 부분으로 구성되어 있습니다.

1. Git : Git은 공동개발에 특화되어있는 버전 관리 시스템입니다. 조금 더 자세한 사항은 아래의 링크를 참고하세요.

Git Community Book : http://git-scm.com/book

Git Wiki : https://git.wiki.kernel.org/index.php/Main_Page

Git Manual Page : https://www.kernel.org/pub/software/scm/git/docs/

2. Gerrit : Gerrit은 온라인 코드 리뷰 시스템으로서, Git version control system을 사용하여 온라인 코드 리뷰를 할 수 있도록 한 시스템입니다. Gerrit은 코드의 변화를 나란하게 보여주고, 인라인 주석을 지원해줌으로써, 코드 리뷰 절차와 리뷰 품질을 높여줍니다. 또한, 허가받은 모든 사용자들에게 중앙 Git 저장소에 코드변화를 제출할 수 있도록 허용함으로써, Gerrit Git기반 프로젝트의 유지보수를 간단하게 해줍니다.

 

- 개발환경 준비하기

1. Gerrit access 설정하기

1.0 Tizen 회원가입하기

https://www.tizen.org/ko

타이젠 홈페이지에 가입이 안되어 있다면 홈페이지에서 등록 탭을 클릭해 회원가입을 합니다.



1.1 Tizen Gerrit Contact 정보 입력하기

- Tizen Gerrit( https://review.tizen.org/gerrit ) Tizen 홈페이지 ID와 비밀번호로 로그인 합니다.



- 홈페이지에 로그인 후, 우측상단 이름을 클릭하고, Setting을 클릭합니다.

- 좌측 메뉴 중 Contact Information을 선택하고, 이메일, 이름을 입력후 Register 또는 Save Changes를 클릭합니다.

-  Gerrit은 이메일 확인을 하기 위해 확인 메일을 보냅니다. 이메일을 열어보면 다음과 같은 화면이 나오는데 url을 클릭하여 계정인증을 합니다.



1.2 Gerrit Access를 위한 SSH 환경설정 하기

- ssh-keygen 명령어를 입력합니다.


- key를 저장할 파일경로를 입력합니다. (그냥 Enter를 치면 디폴트 값인 /home//.ssh/id_rsa로 설정 됩니다.)

- Enter passphrase (empty for no passphrase): / Enter same passphrase again: 에는 그냥 Enter를 눌러서 넘어가도록 합니다.

- ~/.ssh/config 파일을 텍스트에디터(vi, gedit)으로 생성합니다. 그리고 아래처럼 입력합니다.



- User에는 Tizen ID를 입력하고 저장합니다..


- SSH public key Gerrit에 업로드 합니다. ~/.ssh/id_rsa.pub 파일을 텍스트에디터로 열면 Key값을 얻을 수 있습니다. key값을 Tizen Gerrit 페이지 중 Setting/SSH publc keys에 입력합니다.



- ssh connection을 확인합니다.

$ ssh tizen

 



1.3 Gerrit Access를 위한 Git 환경설정하기

$ git config --global user.name <First_Name Last_Name>
$ git config --global user.email "<E-mail_Address>"

 (다음과 같은 git config … 명령어 뒤에 유저ID 및 유저Email을 붙여 ID Email을 설정합니다.)

 

- 개발환경 설치하기

1. 텍스트에디터로 source list를 엽니다.

$ sudo vim /etc/apt/sources.list

2. tizen tools repository source list에 추가합니다.

URL“/” 사이에 스페이스가 있다는 점에 주의하셔야 합니다.

deb http://download.tizen.org/tools/latest-release/Ubuntu_12.10 /



저 같은 경우에는 12.04를 사용하고 있기 때문에 끝부분을 바꾸어 설정했습니다.

위의 링크에 들어가면 버전이 어떻게 구성되어 있는지 확인하여 본인의 개발환경에 맞추어 source list를 추가해주시면 됩니다.

3. 패키지를 다시 동기화 시켜줍니다.

$ sudo apt-get update

4. 개발툴을 설치합니다.

sudo apt-get install <Package_Name>

$ sudo apt-get install gbs mic

5. 개발툴을 업그레이드 합니다.

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

 

소스 복제하기(Cloning) : 저는 Tizen3.0 Common의 모든 프로젝트를 복제했습니다. 일부 소스나 다른 방법을 원하신다면 아래의 링크를 참조하시면 됩니다.

https://source.tizen.org/documentation/developer-guide/getting-started-guide/cloning-tizen-source

1. ~/bin/ 서브디렉토리를 생성하고 PATH에 포함시킵니다.

$ mkdir ~/bin/
$ PATH=~/bin:$PATH

2. repo 스크립트를 다운로드 합니다.

$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

3. repo를 실행 시킬 수 있도록 repo의 권한을 변경합니다.

$ sudo chmod a+x ~/bin/repo

4. Tizen을 위한 디렉토리를 생성하고 해당 디렉토리로 이동합니다.

$ mkdir ~/<Tizen_Project>
$ cd ~/<Tizen_Project>

5. 저장소를 초기화 시킵니다.

$ repo init -u ssh://<Username>@review.tizen.org:29418/scm/manifest -b tizen -m common.xml

6. 저장소를 동기화 합니다.

$ repo sync

7. 소스가 모든 과정이 끝나면 소스가 복제되어있는 것을 볼 수 있습니다.

 

- 결론

저는 Ubuntu12.04환경에서 타이젠 소스를 복제했지만 다른 부분의 경우에는 다음 링크(https://source.tizen.org/documentation/developer-guide/getting-started-guide )Setting up Development Environment / Installing Development Tools / Cloning Tizen Source를 참조하시면 됩니다.