Linux 환경에서 Chromium 빌드하는 방법에 대해 알아보자 😚

안녕하세요! 두두코딩 입니다 ✋
오늘은 Chromium build 하는 방법에 대해 알아보겠습니다.

🖇 소스코드에 마우스를 올리고 copy 버튼을 누를 경우 더 쉽게 복사할 수 있습니다!

궁금한 점, 보안점 남겨주시면 성실히 답변하겠습니다. 😁
+ 감상평 댓글로 남겨주시면 힘이됩니다. 🙇

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

위의 명령어들을 치게 되면 빌드가 된다. 다만, 엄청 오래 걸린다. 특히, 성능이 좋지 않으면 자기전에 돌리고 자는 것을 추천한다.

Reference

Google Document