Инструменты пользователя

Инструменты сайта


linux:overall:apt

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
linux:overall:apt [2024/12/11 11:15]
admin
linux:overall:apt [2025/02/20 09:41] (текущий)
admin
Строка 12: Строка 12:
   # тут какая то инфа    # тут какая то инфа 
 update-alternatives --display java update-alternatives --display java
 +
 +  # установка в неинтерактивном режиме
 +update-alternatives --set java /usr/bin/java17
  
   # расположение jvm   # расположение jvm
Строка 86: Строка 89:
 # Распаковать пакет # Распаковать пакет
 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>
 +
 +
  
  
Строка 220: Строка 243:
  
 ★ Можно создавать отдельные чруты для каждой сборки, для этого есть пар-р "--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>
  
Строка 232: Строка 270:
 <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>
  
linux/overall/apt.1733915746.txt.gz · Последнее изменение: 2024/12/11 11:15 — admin