Manjaro-tools

Revision as of 08:25, 8 January 2023 by Krotesk (talk | contribs) (Created page with "Сначала можно создать только chroot для ISO, используя опцию {{ic|-i}}, затем внести изменения и, наконец...")
Other languages:
English • ‎русский

Введение

manjaro-tools состоит из множества различных инструментов, предназначенных для разработчиков Manjaro. Он разделен на 3 различных пакета:

  • manjaro-tools-base содержит основные инструменты, различные инструменты chroot и buildset
  • manjaro-tools-pkg содержит небольшие вспомогательные инструменты, buildpkg и buildtree
  • manjaro-tools-iso содержит небольшие вспомогательные инструменты и buildiso.


Все эти пакеты manjaro-tools заменяют devtools и manjaroiso.

Подробное руководство пользователя доступно на gitlab.


Конфигурация

Настроить manjaro-tools можно, скопировав папку /etc/manjaro-tools к себе в домашний каталог ~/.config, а затем отредактировав файл ~/.config/manjaro-tools/manjaro-tools.conf.

Файлы

Это новые имена для переименованных скриптов.

  • mkmanjaroroot --> mkchroot
  • manjarobuild --> buildpkg
  • mkset --> buildset
  • pacstrap --> basestrap
  • genfstab --> fstabgen
  • arch-chroot --> manjaro-chroot


buildset

buildset используется для создания списков сборки. Списки сборки могут быть определены в /etc/manjaro-tools/sets/<buildlistname>.set.

Справка выглядит следующим образом:


$ buildset -h

 Usage: buildset [options]
     -c <name>   Create set
     -r <name>   Remove set
     -s <name>   Show set
     -i          Iso mode
     -q          Query sets
     -h          Эта справка


Note
Имя набора должно отличаться от имени каталога в pkgbuilds dir. Все остальное должно работать, например, добавление даты к имени.

buildpkg

buildpkg используется для сборки определенного пакета или набора. В следующей главе будут описаны все функции buildpkg.

Если вам нужен подробный пример использования buildpkg для сборки пакетов для локального репозитория, пожалуйста, посмотрите здесь.


Справка выглядит следующим образом:


$ buildpkg -h

Usage: buildpkg [options]
    -a <arch>          Архитектура [по-умолчанию: x86_64]
    -b <branch>        Ветка [по-умолчанию: stable]
    -c                 Пересоздание chroot
    -h                 Эта справка
    -i <pkg>           Установить пакет в рабочую копию chroot
    -n                 Установка и запуск проверки namcap
    -p <pkg>           Создание списка или пакета [по-умолчанию: default]
    -q                 Настройки запросов и предварительная сборка
    -r <dir>           Каталог Chroots
                       [по-умолчанию: /var/lib/manjaro-tools/buildpkg]
    -s                 Подписать пакеты
    -w                 Очистка кэша и источников


Чтобы собрать один пакет, перейдите в каталог, находящийся на один выше каталога сборки пакета (который содержит PKGBUILD), и запустите его как:

user $ buildpkg -p package-name COPY TO CLIPBOARD


Для сборки набора можно использовать имя набора. Текущие наборы можно запросить с помощью опции -q.

buildtree

buildtree - это небольшой инструмент для синхронизации git-репозиториев пакетов arch abs и manjaro.

Аргументы таковы:


$ buildtree -h

 Usage: buildtree [options]
     -s            Синхронизировать дерево manjaro
     -a            Синхронизировать дерево arch
     -c            Очистка дерева пакетов
     -q            Настройки запросовs
     -h            Эта справка[/code]


Для синхронизации деревьев Arch и Manjaro:

user $ buildtree -as COPY TO CLIPBOARD


buildiso

buildiso используется для создания определенного ISO или набора ISO. Все функции buildiso будут описаны в следующих главах.

Если вам нужно подробное руководство по использованию buildiso для создания собственных ISO Manjaro с нуля, пожалуйста, посмотрите здесь.


Обзор

Справка для x86_64 выглядит следующим образом :


$ buildiso -h

 Usage: buildiso [options]
     -p <profile>       Buildset or profile [default: default]
     -a <arch>          Архитектура [default: x86_64]
     -b <branch>        Ветка [default: stable]
     -r <dir>           Каталог Chroots
                        [default: /var/lib/manjaro-tools/buildiso]
     -c                 Disable clean work dir
     -x                 Clean xorg cache
     -l                 Clean lng cache
     -i                 Build images only
     -s                 Generate iso only
                        Requires pre built images (-i)
     -v                 Verbose output, show profies detail (-q)
     -q                 Query settings and pretend build
     -h                 This help


Построение запросов

Для запроса сборки ISO (опция -q), например, профиля xfce-openbox-openrc, можно использовать следующую команду:


$ buildiso -p xfce -qv

