|
|
| Line 1: |
Line 1: |
| − | {{autolang}}
| |
| | | | |
| − | = Mock =
| |
| − |
| |
| − | Mock створює chroot-оточення і будує в ньому пакунки. Його єдиною задачею є якісне наповнення цієї "пісочниці" і спроба зібрати в ній пакунок.
| |
| − |
| |
| − | == Статус ==
| |
| − | На даний момент mock задіяно у побудові всіх пакунків Fedora. Він використовується в [[Projects/Plague| Plague]] (<=FC-6) і [[Koji| Koji]] (>=F-7) для створення chroot-оточення і пакунків.
| |
| − |
| |
| − | == Звантаження ==
| |
| − | https://fedorahosted.org/mock/ містить усі найсвіжіші версії. Для встановлення можна скористатись командою "yum install mock".
| |
| − |
| |
| − | Код в поточному стані можна знайти за адресою:
| |
| − | * <code>git clone git://git.fedorahosted.org/git/mock.git mock</code>
| |
| − |
| |
| − | == Використання mock в СКВ ==
| |
| − |
| |
| − | Для запуску процесу збірки потрібно лише ввести 'make mockbuild'. Архітектура залежить від директорії, в якій було розпочато будування.
| |
| − |
| |
| − | == Питання безпеки ==
| |
| − | === Користувач ===
| |
| − |
| |
| − | Для процесу збірки рекомендується використовувати користувацький аккаунт відмінний від основного. Навряд чи ви зрадієте, якщо під час збирання пакунку користувач "випадково" отримає доступ до ваших GPG чи SSH ключів.
| |
| − |
| |
| − | Щоб створити нового користувача і додати його в групу mock, виконайте команду:
| |
| − |
| |
| − | * adduser -m -G mock build
| |
| − |
| |
| − | === Використання mock ненадійними користувачами ===
| |
| − |
| |
| − | Зверніть увагу, що користувач в групі mock здатний отримати root-права на машині без введення пароля:
| |
| − | <pre>
| |
| − | $ /usr/bin/mock --init -r fedora-10-i386
| |
| − | $ /usr/bin/mock --shell -r fedora-10-i386
| |
| − | mock-chroot> chmod u+s bin/bash
| |
| − | $ /var/lib/mock/fedora-10-i386/root/bin/bash -p
| |
| − | # cat /etc/shadow
| |
| − | </pre>
| |
| − |
| |
| − | == Використання ==
| |
| − |
| |
| − | <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>
| |
| − |
| |
| − | Наприклад, щоб перезібрати пакет:
| |
| − |
| |
| − | * <code>mock rebuild -r fedora-devel-i386 /path/to/rpm</code>
| |
| − |
| |
| − | Усі доступні цілі збірки можна переглянути в /etc/mock. Якщо у вас встановлено пакунок bash-completion, то при натисненні клавіші tab він підставлятиме цілі замість вас.
| |
| − |
| |
| − | == Проблеми ==
| |
| − | Якщо ви знайшли помилку при роботі mock, будь ласка, повідомте про це на [https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora%20Hosted%20Projects&component=mock Bugzilla] , продукт "Fedora Hosted Projects", компонент mock ([https://bugzilla.redhat.com/buglist.cgi?query_format=advanced&product=Fedora%20Hosted%20Projects&component=mock&bug_status=NEW&bug_status=ASSIGNED&bug_status=MODIFIED&bug_status=ON_DEV&bug_status=ON_QA&bug_status=VERIFIED&bug_status=FAILS_QA&bug_status=RELEASE_PENDING&bug_status=POST Open Bugs]).
| |
| − |
| |
| − | == Дивіться також ==
| |
| − |
| |
| − | [[Extras/MockTricks]] деякі корисні поради щодо застосування mock.<BR>
| |
| − | [[Docs/Drafts/MockSetupUsingLocalMirror]] налаштування локального дзеркала для використання програмою mock. <BR>
| |
| − | [[Legacy/Mock]] деякі корисні поради щодо збирання пакунків у старих версіях Fedora та Red Hat Linux.
| |
| − |
| |
| − | [[Category:ukrainian]]
| |