1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
- Efficiently Fetching Source Files During a Build
- ************************************************
- The OpenEmbedded build system works with source files located through
- the :term:`SRC_URI` variable. When
- you build something using BitBake, a big part of the operation is
- locating and downloading all the source tarballs. For images,
- downloading all the source for various packages can take a significant
- amount of time.
- This section shows you how you can use mirrors to speed up fetching
- source files and how you can pre-fetch files all of which leads to more
- efficient use of resources and time.
- Setting up Effective Mirrors
- ============================
- A good deal that goes into a Yocto Project build is simply downloading
- all of the source tarballs. Maybe you have been working with another
- build system for which you have built up a
- sizable directory of source tarballs. Or, perhaps someone else has such
- a directory for which you have read access. If so, you can save time by
- adding statements to your configuration file so that the build process
- checks local directories first for existing tarballs before checking the
- Internet.
- Here is an efficient way to set it up in your ``local.conf`` file::
- SOURCE_MIRROR_URL ?= "file:///home/you/your-download-dir/"
- INHERIT += "own-mirrors"
- BB_GENERATE_MIRROR_TARBALLS = "1"
- # BB_NO_NETWORK = "1"
- In the previous example, the
- :term:`BB_GENERATE_MIRROR_TARBALLS`
- variable causes the OpenEmbedded build system to generate tarballs of
- the Git repositories and store them in the
- :term:`DL_DIR` directory. Due to
- performance reasons, generating and storing these tarballs is not the
- build system's default behavior.
- You can also use the
- :term:`PREMIRRORS` variable. For
- an example, see the variable's glossary entry in the Yocto Project
- Reference Manual.
- Getting Source Files and Suppressing the Build
- ==============================================
- Another technique you can use to ready yourself for a successive string
- of build operations, is to pre-fetch all the source files without
- actually starting a build. This technique lets you work through any
- download issues and ultimately gathers all the source files into your
- download directory :ref:`structure-build-downloads`,
- which is located with :term:`DL_DIR`.
- Use the following BitBake command form to fetch all the necessary
- sources without starting the build::
- $ bitbake target --runall=fetch
- This
- variation of the BitBake command guarantees that you have all the
- sources for that BitBake target should you disconnect from the Internet
- and want to do the build later offline.
|