천재태지의 세상 돌려보기

seoz.egloos.com

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



[EFL] Enlightenment/EFL 패치 보내기 위해 arcanist 설치하기 ├ Enlightenment, EFL

[ EFL 게시물 목차 : http://seoz.egloos.com/3458699 ]

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

지난 2013년 2월부터 Enlightenment/EFL 프로젝트는 패치를 받기 위해 Phabricator[1]Arcanist[2]라는 도구를 사용하기 시작했습니다.
Phabricator는 trac, bugzilla와 같은 프로젝트 통합 관리 시스템이며 페이스북에서 내부적으로 사용하던 도구로부터 시작되었습니다.
Arcanist는 커맨드라인에서 손쉽게 패치를 보낼 수 있는 도구입니다.

Enlightenment/EFL 커뮤니티에서는 이전까지 메일링 리스트를 통하여 패치를 받았는데, Phabricator 및 Arcanist를 도입한 이후로는 손쉽게 패치를 보내고 리뷰를 받을 수 있게 되었습니다. 단, 처음에 한 번은 arcanist를 설치하고 설정해야 하는 번거로움은 있습니다.

arcanist를 설치하는 방법은 아래 링크[3]에 자세히 설명이 되어 있으나, 제가 한글로 설명을 드리겠습니다.

1. PHP 설치

Arcanist를 사용하기 위해서 우선 아래와 같이 php 패키지 일부를 설치해야 합니다.

$ sudo apt-get install php5-cli php5-curl php5-json


2. libphutil 및 arcanist 다운로드

이제 arcanist 소스코드를 다운로드 받습니다. 이 때 libphutil도 같이 다운로드 받아야 합니다.
저는 ~/bin 이라는 디렉터리 아래에 arcanist 및 libphutil을 다운로드 받았습니다.
원하시면 다른 곳에 다운로드 받으셔도 됩니다.
$ mkdir ~/bin -p
$ cd ~/bin
$ git clone https://github.com/facebook/libphutil.git
$ git clone https://github.com/facebook/arcanist.git

(복사용)
mkdir ~/bin -p
cd ~/bin
git clone https://github.com/facebook/libphutil.git
git clone https://github.com/facebook/arcanist.git

만약 git이 설치되어 있지 않다면 "[GIT] 우분투에 GIT 설치하기 [4]"을 참고해서 git을 설치하시기 바랍니다.
libphutil이나 arcanist 같은 경우는 다운로드 후에 별도의 설치 과정이 필요 없습니다.

[문제 해결]
만약 git clone을 하는 도중에 아래와 같은 에러가 발생했다면 사용하시는 네트워크의 certificate 파일을 시스템에 등록해야 합니다. [7]
$ git clone https://github.com/facebook/libphutil.git
Cloning into 'libphutil'...
fatal: unable to access 'https://github.com/facebook/libphutil.git/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
해결 방법: 현재 계신 네트워크에서 제공하는 crt 혹은 cer 파일(certificate)을 다음과 같이 시스템에 등록해주시고 다시 시도해주세요.
여기서는 해당 certificate 파일 이름이 my-com.crt라고 가정을 하겠습니다.
$ sudo cp my-com.crt /usr/share/ca-certificates/
$ sudo vi /etc/ca-certificates.conf
마지막 줄에 my-com.crt 라고 추가
$ sudo update-ca-certificates



3. 환경 변수 설정

이제 어디서든 arcanist 명령어(arc)를 실행하기 위한 PATH 환경 변수를 설정해야 합니다.
bash 쉘을 사용한다면 아래 부분을 그대로 따라 하시면 되고, 만약 다른 쉘을 사용하신다면 해당 쉘의 설정 파일을 수정해서 PATH 환경 변수를 수정해주시기 바랍니다.
$ vi ~/.bashrc
   export PATH=$PATH:~/bin/arcanist/bin
$ source ~/.bashrc 혹은 $ . ~/.bashrc
vi 혹은 원하시는 텍스트 에디터를 이용하여 ~/.bashrc 파일을 열고 아무 곳에나 아래 내용을 추가해주세요. (마지막 라인 추천)

export PATH=$PATH:~/bin/arcanist/bin

그리고 설정 값을 변경 한 후에 $ source ~/.bashrc 혹은 $ . ~/.bashrc 명령을 이용하여 변경된 값을 현재 터미널에 적용합니다.
이제 arcanist가 설치가 되었고 어디에서든 arc 명령을 내릴 수 있게 설정이 됐습니다.


4. arc 기본 설정값 초기화

Arcanist가 phab.enlightenment.org와 통신을 할 수 있도록 설정합니다.
$ arc set-config default https://phab.enlightenment.org

5. 인증서 설치

Enlightenment/EFL git을 받은 코드가 있는 디렉터리로 이동 한 후, arc list 명령을 내립니다.
elementary를 예로 실행해보겠습니다. 저는 elementary가 ~/efl/git/core/elementary에 clone되어 있습니다.

$ cd ~/efl/git/core/elementary
$ arc list

그러면 다음과 같이 Phabricator에 로그인을 하려면 인증서를 설치해야 한다고 나옵니다.

인증서를 설치하기 위해 다음과 같은 명령을 내립니다.
$ arc install-certificate

그럼 https://phab.enlightenment.org/conduit/token/ [5] 사이트에 접속해서 토큰(token) 값을 읽어오라고 합니다.

[문제 해결]

https proxy를 사용하는 네트워크 환경에서 https proxy 설정이 제대로 되어 있지 않는 경우,
Trying to connect to server...에서 더이상 진행이 되지 않을 수도 있습니다.
이 때는 https proxy 환경 변수를 설정한 후 다시 시도해주세요.
예) $ export https_proxy=https://192.168.0.1:8080

