Ubuntu 환경에서 Chromium을 빌드하는 방법을 알아보자

Chromium Build on linux

Linux 환경에서 Chromium을 빌드하는 방법을 알아보자. Chromium은 다양한 platform에서 동작하며, 빌드 방법은 조금씩 차이가 있다. 자신이 선호하는 환경과 Chromium 빌드 방법을 구글한다면 쉽게 찾을 수 있을 것이다.

본인의 환경은 Linux이며, 다양한 Linux OS 중에서도 “Ubuntu” 를 이용해 빌드하고자 한다. Chromium 문서에서도 Ubuntu 기반으로 설명하고 있으며, 약간의 명령어 차이 정도는 존재할 수 있지만 기본적인 Linux OS에서는 동일한 원리로 빌드 할 수 있을 것이라 생각한다.

시스템 환경

문서에서 제공하는 Chromium을 빌드하기 위한 필수 환경 조건

위의 시스템 조건 같은 경우 필수적으로 가능해야하는 조건이다. 다들 알겠지만, H/W 는 풍부할 수록 좋다 본인이 해본 결과 8GB 램으로 할 경우 메모리 부족으로 OS 자체에서 빌드를 kill 하는 경우가 많이 발생했다. 따라서 메모리는 정말 16GB를 추천한다.

Chromium 문서에서는 Ubuntu 16.04 를 기반으로 빌드했으며, 다른 배포 버전에 대해서는 명령어가 약간의 차이가 있을 수 있다고 언급한다.

본인 Chromium 빌드 환경

아래는 본인이 Chromium을 빌드를 성공했을 때 환경이다.

Tip) Linux에서 시스템 환경을 검색하는 방법

# 보통 H/W 정보는 /proc 정보에 다 있다.

# CPU 정보
cat /proc/cpuinfo

# memory 정보
cat /proc/meminfo # 보기 어려움, 아래의 명령어를 통해 보자
free -m (or -g) # free는 memory 용량을 간단히 보여주는데, mega byte표현은 m
								# giga byte 표현은 g이다.
# disk 정보
cat /proc/diskstats # 보기 어려움, 아래의 명령어로 보자
df -h

빌드를 하면서 필요한 package가 없을 경우 fail이 뜨는데 당황하지말고 구글 검색 을 통해 package 설치해주자!

depot_tools 설치

depot_tools 란 Chromium을 설치하는데 필요한 package 들과 script들의 모음이다. Chromium의 source code repo 관리와 개발 프로세스의 동작을 함에서 필요한 package들을 담고 있다.

가장 핵심적인 것은 gn빌드 시스템, gclient 두 가지 정도가 있다.

개인적으로, depot_tools에 대해 깊게 알아보기 보다는 build 하는데 초점을 맞추는게 좋다고 생각한다.

설치 가이드

# 설치 명령어 모음
# 아래에 자세하게 나와있으며, 명령어는 아래를 치면 된다. 자세한 설명은 아래를
보자.

$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
$ export PATH="$PATH:${HOME}/depot_tools"
$ mkdir ~/chromium && cd ~/chromium
$ fetch --nohooks chromium
$ cd src
$ ./build/install-build-deps.sh
$ gclient runhooks
$ gn gen out/Default
$ ninja -C out/Default chrome
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
$ export PATH="$PATH:${HOME}/depot_tools"
# chromium을 빌드하기 위한 디렉토리 생성
$ mkdir ~/chromium && cd ~/chromium

# fetch
$ fetch --nohooks chromium
$ ./build/install-build-deps.sh
# 초기에 install-build-deps.sh 수행했다면, no-hooks 단계와 install-build-deps.sh
단계를 건너 뛰고 아래의 명령어만 수행하면 된다.

$ gclient runhooks
$ gn gen out/Default
$ ninja -C out/Default chrome

위의 명령어들을 치게 되면 빌드가 된다. 다만, 엄청 오래 걸린다. 특히, 성능이 좋지 않으면 자기전에 돌리고 자는 것을 추천한다. 개인적으로 mac 환경에서 작업을 많이 곧 mac 관련 빌드도 포스팅 하도록 하겠다.

추가적으로, 본인은 좀 더 빌드를 빨리 할 수 있는 ccache를 사용하고 있는데, 이 부분은 정리가 완료되면 여기 포스팅 하도록 하겠다.

Reference

Google Document