==> manjaro-tools
  -> version: 0.15.9
  -> config: ~/.config/manjaro-tools/manjaro-tools.conf
==> PROFILE:
  -> build_lists: community|default|manjaro|sonar|v17-release
  -> build_list_iso: xfce
  -> is_build_list: false
==> OPTIONS:
  -> arch: x86_64
  -> branch: unstable
  -> kernel: linux419
==> ARGS:
  -> clean_first: true
  -> images_only: false
  -> iso_only: false
  -> persist: false
==> DIST SETTINGS:
  -> dist_name: Manjaro
  -> dist_release: 18.0
  -> dist_codename: Illyria
==> ISO INFO:
  -> iso_label: MJRO180
  -> iso_compression: xz
==> BUILD QUEUE:
 --> Profile: [xfce]
  -> iso_file: manjaro-xfce-18.0-unstable-minimal-x86_64.iso
  -> autologin: true
  -> nonfree_mhwd: true
  -> multilib: true
  -> extra: false
  -> netinstall: false
  -> chrootcfg: false
  -> geoip: true
  -> efi_boot_loader: grub
  -> hostname: manjaro
  -> username: manjaro
  -> password: manjaro
  -> login_shell: /bin/bash
  -> addgroups: lp,network,power,sys,wheel
  -> enable_systemd: avahi-daemon bluetooth cronie ModemManager NetworkManager org.cups.cupsd tlp tlp-sleep ufw lightdm
  -> enable_systemd_live: manjaro-live mhwd-live pacman-init mirrors-live
  -> disable_systemd: pacman-init


Сборка

Чтобы действительно собрать ISO:

user $ buildiso -p xfce -b stable COPY TO CLIPBOARD


Сборка с предварительно загруженными пакетами Xorg

Для сборки ISO с сохранением ранее загруженного кэша пакетов Xorg можно использовать опцию -x:

user $ buildiso -p xfce-openbox-openrc/ -b stable -x COPY TO CLIPBOARD


Сборка с небольшим изменением конфигурации

Note
Необходимо проверить, работает ли приведенная ниже процедура или нет.

Если что-то изменилось только в конфиге, например, настройки, вместо того, чтобы собирать весь ISO с нуля, можно изменить каталог сборки ISO и пересобрать ISO. Например, если в конфигурации изменен файл xfce-overlay/etc/skel/.conkyrc - можно перейти в рабочий каталог, изменить указанный файл и пересобрать ISO, используя опцию -cs.

Рабочий каталог можно найти с помощью опции -h:


$ buildiso -h

 Usage: buildiso [options]
     -p <profile>       Buildset or profile [default: default]
     -a <arch>          Arch [default: x86_64]
     -b <branch>        Branch [default: unstable]
     -r <dir>           Chroots directory
                        [default: '''/var/lib/manjaro-tools/buildiso''']
     -t <dir>           Target directory
                        [default: /home/fh/Data/build/iso]
     -k <name>          Kernel to use
                        [default: linux419]
     -g <key>           The gpg key for sfs signing
                        [default: ]
     -m                 Set SquashFS image mode to persistence
     -c                 Disable clean work dir
     -f                 Build full ISO (extra=true)
     -d <comp>          Compression used for build ISO: xz, gzip, lzma, lzo, lz4
                        [default: xz]
     -x                 Build images only
     -z                 Generate iso only
                        Requires pre built images (-x)
     -v                 Verbose output to log file, show profile detail (-q)
     -q                 Query settings and pretend build
     -h                 This help


    -r <dir>           сменить каталог для chroot
                       [по-умолчанию: /var/lib/manjaro-tools/buildiso]

(рабочий каталог выделен жирным шрифтом)

Нужный файл можно редактировать от имени root, например:

user $ sudo nano /var/lib/manjaro-tools/buildiso/xfce/x86_64/desktopfs/etc/skel/.conkyrc COPY TO CLIPBOARD


Однако здесь есть одна загвоздка: файл, который нужно отредактировать, может присутствовать в нескольких образах, например, в rootfs, livefs, desktopfs), и его нужно будет редактировать в соответствующих каталогах образов.


Затем ISO может быть пересобран как:

user $ buildiso -p xfce -cs COPY TO CLIPBOARD


Альтернатива

Сначала можно создать только chroot для ISO, используя опцию -i, затем внести изменения и, наконец, собрать ISO с помощью опции -sc.

Например:


$ buildiso -p xfce -b stable -x

==> Start building [xfce]
==> Cleaning up ...
  -> Deleting chroot [rootfs] (x86_64) ...
  -> Deleting isoroot [iso] ...
[..]


After this the changes in the work directory can be made, and the ISO can be generated with:

user $ buildiso -p xfce/ -cz COPY TO CLIPBOARD


Смотрите также