Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
|
linux:overall:apt [2024/12/11 11:15] admin |
linux:overall:apt [2025/02/20 09:41] (текущий) admin |
# тут какая то инфа | # тут какая то инфа |
update-alternatives --display java | update-alternatives --display java |
| |
| # установка в неинтерактивном режиме |
| update-alternatives --set java /usr/bin/java17 |
| |
# расположение jvm | # расположение jvm |
# Распаковать пакет | # Распаковать пакет |
sudo rpm2cpio ha_wrapper-1.0.0-20.noarch.rpm | cpio -idmv | sudo rpm2cpio ha_wrapper-1.0.0-20.noarch.rpm | cpio -idmv |
| |
| # Локальный пакет |
| sudo dnf install app.rpm |
</code> | </code> |
| |
| Добавить репозиторий из адреса\\ |
| В директории **/etc/repos.d** создается отдельный файл с нужными параметрами\\ |
| Но могут еще понадобиться gpg ключи, он их не добавляет и не задаем параметры для них\\ |
| <code bash> |
| dnf config-manager --add-repo http://local.ru |
| |
| cat /etc/yum.repos.d/local.ru.repo |
| ``` |
| [local.ru] |
| name=created by yum config-manager from http://local.ru |
| baseurl=http://local.ru |
| enabled=1 |
| ``` |
| </code> |
| |
| |
| |
| |
| |
★ Можно создавать отдельные чруты для каждой сборки, для этого есть пар-р "--uniqueext", добавляет соль в название\\ | ★ Можно создавать отдельные чруты для каждой сборки, для этого есть пар-р "--uniqueext", добавляет соль в название\\ |
| UPD: Есть проблема при очистке, тк кеши (/var/cache/mock) все равно создаются общие, если чиститься ("--scrub=all") внутри каждой сборки то это аффактит других\\ |
| Выход это использовать полную изоляцию, параметры "basedir" и "cache_topdir", можно в конфиге можно в команде запуска\\ |
| |
| ★ Нужно передавать на обоих этапах (исходники и пакеты) и при очистке тоже нужно передавать этот индекс |
| |
★ Нужно передавать на обоих этапах (исходники и пакеты) | |
| |
<code bash> | <code bash> |
mock -r /my_build_dir/m.cfg --uniqueext=123 | mock -r /my_build_dir/m.cfg --uniqueext=123 |
| |
| # Сборка --buildsrpm |
| mock -r /workdir/sbel.cfg --buildsrpm --spec=/workdir/hello.spec --sources=/workdir/my_build_dir/SOURCES --resultdir=/workdir/my_build_dir/SRPMS --config-opts=basedir='/workdir/build/' --config-opts=cache_topdir='/workdir/build/' --uniqueext=123 |
| |
| |
| # Сборка --chain |
| mock -r /workdir/sbel.cfg --chain $(ls /workdir/my_build_dir/SRPMS//*.src.rpm) --localrepo /workdir/my_build_dir/RPMS/x86_64 --config-opts=basedir='/workdir/build/' --config-opts=cache_topdir='/workdir/build/' |
| |
| |
| # Очистка |
| mock -r /workdir/sbel.cfg --scrub=all --config-opts=basedir='/workdir/build/' --config-opts=cache_topdir='/workdir/build/' --uniqueext=321 |
</code> | </code> |
| При таком подходе "--uniqueext" лучше все равно передавать, иначе чрут чистится вместе с кешем (который в ту же папку ложится) после первого этапе и втрой выполняется очень долго, (для второго этапа создается новый чрут и без кеша он создается очень долго)\\ |
</details> | </details> |
| |
<details> | <details> |
<summary>:!: Очистка кеша </summary> | <summary>:!: Очистка кеша </summary> |
★ Mock создает chroot-окружения ОС, в "/var/lib/mock", создается даже два, второй "bootstrap" служебный, для раскатки туда сначала целевых менеджеров пакетов, чтобы потом этими менеджерами ставить все в итоговую (а не хостовым менеджером)\\ | ★ Mock создает chroot-окружения ОС, в "/var/lib/mock", и общие кеши в "/var/cache/mock", создается по два, второй "bootstrap" служебный, для раскатки туда сначала целевых менеджеров пакетов, чтобы потом этими менеджерами ставить все в итоговую (а не хостовым менеджером)\\ |
| |
★ Основная папка удаляется (и то только после первого этапа, после второго тоже остается) а bootstrap остается всегда, для удаления можно использовать пар-р "--scrube", на вход дается имя конфига и соль (если применялась) | ★ Параметр конфига "cleanup_on_success" чистит только основной чрут и только после первого этапа сборки |
| |
★ Так же кеш создается еще в "/var/cache/mock", но тут неясно, папки называются без соли и не удаляются, возможно в случае параллельных сборок он не распухает\\ | ★ Команда "mock --clean" - удаляет только основную чрут директорию, в данном случае - "/var/lib/mock/MyOS-x86_64-123" остальные три остаются\\ |
| |
| ★ Команда "mock --scrub" имеет несколько вариантов:\\ |
| * "--scrub=chroot" - тоже самое что и "mock --clean" |
| * "--scrub=all" - удалит все 4 папки, тобишь и общий кеш тоже (аффектит другие сборки) |
| * "--scrub=bootstrap" - удалит только bootstrap но оба, свой и общий (что тоже аффектит) |
| * есть еще варианты "cache, root-cache, c-cache, yum-cache" - они тут ничем не помогут |
| |
| ★ Если каждая сборка будет с уникальным названием то чистить нужно обязательно, проблема в том что все доступные команды чистки затрагивают и общий кеш тоже |
| ★ Чистить руками не удается т.к права на папки рутовые, (где то root:mock а где то root:root), в дженкинсе удалить можно только самим моком |
| |
<code bash> | <code bash> |
mock -r /my_build_dir/m.cfg --uniqueext=123 --scrub=all | mock -r /my_build_dir/m.cfg --uniqueext=123 --scrub=all |
| </code> |
| |
| |
| Запуск с изоляцией в указанной папке |
| <code bash> |
| mock -r /workdir/sbel.cfg --buildsrpm --config-opts=basedir='/mock-chroots/build_job_12' --config-opts=cache_topdir='/mock-chroots/build_job_12' --uniqueext=123 |
</code> | </code> |
| |
| Как выглядят папки |
| <code bash> |
| /mock-chroots/build_job_12/MyOs-x86_64: |
| drwxr-xr-x 2 root root 4096 Dec 13 06:53 dnf_cache |
| drwxr-xr-x 2 root root 4096 Dec 13 06:53 yum_cache |
| -rw-r--r-- 1 root root 0 Dec 13 06:53 yumcache.lock |
| |
| /mock-chroots/build_job_12/MyOs-x86_64-868: |
| drwxrwxr-x 2 root root 4096 Dec 13 06:53 root |
| |
| /mock-chroots/build_job_12/MyOs-x86_64-bootstrap: |
| drwxr-xr-x 6 root root 4096 Dec 13 06:53 dnf_cache |
| drwxrwxr-x 2 root root 4096 Dec 13 06:53 root_cache |
| drwxr-xr-x 2 root root 4096 Dec 13 06:53 yum_cache |
| -rw-r--r-- 1 root root 0 Dec 13 06:53 yumcache.lock |
| |
| /mock-chrootsbuild_job_12/MyOs-x86_64-bootstrap-868: |
| -rw-rw-r-- 1 root root 0 Dec 13 06:53 buildroot.lock |
| drwxrwsr-x 2 jenkins mock 4096 Dec 13 06:53 results |
| drwxrwsr-x 12 root mock 4096 Dec 13 06:53 root |
| </code> |
| </details> |
| |
| |
| <details> |
| <summary>:!: Траблы при очистке кеша </summary> |
| При использовании "изоляции" рабочей директории |
| <code bash> |
| mock -r /workdir/sbel.cfg --buildsrpm --config-opts=basedir='/mock-chroots/build_job_12' --config-opts=cache_topdir='/mock-chroots/build_job_12' --uniqueext=123 |
| </code> |
| |
| Если запустить с пустыми параметрами то будут проблемы с очисткой, мок не может найти нужные директории чтобы удалить |
| <code bash> |
| mock -r /workdir/sbel.cfg --buildsrpm --config-opts=basedir='' --config-opts=cache_topdir='' --uniqueext=123 |
| </code> |
| |
| Спасает только указать фактический путь в параметре конфига "root" |
| <code bash> |
| config_opts['root'] = '/mock-chroots/build_job_12_123' |
| </code> |
| |
| |
| |
</details> | </details> |
| |