This page covers Linux-specific setup and configuration. The general checkout instructions cover installing depot tools and checking out the code via git.
Due its complexity, Chromium uses a set of custom tools to check out and build rather than configure/make like most projects. You must use gclient and ninja, and there is no “install” step provided.
Non-Ubuntu distributions are not officially supported for building and the instructions below might be outdated.
Once you have checked out the code, run build/install-build-deps.sh The script only supports current releases as listed on https://wiki.ubuntu.com/Releases. This script is used to set up the canonical builders, and as such is the most up to date reference for the required prerequisites.
Follow the Ubuntu instructions above. If you want to install the build-deps manually, note that the original packages are for Ubuntu. Here are the Debian equivalents:
Additionally, if you‘re building Chromium components for Android, you’ll need to install the package: lib32z1
For openSUSE 11.0 and later, see Linux openSUSE Build Instructions.
su -c 'yum install git python bzip2 tar pkgconfig atk-devel alsa-lib-devel \ bison binutils brlapi-devel bluez-libs-devel bzip2-devel cairo-devel \ cups-devel dbus-devel dbus-glib-devel expat-devel fontconfig-devel \ freetype-devel gcc-c++ GConf2-devel glib2-devel glibc.i686 gperf \ glib2-devel gtk2-devel gtk3-devel java-1.*.0-openjdk-devel libatomic \ libcap-devel libffi-devel libgcc.i686 libgnome-keyring-devel libjpeg-devel \ libstdc++.i686 libX11-devel libXScrnSaver-devel libXtst-devel \ libxkbcommon-x11-devel ncurses-compat-libs nspr-devel nss-devel pam-devel \ pango-devel pciutils-devel pulseaudio-libs-devel zlib.i686 httpd mod_ssl \ php php-cli python-psutil wdiff'
The msttcorefonts packages can be obtained by following the instructions present here. For the optional packages:
Most of these packages are probably already installed since they're often used, and the parameter --needed ensures that packages up to date are not reinstalled.
sudo pacman -S --needed python perl gcc gcc-libs bison flex gperf pkgconfig \ nss alsa-lib gconf glib2 gtk2 nspr ttf-ms-fonts freetype2 cairo dbus \ libgnome-keyring
For the optional packages on Arch Linux:
urpmi lib64fontconfig-devel lib64alsa2-devel lib64dbus-1-devel \ lib64GConf2-devel lib64freetype6-devel lib64atk1.0-devel lib64gtk+2.0_0-devel \ lib64pango1.0-devel lib64cairo-devel lib64nss-devel lib64nspr-devel g++ python \ perl bison flex subversion gperf
If, during the final link stage:
You get an error like:
collect2: ld terminated with signal 6 Aborted terminate called after throwing an instance of 'std::bad_alloc' collect2: ld terminated with signal 11 [Segmentation fault], core dumped
you are probably running out of memory when linking. You must use a 64-bit system to build. Try the following build settings (see GN build configuration for setting):
is_debug = false
symbol_level = 0
is_component_build = true
If you want to contribute to the effort toward a Chromium-based browser for Linux, please check out the Linux Development page for more information.