Buildiso с пакетами AUR: Использование buildpkg
Это руководство посвящено созданию собственного онлайн-репозитория и сборке пользовательского пакета (набора) с помощью buildpkg. Позже вы сможете установить эти пакеты в ваш настроенный Manjaro ISO с помощью buildiso.
Прежде чем приступить к этому руководству - убедитесь что Вы выполнили предварительные шаги в Сборка Manjaro ISO с помощью buildiso.
Этот же профиль XFCE ISO будет использоваться в качестве примера на этой странице Wiki.
Инструменты для установки
Синхронизируйте вашу систему с последними пакетами и убедитесь что у вас установлены следующие пакеты.
- git
- manjaro-tools-{base|base-git}
- manjaro-tools-{pkg|pkg-git}
Важно, чтобы ваши пакеты инструментов соответствовали друг другу - не смешивайте пакеты по умолчанию и git.
Создание каталогов
Первое, что вы должны сделать - это создать каталог для вашего онлайн-репозитория. Онлайн-репозиторий называется online-repo в этом руководстве и находится в Вашем домашнем каталоге. Однако, Вы можете выбрать название по своему вкусу. Это поможет сохранить порядок. Ваше хранилище состоит только из этого каталога:
Это онлайн хранилище создается в Вашем домашнем каталоге, но Вы можете создать его в любом удобном для Вас месте.
Создание дерева пользовательских пакетов
Создайте каталог для пакетов, которые вы хотите собрать. Название каталога произвольно - вы можете назвать его так, как считаете нужным.
Клонируйте соответствующий пакет(-ы) из AUR или с Github. Позже Вы могли бы создать их сами! Вы можете выбрать любой пакет для сборки, но в качестве примера мы создаем пакет kickshaw
. Kickshaw - это современный редактор меню, в частности, для openbox. Сначала Вы добавляете его в свой репозиторий pkgbuild. Сделайте это с помощью git
Клонирование примера пакета из AUR
Теперь у вас есть каталог с файлом PKGBUILD
в вашем репозитории pkgbuild.
Лучше всего всегда знакомиться с содержимым пакета, чтобы убедиться, что все соответствует ожиданиям.
Сборка с помощью buildpkg
В buildpkg есть несколько опций, с которыми вам необходимо ознакомиться.
Использование: buildpkg [options] -p <pkg> Список или пакет [default: default] -a <arch> Азхитектура [default: x86_64] -b <branch> Ветка [default: unstable] -r <dir> Каталог chroot [default: /var/cache/manjaro-tools] -i <pkgs> Установить пакеты в рабочую копию chroot -c Пересоздать chroot -w Очистить кэш и исходиники -n Установить и запустить проверку namcap -s Подписать пакеты -u Группа Udev base-devel (без systemd) -q Настройки запросов и предварительная сборка -h Эта помощь
Следующее, что нужно сделать - это создать пакет. Пожалуйста, обратите внимание, что Вы должны находиться на один уровень выше Вашего фактического PKGBUILD. Поймите это, поскольку аргумент -p
- это "название каталога", содержащего набор инструкций PKGBUILD.
Дополнительные примеры использования buildpkg смотрите здесь.
Скрипт buildpkg создает закрытую среду для сборки пакета. Это делается для того, чтобы не засорять Вашу систему артефактами сборки.
Копирование файлов пакета в онлайн-репозиторий
Полученный пакет сохраняется в месте, определенном в manjaro-tools.conf в вашей системе (по умолчанию это каталог cache).
Вы должны увидеть сжатые файлы пакета. Имя файла должно заканчиваться на .pkg.tar.zst
.
Скопируйте или переместите файлы пакетов в онлайн-репозиторий:
Создание файла .db
Для отслеживания доступных пакетов менеджер пакетов pacman использует файлы базы данных, которые загружаются и хранятся на вашем компьютере. Вам необходимо создать такой файл базы данных для Вашего репозитория. Очень важно, чтобы имя файла базы данных совпадало с именем вашего репозитория. Если ваше хранилище называется online-repo, то имя базы данных должно быть online-repo.db.tar.gz.
Используйте команду repo-add
для создания файла базы данных в указанном вами каталоге репозитория
kickshaw-0.5-2-x86_64.pkg.tar.zst online-repo.db online-repo.db.tar.gz online-repo.files online-repo.files.tar.gz
Каждый раз, когда вы изменяете содержимое вашего онлайн-репозитория, база данных должна быть пересоздана! В противном случае buildiso впоследствии будет жаловаться на отсутствие пакетов в вашем онлайн-репозитории.
Два из этих файлов являются символическими ссылками, которые могут работать или не работать на выбранном вами хосте, поэтому их можно не указывать.
Загрузка онлайн-репозитория на хост-сервер
Теперь вам необходимо загрузить online-repo на Ваш хост-сервер. Загрузите все из online-repo на ваш хост-сервер. Ваш веб-адрес должен соответствовать названию созданного Вами каталога. Вот как должен выглядеть ваш веб-адрес после загрузки online-repo на ваш хост-сервер.
http://www.myserver.com/repository/online-repo/x86_64/
Добавление online-репо в ваш iso-профиль
Создайте файл
[online-repo] SigLevel = Never Server = http://www.myserver.com/repository/online-repo/$repo/$arch
Пользовательские онлайн-репозитории будут добавлены в результирующий файл pacman.conf. Это означает, что пакеты AUR не могут быть установлены, если Вы не используете веб-сервер для предоставления [online-repo]
, как показано в этой статье).
NB: ${profile_dir} - это не каталог iso-profiles, а конкретный подкаталог для сборки, например iso-profiles/manjaro/kde. Поместите туда свой файл user-repos.conf, чтобы он был найден в процессе сборки.
Добавление названий пакетов в профиль ISO
Теперь вы добавляете kickshaw
в список пакетов для вашего профиля ISO. Это означает, что файл Packages-Desktop должен выглядеть примерно так:
ffmpegthumbnailer gconf # fix qt-theme gnome-keyring # fix wlan segfault gufw # firewall accountsservice lightdm-gtk-greeter lightdm-gtk-greeter-settings light-locker manjaro-settings-manager menulibre ## AUR packages kickshaw
Очистка среды сборки
Для удаления среды сборки с жесткого диска выполните команду:
ПРИМЕЧАНИЕ
Теперь вы можете продолжить корректировать manjaro-tools.conf или собирать ISO.
Создание онлайн-репозитория требует, чтобы вы поддерживали репозиторий в актуальном состоянии при внесении в него изменений.