아래와 같이 브라우저를 이용해 https://phab.enlightenment.org/conduit/token/ 에 접속합니다.
그럼 화면 가운데에 토큰 값이 보입니다. 이 값을 복사합니다.

이 때, phabricator 웹사이트에 미리 로그인이 되어 있어야 합니다.
만약 로그인이 안 되어 있다면 로그인 페이지[6]에 접속해서 계정을 먼저 등록하고 로그인하시기 바랍니다.



아까 arc install-certificate 명령을 실행하던 곳에 토큰 값을 붙여넣습니다.
그럼 다음 그림과 같이 인증서가 정상적으로 설치되었다고 나옵니다.



6. 설치 확인

이제 모든 설치 과정이 끝났습니다.
마지막으로 elementary 안에서 한 번 arc list 명령을 내려봅시다.
아래와 같이 특별한 에러 메시지 없이 Differential revision이 없다고 나오면 성공적으로 arcanist가 설치된 것입니다.

이제 arcanist를 이용해서 패치를 보내면 됩니다.
이 부분은 다음에 설명드리겠습니다.

감사합니다.


[ EFL 게시물 목차 : http://seoz.egloos.com/3458699 ]



덧글

  • 강도령 2014/02/03 16:20 # 삭제 답글

    오~ 역시 천재태지님!!! 5번 과정에서 token 가져 오기 전에 phab.enlightenment.org 에 로그인을 해야 한다는 것을 추가해 주시면 더 좋은 가이드가 될 것 같네요.
    암튼 친절한 설명 감사합니다. ㅎㅎ
  • 천재태지서주영 2014/02/07 01:59 #

    강도령님 감사합니다~ 해당 부분을 추가했습니다 ^^
  • 천재태지서주영 2014/07/10 00:39 # 답글

    우분투 14.04 64 비트에서도 잘 됩니다 ^^
  • 천재태지서주영 2014/08/14 00:11 # 답글

    git clone 시 certificate 관련 에러가 발생할 때, 문제를 해결하는 방법을 추가했습니다.
  • git 2014/12/09 17:47 # 삭제 답글

    arcanist를 이용해서 패치를 보내는 법도 설명 부탁드립니다.
  • 천재태지서주영 2014/12/15 23:36 #

    네, 빠른 시일 내에 포스팅할게요 ^^
    감사합니다.
댓글 입력 영역