천재태지의 세상 돌려보기

seoz.egloos.com

- About Me... - Enlightenment, EFL - 타이젠 Tizen



[Tizen] 타이젠 전체 소스코드 다운로드 ├ 타이젠 Tizen

[ 타이젠 게시물 목차 : http://seoz.egloos.com/3872102 ]


안녕하세요? 천재태지 서주영입니다.

이번 포스팅에서는 타이젠 전체 소스코드를 다운로드 받는 방법을 설명합니다. 이 부분은 아마 많은 분들이 궁금해하실거라 생각합니다.
이미 이 내용에 대해서 문의를 굉장히 많이 받았는데요, 글 작성하기 시작한지 몇 달이 지나서야 올리네요...

제가 알기로는 현재까지 공식적으로 타이젠 전체 소스코드를 다운로드 받는 방법은 없습니다만, 박준철(Joon-heol Park) (네, 한국분입니다 ^^)님께서 공개하신 Tizen Manifest[1]를 이용하여 쉽게 타이젠 전체 소스코드를 다운로드 받을 수 있습니다. (참고로 Tizen Manifest는 지속적으로 관리가 되고 있습니다.)

일단 소스코드를 다운로드 받기 전에 git을 설치해야 합니다. git 설치 및 초기 설정은 아래 두 포스팅을 참고하시기 바랍니다.
[GIT] GIT 초기 설정하기 [3]

타이젠 전체 소스코드를 다운로드 받는 방법은 크게 4단계로 나눌 수 있습니다.
1. 타이젠 웹사이트 계정 생성 및 Gerrit 등록
2. repo 유틸리티 다운로드
3. repo를 이용한 소스코드 다운로드
4. repo를 이용한 일괄 브랜치 변경

1. 타이젠 웹사이트 계정 생성 및 Gerrit 등록


타이젠 웹사이트에 계정을 생성하고 Gerrit 사이트에 사용자 등록을 하는 방법은 아래 두 포스팅을 참고하시기 바랍니다.
[Tizen] 타이젠 공식 웹사이트 계정 생성하기 [4]
[Tizen] 타이젠 Gerrit 사이트에 사용자 등록하기 [5]

만약 이미 타이젠 공식 웹사이트 계정이 있고 Gerrit 사이트에 사용자로 등록이 되어 있다면 아래에 있는 "2. repo 유틸리티 다운로드"를 보시기 바랍니다.


2. repo 유틸리티 다운로드

우선 curl이라는 유틸리티를 다운받고 이를 이용하여 repo라는 유틸리티를 다운로드 받습니다.
홈 디렉터리의 bin 디렉터리에 repo를 다운로드 받고 실행 권한을 줍니다.
repo 에서 다운로드 받으셔도 됩니다.
$ sudo apt-get install curl
$ mkdir ~/bin -p
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod +x ~/bin/repo

3. repo를 이용한 소스코드 다운로드

repo를 다운로드 받으셨다면 다음 명령어를 이용해서 타이젠 소스코드를 다운로드 받으실 수 있습니다.
여기에서는 tizen-src라는 디렉터리를 만들고 그 곳에 소스코드를 다운로드 받겠습니다.
$ mkdir tizen-src
$ cd tizen-src
$ ~/bin/repo init -u git://gitorious.org/tizen-toys/tizen-manifest
$ ~/bin/repo sync

아래 그림은 repo init을 했을 때의 모습입니다.


아래 그림은 repo sync를 실행했을 때 정상적으로 타이젠 소스코드를 받아오는 장면입니다.
전체 소스코드의 용량은 약 17 GB 정도이며, 전체 소스코드를 다운받는데 상당한 시간이 소요됩니다.

소스코드 다운로드가 완료되면 다음과 같이 타이젠 전체 소스코드가 다운로드 된 것을 확인하실 수 있습니다.
소스코드는 카테고리에 따라 하위 디렉터리로 구분되어 있습니다.


4. repo를 이용한 일괄 브랜치 변경

타이젠은 버전이 올라갈 때 마다 master 브랜치가 업데이트 되는 것이 아니라 새로운 브랜치가 생성되고 있습니다.

Tizen 1.0 브랜치 : 1.0_post
Tizen 2.0 알파 브랜치 : 2.0alpha
Tizen 2.0 정식 버전 브랜치 : tizen_2.0
Tizen 2.1 베타 브랜치 : tizen_2.1

이에 맞추어 가장 최근에 배포된 소스코드를 사용하려면 아래와 같이 repo 도구를 이용하여 일괄적으로 브랜치를 변경해야 합니다.
아래와 같이 하면 repo 도구를 이용해서 받은 git이 모두 tizen_2.1 브랜치로 변경됩니다.
경우에 따라서는 tizen_2.1 브랜치가 없을 수도 있으니 참고 바랍니다.

$ repo forall -c 'git checkout tizen_2.1'


혹시 tizen_2.0 브랜치를 사용하시려면 아래와 같이 하시면 됩니다.

repo forall -c 'git checkout tizen_2.0'




※ 에러 발생 상황 대처 방법

앞에서 설명한대로 잘 실행을 했는데, repo sync를 할 때 에러가 발생한다면 아래 부분을 참고하시기 바랍니다.

A. The authenticity of host '[review.tizen.org]:29418 ([121.156.55.208]:29418)' can't be established.

이런 에러는 타이젠 Gerrit 웹사이트에 등록된 SSH 키(key)와 PC에 있는 ssh 키가 매칭되지 않을 때 발생합니다.
만약 타이젠 Gerrit 웹사이트에 SSH public 키를 등록하지 않으신 분은 [Tizen] 타이젠 Gerrit 사이트에 사용자 등록하기 [5]를 참고하시기 바랍니다.
타이젠 Gerrit 웹사이트에 SSH public 키를 등록했음에도 불구하고 이런 에러가 발생하는 분은 홈디렉터리의 .ssh 디렉터리(~/.ssh)에 public 키와 private 키가 올바르게 있는지 확인하시기 바랍니다.

B. Permission denied (publickey).

타이젠 Gerrit 웹사이트에 SSH public 키도 올바르게 등록했고 ~/.ssh 디렉터리에 올바른 public 키와 private 키가 있는 경우에도 에러가 발생할 수 있습니다.

이 에러는 타이젠 Gerrit 웹사이트에 등록된 사용자 계정과 PC의 리눅스 사용자 계정이 다른 경우에 발생합니다. 이 때는 ~/.ssh/config에서 사용자 계정 설정을 올바르게 해주어야 합니다. 아래에서 빨간색으로 표시한 부분의 Gerrit 웹사이트에 등록한 사용자 계정을 입력해주시기 바랍니다.
$ vi ~/.ssh/config
Host review.tizen.org
     Hostname review.tizen.org
     User seojuyung3
     Port 29418

이와 관련된 자세한 내용은 [Tizen] 타이젠 소스코드 다운로드[6]를 참고하시기 바랍니다.

자, 위에서 설명드린 방법을 따라하시면 타이젠 전체 소스코드를 문제 없이 다운로드 받으실 수 있습니다.
혹시 전체 소스가 아니라 일부 패키지 소스코드만 다운로드 받고 싶으신 분은 이전 포스팅 "[Tizen] 타이젠 소스코드 다운로드[7]"를 참고하시기 바랍니다.



[ 타이젠 게시물 목차 : http://seoz.egloos.com/3872102 ]



핑백

덧글

  • coriel 2013/02/14 16:52 # 삭제 답글

    안녕하세요 천재태지님
    tizen manifest에서 다운받을 수 있는 소스는 타이젠 2.0알파인가요?
    아니면 1.0인가요?
  • 천재태지서주영 2013/02/14 20:27 #

    안녕하세요?
    tizen manifest는 타이젠 최신 소스코드를 다운로드 받도록 되어 있습니다.
    현재는 타이젠 2.0 알파 및 그 이후에 변경된 소스코드가 되겠네요 ^^
    타이젠 1.0은 아니예요.
  • coriel 2013/02/15 17:38 # 삭제 답글

    2.0이군요.
    답변 감사합니다 ^^
  • 천동이 2013/02/28 19:59 # 삭제 답글

    어제는 풀 다운로드가 되었는데..

    지금은 안되네요.. ㅜㅜ


    * [new tag] v3.7.6 -> v3.7.6
    * [new tag] v3.7.7 -> v3.7.7
    * [new tag] v3.7.8 -> v3.7.8
    * [new tag] v3.7.9 -> v3.7.9
    * [new tag] v3.8 -> v3.8
    * [new tag] v3.8-rc1 -> v3.8-rc1
    * [new tag] v3.8-rc2 -> v3.8-rc2
    * [new tag] v3.8-rc3 -> v3.8-rc3
    * [new tag] v3.8-rc4 -> v3.8-rc4
    * [new tag] v3.8-rc5 -> v3.8-rc5
    * [new tag] v3.8-rc6 -> v3.8-rc6
    * [new tag] v3.8-rc7 -> v3.8-rc7
    Resolving deltas: 100% (1404074/1404074), done.

    여기까지만 나오고 더 이상 진행이 안되네요....

    그래서 취소하고 다시 [chandong83@chandong83-OEM tizen_src]$ ~/bin/repo sync 라고 하니

    fatal: The remote end hung up unexpectedly
    fatal: The remote end hung up unexpectedly
    Fetching projects: 99% (1291/1304)

    이러고 또 안되네요....

    이상하네요... 어젠 잘 됐었는데 말이죠... ㅜㅜ
  • 천재태지서주영 2013/03/01 23:40 #

    혹시 다시 해보셨나요?
    며칠전에 gitorious 서버 점검이 있었다고 들었습니다.
    혹시 그 때 실행하신게 아닌지... 생각이 듭니다.
    지금 해보니 잘 됩니다 :)
  • 천동이 2013/03/03 01:32 # 삭제 답글

    아.. 그랬던건가요? ^^;;;

    목욜날 회사에서 컴퓨터를 끄고 와가지고 테스트는 월요일날 해봐야겠네요~

    감사합니다 ^^
  • 천재태지서주영 2013/03/06 22:50 #

    혹시 다시 해보셨나요?
    잘 되는지 궁금하네요 ^^
  • 천동이 2013/04/26 15:45 # 삭제 답글

    아~~ 그 후로 잘 되었습니다 ㅎㅎㅎ

    그리고 지금은 업무용 PC에 virtualBox로 ubuntu 설치 후 다운 받으려하고 있습니다.

    근데 궁금 한게 있는데요...

    이렇게 전부 다 받았을땐

    branch를 개별적으로 다 변경해야하는 것인가요????
  • 천재태지서주영 2013/05/01 14:52 #

    안녕하세요? 개별적으로 branch를 다 바꾸는건 비효율적이구요 일전에 박준철님이 알려주신 팁이 있습니다 ㅎ
    $ repo forall -c 'git checkout tizen_2.0'
    이렇게 하시면 repo에 있는 모든 git이 tizen_2.0으로 변경돼요.
    블로그 글도 업데이트해야겠네요.
    감사합니다.
  • 천재태지서주영 2013/05/01 15:08 # 답글

    "4. repo를 이용한 일괄 브랜치 변경"을 업데이트하였습니다.
  • 천재태지서주영 2013/05/09 02:29 # 답글

    tizen_2.1 브랜치 정보를 업데이트했습니다.
  • gogazago 2013/05/30 09:51 # 삭제 답글

    tizen 에서 따로 repo manifest 를 만든게 아니네요 흠...
    init -b tizen_2.1 을 하니 안되서요 ㅎㅎ;;
    그럼 다른 git 폴더들이 남아 있을텐데 빌드시 문제를 발생 하진 않나요?
  • 천재태지서주영 2013/05/30 12:34 #

    네 공식적으로 지원해주는 repo manifest는 없습니다.
    사실 전체 소스코드를 다운로드 받을 필요가 별로 없기 때문이기도 해요.
    포팅을 하실 때에도 전체 소스코드를 받아서 빌드하는게 아니라 mic라는 도구를 이용해서 서버에 있는 패키지를 활용할 수 있기 때문입니다.
    단, 타이젠 전반적으로 분석을 한다던가할 때는 전체 코드를 받아놓는 것이 편하겠죠.

    그리고 소스코드를 수정하신 repository만 별도로 빌드를 하시면 됩니다. 수정하지 않으신 소스코드는 사실 다운로드 받아도 별로 의미가 없긴합니다;;
    그래서 사실상 다른 git 폴더가 있는 상태에서 빌드를 할 일이 없습니다.

    혹시 제가 헛다리짚은거면 말씀해주세요 ㅎㅎ
  • heedong 2013/11/14 00:14 # 삭제 답글

    ~/bin/repo sync 했을 때 아무런 반응없이 끝나는 것은 무엇때문인것인가요?

    제대로 했는데 소스코드가 다운이 안돼서 여쭈어 봅니다.
  • 두산딱스 2013/12/09 13:49 # 삭제 답글

    태지님 안녕하세요.
    혼자서 찾아보면서 해볼려고 했는데 잘 이해가 안되는 것이 있어서 질문드립니다.^^;;
    위에서 말씀하신 것처럼 Tizen Manifest를 이용해서 gitorious 서버에서 소스코드를 받으면 정식 릴리즈된 2.2.1버전의 소스코드까지만 받아볼 수 있는것인가요?
    현재 계속 개발 중인 3.0 소스코드는 받아볼 수 없을까요?

    제가 해보고 싶은 것은 지금 현재 개발중인 버전의 mobile 또는 IVI 코드를 받아서 분석도 해보고 조금씩 고쳐나가보고 싶은데 아무래도 이전 버전들인 2.2.1 이하의 소스코드와 3.0과는 많이 차이가 있지 않을까해서 질문 드립니다..
  • 두산딱스 2013/12/10 13:36 # 삭제

    이제야 좀 이해되는 듯 하네요.. ks파일을 받아서 mic로 최신빌드된 패키지들을 포함시킨 이미지를 만들어서 우선 arm기기에 포팅하고, 테스트나 사용해보면서 분석이나 수정하고 싶은 패키지만 다운로드받아서 수정하고 그 패키지만 적용해보면 되겠군요.. 맞나요?^^;;
  • tizen복잡 2014/03/05 16:09 # 삭제 답글

    tizen source tree를 다운 받다가 일부 package가 없다며 중단되어 버렸습니다.
    실제 project list에도 없더군요.

    이럴 때
    1) manifest를 수정하여 없는 package를 skip할 수 있나요?
    2) 없는 package 무시하고 그 다음부터 download 계속할 수 있을까요?
  • tizen어렵다해 2014/05/07 18:02 # 삭제 답글

    태지님 안녕하세요
    제가 repo를 이용한 소스코드 다운로드를 하고 있는데요..
    ~/bin/repo init -u git://gitorious.org/tizen-toys/tizen-manifest
    명령어를 수행하면

    /home/cdy/bin/repo: 줄 1: syntax error near unexpected token `newline'
    /home/cdy/bin/repo: 줄 1: `<!DOCTYPE html>'

    이런 메시지가 나면서 수행이 되지 않는데 혹시 이유를 알 수 있을까요?? 부탁합니다.
  • 천재태지서주영 2014/05/13 01:03 #

    안녕하세요? 서주영입니다.
    최신 repo에 이상이 있는지 저도 같은 오류가 발생하네요. 잘 동작하던 repo 파일을 첨부했습니다.
    이 글의 "2. repo 유틸리티 다운로드" 부분을 확인하세요.
  • 엠발라다 2014/07/29 08:48 # 삭제

    올려주신 repo도 현재 작동하지 않네요.
    최신 repo 는 https://storage.googleapis.com/git-repo-downloads/repo 여기서 받을 수 있습니다.

    curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
  • 천재태지서주영 2014/08/08 00:58 #

    제보 감사합니다. repo 파일이 계속 바뀌나 보네요...
    공식 타이젠 웹사이트에서 가이드하고 있는 대로 아래 링크로 바꿨습니다. 엠발라다님께서 알려주신 것과 사실 같은 파일 같네요.
    curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

    감사합니다 ^^
  • tizen 2.3 2015/03/04 21:12 # 삭제 답글

    혹시 타이젠 2.3 버전 코드 다운로드도 위와 같은방법으로 하면되나요?
  • 천재태지서주영 2015/03/08 20:58 #

    방법이 약간 변경되었습니다.
    repo init하실 때 아래와 같이 하시면 됩니다.

    repo init -u ssh://<Username>@review.tizen.org:29418/scm/manifest -b tizen_2.3
  • 아는척하는 젠투펭귄 2015/05/02 01:41 # 답글

    타이젠 2.3 버전으로 소스 전체 다운로드를 받았는데 toolchains/tizen-release 를 fetch하지 못하는 에러가 발생합니다ㅠ
    repo sync -f 로 강제로 로드하면 fetch는 100% 성공하나 Syncing work tree: 96%에서 "revision tizen_2.3 in toolchains/tizen-release not found" 이런 error가 나네요ㅠ

    혹시 해결할 수 있는 방법이 없을까요ㅠ?
  • 천재태지서주영 2015/05/08 00:09 #

    안녕하세요? 저는 정상적으로 잘 되는데요, 혹시 하드디스크 공간이 없는 건 아닌지요?
  • 아는척하는 젠투펭귄 2015/05/08 13:22 #

    네ㅠ 혹시 몰라 확인해봤는데 5GB정도 여유가 더 있는데도 계속 에러가 나네요ㅠ
    virtualBox로 작업하고 있습니다!
  • 천재태지서주영 2015/05/16 16:06 #

    virtualbox로 작업을 하고 계시다니, 더 많은 부분을 확인해봐야 할 것 같네요.
    virtualbox 내 공간 문제일 수도 있겠네요.
    그런데 virtualbox를 사용하시면 너무 느려서 고생하실 것 같아요 ㅡㅜ
댓글 입력 영역