From Fedora Project Wiki

fp-wiki>ImportUser
(Imported from MoinMoin)
 
 
(63 intermediate revisions by 18 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.

Latest revision as of 14:47, 10 November 2021


This page is not maintained anymore. It has been moved to https://rpm-software-management.github.io/mock/