Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Checking out and building Chromium on Linux | 1 # Checking out and building Chromium on Linux |
| 2 | 2 |
| 3 There are instructions for other platforms linked from the | 3 There are instructions for other platforms linked from the |
| 4 [get the code](get_the_code.md) page. | 4 [get the code](get_the_code.md) page. |
| 5 | 5 |
| 6 ## Instructions for Google Employees | 6 ## Instructions for Google Employees |
| 7 | 7 |
| 8 Are you a Google employee? See | 8 Are you a Google employee? See |
| 9 [go/building-chrome](https://goto.google.com/building-chrome) instead. | 9 [go/building-chrome](https://goto.google.com/building-chrome) instead. |
| 10 | 10 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 69 | 69 |
| 70 ```shell | 70 ```shell |
| 71 $ cd src | 71 $ cd src |
| 72 ``` | 72 ``` |
| 73 | 73 |
| 74 ### Install additional build dependencies | 74 ### Install additional build dependencies |
| 75 | 75 |
| 76 Once you have checked out the code, and assuming you're using Ubuntu, run | 76 Once you have checked out the code, and assuming you're using Ubuntu, run |
| 77 [build/install-build-deps.sh](/build/install-build-deps.sh) | 77 [build/install-build-deps.sh](/build/install-build-deps.sh) |
| 78 | 78 |
| 79 You may need to adjust the build dependencies for other distros. There are | |
| 80 some [notes](#notes) at the end of this document, but we make no guarantees | |
| 81 for their accuracy. | |
| 82 | |
| 79 Here are some instructions for what to do instead for | 83 Here are some instructions for what to do instead for |
| 80 | 84 |
| 81 * [Debian](linux_debian_build_instructions.md) | 85 * [Debian](linux_debian_build_instructions.md) |
| 82 * [Fedora](linux_fedora_build_instructions.md) | 86 * [Fedora](linux_fedora_build_instructions.md) |
| 83 * [Arch Linux](linux_arch_build_instructions.md) | 87 * [Arch Linux](linux_arch_build_instructions.md) |
| 84 * [Open SUSE](linux_open_suse_build_instrctions.md) | 88 * [Open SUSE](linux_open_suse_build_instrctions.md) |
| 85 * [Mandriva](linux_mandriva_build_instrctions.md) | 89 * [Mandriva](linux_mandriva_build_instrctions.md) |
| 86 | 90 |
| 87 For Gentoo, you can just run `emerge www-client/chromium`. | 91 For Gentoo, you can just run `emerge www-client/chromium`. |
| 88 | 92 |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 118 it should be a subdirectory of `out`. | 122 it should be a subdirectory of `out`. |
| 119 * For other build arguments, including release settings, see [GN build | 123 * For other build arguments, including release settings, see [GN build |
| 120 configuration](https://www.chromium.org/developers/gn-build-configuration). | 124 configuration](https://www.chromium.org/developers/gn-build-configuration). |
| 121 The default will be a debug component build matching the current host | 125 The default will be a debug component build matching the current host |
| 122 operating system and CPU. | 126 operating system and CPU. |
| 123 * For more info on GN, run `gn help` on the command line or read the | 127 * For more info on GN, run `gn help` on the command line or read the |
| 124 [quick start guide](../tools/gn/docs/quick_start.md). | 128 [quick start guide](../tools/gn/docs/quick_start.md). |
| 125 | 129 |
| 126 ### Faster builds | 130 ### Faster builds |
| 127 | 131 |
| 132 This section contains some things you can change to speed up your builds, | |
| 133 sorted so that the things that make the biggest difference are first. | |
| 134 | |
| 135 #### Disable NaCl | |
| 136 | |
| 137 By default, the build includes support for | |
| 138 [Native Client (NaCl)](https://developer.chrome.com/native-client), but | |
| 139 most of the time you won't need it. You can set the GN argument | |
| 140 `enable_nacl=false` and it won't be built. | |
| 141 | |
| 142 #### Include fewer debug symbols | |
| 143 | |
| 144 By default GN produces a build with all of the debug assertions enabled | |
| 145 (`is_debug=true`) and including full debug info (`symbol_level=2`). Setting | |
| 146 `symbol_level=1` will produce enough information for stack traces, but not | |
| 147 line-by-line debugging. Setting `symbol_level=0` will include no debug | |
| 148 symbols at all. Either will speed up the build compared to full symbols. | |
| 149 | |
| 128 See [faster builds on Linux](linux_faster_builds.md) for various tips and | 150 See [faster builds on Linux](linux_faster_builds.md) for various tips and |
| 129 settings that may speed up your build. | 151 settings that may speed up your build. |
| 130 | 152 |
| 153 #### Disable debug symbols for Blink | |
| 154 | |
| 155 Due to its extensive use of templates, the Blink code produces about half | |
| 156 of our debug symbols. If you don't ever need to debug Blink, you can set | |
| 157 the GN arg `remove_webcore_debug_symbols=true`. | |
| 158 | |
| 159 #### Use Icecc | |
| 160 | |
| 161 [Icecc](https://github.com/icecc/icecream) is the distributed compiler with a | |
| 162 central scheduler to share build load. Currently, many external contributors use | |
| 163 it. e.g. Intel, Opera, Samsung (Googlers use an internal system called Goma). | |
| 164 | |
| 165 In order to use `icecc`, set the following GN args: | |
| 166 | |
| 167 ``` | |
| 168 linux_use_bundled_binutils=false | |
| 169 use_debug_fission=false | |
| 170 is_clang=false | |
| 171 use_sysroot=false | |
| 172 ``` | |
| 173 | |
| 174 See these links for more on the | |
| 175 [bundled_binutils limitation](https://github.com/icecc/icecream/commit/b2ce5b9cc 4bd1900f55c3684214e409fa81e7a92), | |
| 176 the [debug fission limitation](http://gcc.gnu.org/wiki/DebugFission). | |
| 177 | |
| 178 Using the system linker may also be necessary when using glibc 2.21 or newer. | |
| 179 See [related bug](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=808181). | |
| 180 | |
| 181 #### ccache | |
| 182 | |
| 183 You can use [ccache](https://ccache.samba.org) to speed up local builds (again, | |
| 184 this is not useful if you're using a Googler using Goma). | |
| 185 | |
| 186 Increase your ccache hit rate by setting `CCACHE_BASEDIR` to a parent directory | |
| 187 that the working directories all have in common (e.g., | |
| 188 `/home/yourusername/development`). Consider using | |
| 189 `CCACHE_SLOPPINESS=include_file_mtime` (since if you are using multiple working | |
| 190 directories, header times in svn sync'ed portions of your trees will be | |
| 191 different - see | |
| 192 [the ccache troubleshooting section](http://ccache.samba.org/manual.html#_troubl eshooting) | |
| 193 for additional information). If you use symbolic links from your home directory | |
| 194 to get to the local physical disk directory where you keep those working | |
| 195 development directories, consider putting | |
| 196 | |
| 197 alias cd="cd -P" | |
| 198 | |
| 199 in your `.bashrc` so that `$PWD` or `cwd` always refers to a physical, not | |
| 200 logical directory (and make sure `CCACHE_BASEDIR` also refers to a physical | |
| 201 parent). | |
| 202 | |
| 203 If you tune ccache correctly, a second working directory that uses a branch | |
| 204 tracking trunk and is up to date with trunk and was gclient sync'ed at about the | |
| 205 same time should build chrome in about 1/3 the time, and the cache misses as | |
| 206 reported by `ccache -s` should barely increase. | |
| 207 | |
| 208 This is especially useful if you use `git-new-workdir` and keep multiple local | |
| 209 working directories going at once. | |
| 210 | |
| 211 #### Using tmpfs | |
| 212 | |
| 213 You can use tmpfs for the build output to reduce the amount of disk writes | |
| 214 required. I.e. mount tmpfs to the output directory where the build output goes: | |
| 215 | |
| 216 As root: | |
| 217 | |
| 218 mount -t tmpfs -o size=20G,nr_inodes=40k,mode=1777 tmpfs /path/to/out | |
| 219 | |
| 220 *** note | |
| 221 **Caveat:** You need to have enough RAM + swap to back the tmpfs. For a full | |
| 222 debug build, you will need about 20 GB. Less for just building the chrome target | |
| 223 or for a release build. | |
| 224 *** | |
| 225 | |
| 226 Quick and dirty benchmark numbers on a HP Z600 (Intel core i7, 16 cores | |
| 227 hyperthreaded, 12 GB RAM) | |
| 228 | |
| 229 * With tmpfs: | |
| 230 * 12m:20s | |
| 231 * Without tmpfs | |
| 232 * 15m:40s | |
| 233 | |
| 131 ## Build Chromium | 234 ## Build Chromium |
| 132 | 235 |
| 133 Build Chromium (the "chrome" target) with Ninja using the command: | 236 Build Chromium (the "chrome" target) with Ninja using the command: |
| 134 | 237 |
| 135 ```shell | 238 ```shell |
| 136 $ ninja -C out/Default chrome | 239 $ ninja -C out/Default chrome |
| 137 ``` | 240 ``` |
| 138 | 241 |
| 139 You can get a list of all of the other build targets from GN by running `gn ls | 242 You can get a list of all of the other build targets from GN by running `gn ls |
| 140 out/Default` from the command line. To compile one, pass the GN label to Ninja | 243 out/Default` from the command line. To compile one, pass the GN label to Ninja |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 210 | 313 |
| 211 * Information about [building with Clang](clang.md). | 314 * Information about [building with Clang](clang.md). |
| 212 * You may want to [use a chroot](using_a_linux_chroot.md) to | 315 * You may want to [use a chroot](using_a_linux_chroot.md) to |
| 213 isolate yourself from versioning or packaging conflicts. | 316 isolate yourself from versioning or packaging conflicts. |
| 214 * Cross-compiling for ARM? See [LinuxChromiumArm](linux_chromium_arm.md). | 317 * Cross-compiling for ARM? See [LinuxChromiumArm](linux_chromium_arm.md). |
| 215 * Want to use Eclipse as your IDE? See | 318 * Want to use Eclipse as your IDE? See |
| 216 [LinuxEclipseDev](linux_eclipse_dev.md). | 319 [LinuxEclipseDev](linux_eclipse_dev.md). |
| 217 * Want to use your built version as your default browser? See | 320 * Want to use your built version as your default browser? See |
| 218 [LinuxDevBuildAsDefaultBrowser](linux_dev_build_as_default_browser.md). | 321 [LinuxDevBuildAsDefaultBrowser](linux_dev_build_as_default_browser.md). |
| 219 | 322 |
| 220 ### Next Steps | 323 ## Next Steps |
| 221 | 324 |
| 222 If you want to contribute to the effort toward a Chromium-based browser for | 325 If you want to contribute to the effort toward a Chromium-based browser for |
| 223 Linux, please check out the [Linux Development page](linux_development.md) for | 326 Linux, please check out the [Linux Development page](linux_development.md) for |
| 224 more information. | 327 more information. |
| 328 | |
| 329 ## Notes for other distros <a name="notes"></a> | |
| 330 | |
| 331 ### Arch Linux | |
| 332 | |
| 333 Instead of running `install-build-deps.sh` to install build dependencies, run: | |
| 334 | |
| 335 ```shell | |
| 336 $ sudo pacman -S --needed python perl gcc gcc-libs bison flex gperf pkgconfig \ | |
| 337 nss alsa-lib gconf glib2 gtk2 nspr ttf-ms-fonts freetype2 cairo dbus \ | |
| 338 libgnome-keyring | |
| 339 ``` | |
| 340 | |
| 341 For the optional packages on Arch Linux: | |
| 342 | |
| 343 * `php-cgi` is provided with `pacman` | |
| 344 * `wdiff` is not in the main repository but `dwdiff` is. You can get `wdiff` | |
| 345 in AUR/`yaourt` | |
| 346 * `sun-java6-fonts` do not seem to be in main repository or AUR. | |
| 347 | |
| 348 ### Debian | |
| 349 | |
| 350 You may need to update the package names in `install-build-deps.sh`: | |
|
Tom (Use chromium acct)
2016/12/02 01:42:38
You can't run install-build-deps.sh on Debian, it'
Dirk Pranke
2016/12/02 01:56:45
Okay ... how would a user figure out which package
Tom (Use chromium acct)
2016/12/02 02:09:45
Last time I built on Debian, I manually edited the
| |
| 351 | |
| 352 * `libexpat-dev` → `libexpat1-dev` | |
| 353 * `freetype-dev` → `libfreetype6-dev` | |
| 354 * `libbzip2-dev` → `libbz2-dev` | |
| 355 * `libcupsys2-dev` → `libcups2-dev` | |
| 356 | |
| 357 ### Fedora | |
| 358 | |
| 359 Instead of running `build/install-build-deps.sh`, run: | |
| 360 | |
| 361 ```shell | |
| 362 su -c 'yum install git python bzip2 tar pkgconfig atk-devel alsa-lib-devel \ | |
| 363 bison binutils brlapi-devel bluez-libs-devel bzip2-devel cairo-devel \ | |
| 364 cups-devel dbus-devel dbus-glib-devel expat-devel fontconfig-devel \ | |
| 365 freetype-devel gcc-c++ GConf2-devel glib2-devel glibc.i686 gperf \ | |
| 366 glib2-devel gtk2-devel gtk3-devel java-1.*.0-openjdk-devel libatomic \ | |
| 367 libcap-devel libffi-devel libgcc.i686 libgnome-keyring-devel libjpeg-devel \ | |
| 368 libstdc++.i686 libX11-devel libXScrnSaver-devel libXtst-devel \ | |
| 369 libxkbcommon-x11-devel ncurses-compat-libs nspr-devel nss-devel pam-devel \ | |
| 370 pango-devel pciutils-devel pulseaudio-libs-devel zlib.i686 httpd mod_ssl \ | |
| 371 php php-cli python-psutil wdiff' | |
| 372 ``` | |
| 373 | |
| 374 The `msttcorefonts` packages can be obtained by following [these | |
| 375 instructions](http://www.fedorafaq.org/#installfonts). For the optional | |
| 376 packages: | |
| 377 | |
| 378 * `php-cgi` is provided by the `php-cli` package. | |
| 379 * `sun-java6-fonts` doesn't exist in Fedora repositories, needs investigating. | |
| 380 | |
| 381 ### Mandriva | |
| 382 | |
| 383 Instead of running `build/install-build-deps.sh`, run: | |
| 384 | |
| 385 ```shell | |
| 386 urpmi lib64fontconfig-devel lib64alsa2-devel lib64dbus-1-devel \ | |
| 387 lib64GConf2-devel lib64freetype6-devel lib64atk1.0-devel lib64gtk+2.0_0-devel \ | |
| 388 lib64pango1.0-devel lib64cairo-devel lib64nss-devel lib64nspr-devel g++ python \ | |
| 389 perl bison flex subversion gperf | |
| 390 ``` | |
| 391 | |
| 392 * `msttcorefonts` are not available, you will need to build your own (see | |
| 393 instructions, not hard to do, see | |
| 394 [mandriva_msttcorefonts.md](mandriva_msttcorefonts.md)) or use `drakfont` to | |
| 395 import the fonts from a Windows installation. | |
| 396 | |
| 397 ### OpenSUSE | |
| 398 | |
| 399 Use `zypper` command to install dependencies: | |
| 400 | |
| 401 (openSUSE 11.1 and higher) | |
| 402 | |
| 403 ```shell | |
| 404 sudo zypper in subversion pkg-config python perl \ | |
| 405 bison flex gperf mozilla-nss-devel glib2-devel gtk-devel \ | |
| 406 wdiff lighttpd gcc gcc-c++ gconf2-devel mozilla-nspr \ | |
| 407 mozilla-nspr-devel php5-fastcgi alsa-devel libexpat-devel \ | |
| 408 libjpeg-devel libbz2-devel | |
| 409 ``` | |
| 410 | |
| 411 For 11.0, use `libnspr4-0d` and `libnspr4-dev` instead of `mozilla-nspr` and | |
| 412 `mozilla-nspr-devel`, and use `php5-cgi` instead of `php5-fastcgi`. And need | |
| 413 `gtk2-devel`. | |
| 414 | |
| 415 (openSUSE 11.0) | |
| 416 | |
| 417 ```shell | |
| 418 sudo zypper in subversion pkg-config python perl \ | |
| 419 bison flex gperf mozilla-nss-devel glib2-devel gtk-devel \ | |
| 420 libnspr4-0d libnspr4-dev wdiff lighttpd gcc gcc-c++ libexpat-devel \ | |
| 421 php5-cgi gconf2-devel alsa-devel gtk2-devel jpeg-devel | |
| 422 ``` | |
| 423 | |
| 424 The Ubuntu package `sun-java6-fonts` contains a subset of Java of the fonts used . | |
| 425 Since this package requires Java as a prerequisite anyway, we can do the same | |
| 426 thing by just installing the equivalent openSUSE Sun Java package: | |
| 427 | |
| 428 ```shell | |
| 429 sudo zypper in java-1_6_0-sun | |
| 430 ``` | |
| 431 | |
| 432 WebKit is currently hard-linked to the Microsoft fonts. To install these using ` zypper` | |
| 433 | |
| 434 ```shell | |
| 435 sudo zypper in fetchmsttfonts pullin-msttf-fonts | |
| 436 ``` | |
| 437 | |
| 438 To make the fonts installed above work, as the paths are hardcoded for Ubuntu, | |
| 439 create symlinks to the appropriate locations: | |
| 440 | |
| 441 ```shell | |
| 442 sudo mkdir -p /usr/share/fonts/truetype/msttcorefonts | |
| 443 sudo ln -s /usr/share/fonts/truetype/arial.ttf /usr/share/fonts/truetype/msttcor efonts/Arial.ttf | |
| 444 sudo ln -s /usr/share/fonts/truetype/arialbd.ttf /usr/share/fonts/truetype/msttc orefonts/Arial_Bold.ttf | |
| 445 sudo ln -s /usr/share/fonts/truetype/arialbi.ttf /usr/share/fonts/truetype/msttc orefonts/Arial_Bold_Italic.ttf | |
| 446 sudo ln -s /usr/share/fonts/truetype/ariali.ttf /usr/share/fonts/truetype/msttco refonts/Arial_Italic.ttf | |
| 447 sudo ln -s /usr/share/fonts/truetype/comic.ttf /usr/share/fonts/truetype/msttcor efonts/Comic_Sans_MS.ttf | |
| 448 sudo ln -s /usr/share/fonts/truetype/comicbd.ttf /usr/share/fonts/truetype/msttc orefonts/Comic_Sans_MS_Bold.ttf | |
| 449 sudo ln -s /usr/share/fonts/truetype/cour.ttf /usr/share/fonts/truetype/msttcore fonts/Courier_New.ttf | |
| 450 sudo ln -s /usr/share/fonts/truetype/courbd.ttf /usr/share/fonts/truetype/msttco refonts/Courier_New_Bold.ttf | |
| 451 sudo ln -s /usr/share/fonts/truetype/courbi.ttf /usr/share/fonts/truetype/msttco refonts/Courier_New_Bold_Italic.ttf | |
| 452 sudo ln -s /usr/share/fonts/truetype/couri.ttf /usr/share/fonts/truetype/msttcor efonts/Courier_New_Italic.ttf | |
| 453 sudo ln -s /usr/share/fonts/truetype/impact.ttf /usr/share/fonts/truetype/msttco refonts/Impact.ttf | |
| 454 sudo ln -s /usr/share/fonts/truetype/times.ttf /usr/share/fonts/truetype/msttcor efonts/Times_New_Roman.ttf | |
| 455 sudo ln -s /usr/share/fonts/truetype/timesbd.ttf /usr/share/fonts/truetype/msttc orefonts/Times_New_Roman_Bold.ttf | |
| 456 sudo ln -s /usr/share/fonts/truetype/timesbi.ttf /usr/share/fonts/truetype/msttc orefonts/Times_New_Roman_Bold_Italic.ttf | |
| 457 sudo ln -s /usr/share/fonts/truetype/timesi.ttf /usr/share/fonts/truetype/msttco refonts/Times_New_Roman_Italic.ttf | |
| 458 sudo ln -s /usr/share/fonts/truetype/verdana.ttf /usr/share/fonts/truetype/msttc orefonts/Verdana.ttf | |
| 459 sudo ln -s /usr/share/fonts/truetype/verdanab.ttf /usr/share/fonts/truetype/mstt corefonts/Verdana_Bold.ttf | |
| 460 sudo ln -s /usr/share/fonts/truetype/verdanai.ttf /usr/share/fonts/truetype/mstt corefonts/Verdana_Italic.ttf | |
| 461 sudo ln -s /usr/share/fonts/truetype/verdanaz.ttf /usr/share/fonts/truetype/mstt corefonts/Verdana_Bold_Italic.ttf | |
| 462 ``` | |
| 463 | |
| 464 The Ubuntu package `sun-java6-fonts` contains a subset of Java of the fonts used . | |
| 465 Since this package requires Java as a prerequisite anyway, we can do the same | |
| 466 thing by just installing the equivalent openSUSE Sun Java package: | |
| 467 | |
| 468 ```shell | |
| 469 sudo zypper in java-1_6_0-sun | |
| 470 ``` | |
| 471 | |
| 472 WebKit is currently hard-linked to the Microsoft fonts. To install these using ` zypper` | |
| 473 | |
| 474 ```shell | |
| 475 sudo zypper in fetchmsttfonts pullin-msttf-fonts | |
| 476 ``` | |
| 477 | |
| 478 To make the fonts installed above work, as the paths are hardcoded for Ubuntu, | |
| 479 create symlinks to the appropriate locations: | |
| 480 | |
| 481 ```shell | |
| 482 sudo mkdir -p /usr/share/fonts/truetype/msttcorefonts | |
| 483 sudo ln -s /usr/share/fonts/truetype/arial.ttf /usr/share/fonts/truetype/msttcor efonts/Arial.ttf | |
| 484 sudo ln -s /usr/share/fonts/truetype/arialbd.ttf /usr/share/fonts/truetype/msttc orefonts/Arial_Bold.ttf | |
| 485 sudo ln -s /usr/share/fonts/truetype/arialbi.ttf /usr/share/fonts/truetype/msttc orefonts/Arial_Bold_Italic.ttf | |
| 486 sudo ln -s /usr/share/fonts/truetype/ariali.ttf /usr/share/fonts/truetype/msttco refonts/Arial_Italic.ttf | |
| 487 sudo ln -s /usr/share/fonts/truetype/comic.ttf /usr/share/fonts/truetype/msttcor efonts/Comic_Sans_MS.ttf | |
| 488 sudo ln -s /usr/share/fonts/truetype/comicbd.ttf /usr/share/fonts/truetype/msttc orefonts/Comic_Sans_MS_Bold.ttf | |
| 489 sudo ln -s /usr/share/fonts/truetype/cour.ttf /usr/share/fonts/truetype/msttcore fonts/Courier_New.ttf | |
| 490 sudo ln -s /usr/share/fonts/truetype/courbd.ttf /usr/share/fonts/truetype/msttco refonts/Courier_New_Bold.ttf | |
| 491 sudo ln -s /usr/share/fonts/truetype/courbi.ttf /usr/share/fonts/truetype/msttco refonts/Courier_New_Bold_Italic.ttf | |
| 492 sudo ln -s /usr/share/fonts/truetype/couri.ttf /usr/share/fonts/truetype/msttcor efonts/Courier_New_Italic.ttf | |
| 493 sudo ln -s /usr/share/fonts/truetype/impact.ttf /usr/share/fonts/truetype/msttco refonts/Impact.ttf | |
| 494 sudo ln -s /usr/share/fonts/truetype/times.ttf /usr/share/fonts/truetype/msttcor efonts/Times_New_Roman.ttf | |
| 495 sudo ln -s /usr/share/fonts/truetype/timesbd.ttf /usr/share/fonts/truetype/msttc orefonts/Times_New_Roman_Bold.ttf | |
| 496 sudo ln -s /usr/share/fonts/truetype/timesbi.ttf /usr/share/fonts/truetype/msttc orefonts/Times_New_Roman_Bold_Italic.ttf | |
| 497 sudo ln -s /usr/share/fonts/truetype/timesi.ttf /usr/share/fonts/truetype/msttco refonts/Times_New_Roman_Italic.ttf | |
| 498 sudo ln -s /usr/share/fonts/truetype/verdana.ttf /usr/share/fonts/truetype/msttc orefonts/Verdana.ttf | |
| 499 sudo ln -s /usr/share/fonts/truetype/verdanab.ttf /usr/share/fonts/truetype/mstt corefonts/Verdana_Bold.ttf | |
| 500 sudo ln -s /usr/share/fonts/truetype/verdanai.ttf /usr/share/fonts/truetype/mstt corefonts/Verdana_Italic.ttf | |
| 501 sudo ln -s /usr/share/fonts/truetype/verdanaz.ttf /usr/share/fonts/truetype/mstt corefonts/Verdana_Bold_Italic.ttf | |
| 502 ``` | |
| 503 | |
| 504 And then for the Java fonts: | |
| 505 | |
| 506 ```shell | |
| 507 sudo mkdir -p /usr/share/fonts/truetype/ttf-lucida | |
| 508 sudo find /usr/lib*/jvm/java-1.6.*-sun-*/jre/lib -iname '*.ttf' -print \ | |
| 509 -exec ln -s {} /usr/share/fonts/truetype/ttf-lucida \; | |
| 510 ``` | |
| OLD | NEW |