| OLD | NEW |
| (Empty) |
| 1 # Linux-specific build instructions | |
| 2 | |
| 3 ## Common checkout instructions | |
| 4 | |
| 5 This page covers Linux-specific setup and configuration. The | |
| 6 [general checkout | |
| 7 instructions](http://dev.chromium.org/developers/how-tos/get-the-code) cover | |
| 8 installing depot tools and checking out the code via git. | |
| 9 | |
| 10 ## Overview | |
| 11 | |
| 12 Due its complexity, Chromium uses a set of custom tools to check out and build | |
| 13 rather than configure/make like most projects. You _must_ use gclient and | |
| 14 ninja, and there is no "install" step provided. | |
| 15 | |
| 16 ### System requirements | |
| 17 | |
| 18 * **64-bits**: x86 builds are not supported on Linux. | |
| 19 * **Memory**: >16GB is highly recommended. | |
| 20 * **Disk space**: Expect a full checkout and build to take nearly 100GB. | |
| 21 * **Distribution**: You should be able to build Chromium on any reasonably mod
ern Linux | |
| 22 distribution, but there are a lot of distributions and we sometimes break | |
| 23 things on one or another. Internally, our development platform has been a | |
| 24 variant of Ubuntu 14.04 (Trusty Tahr); we expect you will have the most | |
| 25 luck on this platform. | |
| 26 | |
| 27 ## Software setup | |
| 28 | |
| 29 Non-Ubuntu distributions are not officially supported for building and the | |
| 30 instructions below might be outdated. | |
| 31 | |
| 32 ### Ubuntu | |
| 33 | |
| 34 Once you have checked out the code, run | |
| 35 [build/install-build-deps.sh](/build/install-build-deps.sh) The script only | |
| 36 supports current releases as listed on https://wiki.ubuntu.com/Releases. | |
| 37 This script is used to set up the canonical builders, and as such is the most | |
| 38 up to date reference for the required prerequisites. | |
| 39 | |
| 40 ### Debian | |
| 41 | |
| 42 Follow the Ubuntu instructions above. If you want to install the build-deps | |
| 43 manually, note that the original packages are for Ubuntu. Here are the Debian | |
| 44 equivalents: | |
| 45 | |
| 46 * libexpat-dev -> libexpat1-dev | |
| 47 * freetype-dev -> libfreetype6-dev | |
| 48 * libbzip2-dev -> libbz2-dev | |
| 49 * libcupsys2-dev -> libcups2-dev | |
| 50 | |
| 51 Additionally, if you're building Chromium components for Android, you'll need to | |
| 52 install the package: lib32z1 | |
| 53 | |
| 54 ### openSUSE | |
| 55 | |
| 56 For openSUSE 11.0 and later, see | |
| 57 [Linux openSUSE Build Instructions](linux_open_suse_build_instructions.md). | |
| 58 | |
| 59 ### Fedora | |
| 60 | |
| 61 Recent systems: | |
| 62 | |
| 63 su -c 'yum install git python bzip2 tar pkgconfig atk-devel alsa-lib-devel \ | |
| 64 bison binutils brlapi-devel bluez-libs-devel bzip2-devel cairo-devel \ | |
| 65 cups-devel dbus-devel dbus-glib-devel expat-devel fontconfig-devel \ | |
| 66 freetype-devel gcc-c++ GConf2-devel glib2-devel glibc.i686 gperf \ | |
| 67 glib2-devel gtk2-devel gtk3-devel java-1.*.0-openjdk-devel libatomic \ | |
| 68 libcap-devel libffi-devel libgcc.i686 libgnome-keyring-devel libjpeg-devel \ | |
| 69 libstdc++.i686 libX11-devel libXScrnSaver-devel libXtst-devel \ | |
| 70 libxkbcommon-x11-devel ncurses-compat-libs nspr-devel nss-devel pam-devel \ | |
| 71 pango-devel pciutils-devel pulseaudio-libs-devel zlib.i686 httpd mod_ssl \ | |
| 72 php php-cli python-psutil wdiff' | |
| 73 | |
| 74 The msttcorefonts packages can be obtained by following the instructions | |
| 75 present [here](http://www.fedorafaq.org/#installfonts). For the optional | |
| 76 packages: | |
| 77 | |
| 78 * php-cgi is provided by the php-cli package | |
| 79 * sun-java6-fonts doesn't exist in Fedora repositories, needs investigating | |
| 80 | |
| 81 ### Arch Linux | |
| 82 | |
| 83 Most of these packages are probably already installed since they're often used, | |
| 84 and the parameter --needed ensures that packages up to date are not reinstalled. | |
| 85 | |
| 86 sudo pacman -S --needed python perl gcc gcc-libs bison flex gperf pkgconfig
\ | |
| 87 nss alsa-lib gconf glib2 gtk2 nspr ttf-ms-fonts freetype2 cairo dbus \ | |
| 88 libgnome-keyring | |
| 89 | |
| 90 For the optional packages on Arch Linux: | |
| 91 | |
| 92 * php-cgi is provided with pacman | |
| 93 * wdiff is not in the main repository but dwdiff is. You can get wdiff in | |
| 94 AUR/yaourt | |
| 95 * sun-java6-fonts do not seem to be in main repository or AUR. | |
| 96 | |
| 97 ### Mandriva | |
| 98 | |
| 99 urpmi lib64fontconfig-devel lib64alsa2-devel lib64dbus-1-devel \ | |
| 100 lib64GConf2-devel lib64freetype6-devel lib64atk1.0-devel lib64gtk+2.0_0-deve
l \ | |
| 101 lib64pango1.0-devel lib64cairo-devel lib64nss-devel lib64nspr-devel g++ pyth
on \ | |
| 102 perl bison flex subversion gperf | |
| 103 | |
| 104 * msttcorefonts are not available, you will need to build your own (see | |
| 105 instructions, not hard to do, see | |
| 106 [mandriva_msttcorefonts.md](mandriva_msttcorefonts.md)) or use drakfont to | |
| 107 import the fonts from a windows installation | |
| 108 * These packages are for 64 bit, to download the 32 bit packages, | |
| 109 substitute lib64 with lib | |
| 110 * Some of these packages might not be explicitly necessary as they come as | |
| 111 dependencies, there is no harm in including them however. | |
| 112 | |
| 113 ### Gentoo | |
| 114 | |
| 115 emerge www-client/chromium | |
| 116 | |
| 117 ## Troubleshooting | |
| 118 | |
| 119 ### Linker Crashes | |
| 120 | |
| 121 If, during the final link stage: | |
| 122 | |
| 123 LINK out/Debug/chrome | |
| 124 | |
| 125 You get an error like: | |
| 126 | |
| 127 collect2: ld terminated with signal 6 Aborted terminate called after throwin
g an | |
| 128 instance of 'std::bad_alloc' | |
| 129 | |
| 130 collect2: ld terminated with signal 11 [Segmentation fault], core dumped | |
| 131 | |
| 132 you are probably running out of memory when linking. You *must* use a 64-bit | |
| 133 system to build. Try the following build settings (see [GN build | |
| 134 configuration](https://www.chromium.org/developers/gn-build-configuration) for | |
| 135 setting): | |
| 136 | |
| 137 * Build in release mode (debugging symbols require more memory). | |
| 138 `is_debug = false` | |
| 139 * Turn off symbols. `symbol_level = 0` | |
| 140 * Build in component mode (this is for developers only, it will be slower and | |
| 141 may have broken functionality). `is_component_build = true` | |
| 142 | |
| 143 ## More links | |
| 144 | |
| 145 * [Faster builds on Linux](linux_faster_builds.md) | |
| 146 * Information about [building with Clang](clang.md). | |
| 147 * You may want to | |
| 148 [use a chroot](using_a_linux_chroot.md) to | |
| 149 isolate yourself from versioning or packaging conflicts (or to run the | |
| 150 layout tests). | |
| 151 * Cross-compiling for ARM? See [LinuxChromiumArm](linux_chromium_arm.md). | |
| 152 * Want to use Eclipse as your IDE? See | |
| 153 [LinuxEclipseDev](linux_eclipse_dev.md). | |
| 154 * Built version as Default Browser? See | |
| 155 [LinuxDevBuildAsDefaultBrowser](linux_dev_build_as_default_browser.md). | |
| 156 | |
| 157 ## Next Steps | |
| 158 | |
| 159 If you want to contribute to the effort toward a Chromium-based browser for | |
| 160 Linux, please check out the [Linux Development page](linux_development.md) for | |
| 161 more information. | |
| OLD | NEW |