Manjaro-tools

Revision as of 17:39, 7 January 2023 by Krotesk (talk | contribs) (Created page with "Если что-то изменилось только в конфиге, например, настройки, вместо того, чтобы собирать весь ISO...")
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.

The work directory can be found using the -h option:


$ 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>           Chroots directory
                       [default: /var/lib/manjaro-tools/buildiso]

(work directory highlighted in bold)

The required file can be edited as root, for example:

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

There is a catch involved here though; the file one wants to edit may be present in multiple images, like rootfs, livefs, desktopfs), and would need to be edited in the respective image directories.


Then the ISO then can be rebuilt as:

user $ buildiso -p xfce -cs COPY TO CLIPBOARD

Alternative

First only the chroot for the ISO could be created, using the -i option, then the changes can be made, and finally an ISO can be built with the -sc option.

Например:


$ 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


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