|
|
(62 intermediate revisions by 17 users not shown) |
Line 1: |
Line 1: |
| = Mock =
| |
|
| |
|
| Mock creates chroots and builds packages in them. Its only task is to reliably populate a chroot and attempt to build a package in that chroot.
| |
|
| |
|
| == Status == | | = This page is not maintained anymore. It has been moved to https://rpm-software-management.github.io/mock/ = |
| Mock is currently being used for all Fedora builds. It is called by [[Projects/Plague| Plague]] (<=FC-6) and [[Koji| Koji]] (>=F-7) to build chroots and packages.
| |
| | |
| == Download ==
| |
| https://fedorahosted.org/mock/ has all the latest builds. It can be installed with "yum install mock". | |
| | |
| To check out the current code:
| |
| * <code>git clone git://git.fedorahosted.org/git/mock.git mock</code>
| |
| | |
| == Setup ==
| |
| | |
| All users that are to use mock must be added to the mock group.
| |
| | |
| Configuration files are in /etc/mock. Mock versions 0.8.0 and higher cache the downloaded rpm packages (via the yum_cache plugin), which speeds up subsequent builds by a considerable margin. Nevertheless, you may wish to change the default configuration to point to local repositories to speed up builds.
| |
| | |
| By default, builds are done in /var/lib/mock, so be sure you have room. Starting with mock 0.8.0 and higher, you can change this via the 'basedir' config option.
| |
| | |
| == Using ==
| |
| <pre>
| |
| Usage:
| |
| usage:
| |
| mock [options] {init|clean}
| |
| mock [options] [rebuild] /path/to/srpm(s)
| |
| mock [options] {shell|chroot} <cmd>
| |
| mock [options] installdeps {SRPM|RPM}
| |
| mock [options] install PACKAGE
| |
| commands:
| |
| rebuild - build the specified SRPM(s) [default command]
| |
| chroot - run the specified command within the chroot
| |
| shell - run an interactive shell within specified chroot
| |
| clean - clean out the specified chroot
| |
| init - initialize the chroot, do not build anything
| |
| installdeps - install build dependencies for a specified SRPM
| |
| install - install packages using yum
| |
| | |
| Options:
| |
| --version show program's version number and exit
| |
| -h, --help show this help message and exit
| |
| -r CHROOT chroot name/config file name default: default
| |
| --no-clean do not clean chroot before building
| |
| --cleanup-after Clean chroot after building. Use with --resultdir.
| |
| Only active for 'rebuild'.
| |
| --no-cleanup-after Dont clean chroot after building. If automatic cleanup
| |
| is enabled, use this to disable.
| |
| --arch=ARCH target build arch
| |
| --resultdir=RESULTDIR
| |
| path for resulting files to be put
| |
| --uniqueext=UNIQUEEXT
| |
| Arbitrary, unique extension to append to buildroot
| |
| directory name
| |
| --configdir=CONFIGDIR
| |
| Change where config files are found
| |
| --rpmbuild_timeout=RPMBUILD_TIMEOUT
| |
| Fail build if rpmbuild takes longer than 'timeout'
| |
| seconds
| |
| --enable-plugin=ENABLED_PLUGINS
| |
| Enable plugin. Currently-available plugins: ('ccache',
| |
| 'yum_cache', 'root_cache', 'bind_mount')
| |
| --disable-plugin=DISABLED_PLUGINS
| |
| Disable plugin. Currently-available plugins:
| |
| ('ccache', 'yum_cache', 'root_cache', 'bind_mount')
| |
| </pre>
| |
| | |
| For example, to rebuild a package for i386 on the development branch of Fedora:
| |
| | |
| * <code>mock rebuild -r fedora-devel-i386 /path/to/rpm</code>
| |
| | |
| See /etc/mock for the available targets. If you have the bash-completion package installed, it will tab complete the targets for you.
| |
| | |
| == Problems ==
| |
| If you encounter a bug running mock, please file it in [http://bugzilla.redhat.com Bugzilla] , product "Fedora Hosted Projects", component mock.
| |
| | |
| == See Also ==
| |
| | |
| [[Extras/MockTricks]] has some useful tips for using mock.<BR>
| |
| [[Docs/Drafts/MockSetupUsingLocalMirror]] Setting up a local mirror using Mock. <BR>
| |
| [[Legacy/Mock]] has some useful tips for building packages in mock for older Fedora and Red Hat Linux releases.
| |