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).
You should see compressed package files. The file name should end with .pkg.tar.zst
.
Copy or move your package files to your online repository:
Build a .db file
To keep track of available packages the pacman package manager uses database files which is downloaded and kept on your computer. You need to create such a database file for your repo. It is crucial that your database filename is the same as your repo name. If your repo is named online-repo then your database name must be online-repo.db.tar.gz.
Use the command repo-add
to build a database file inside your designated repo folder
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
Every time you change the content of your online repository, the database must be rebuild! Otherwise, buildiso will complain later about missing packages in your online repository.
Two of the files are symlinks which may or may not work on your chosen host so they can be left out.
Upload online-repo to Host Server
Now you need to upload online-repo to your Host Server. Upload everything from online-repo to your Host Server. Your web address as to match the name of the directory folder you created. This is what your web address should look like after upload online-repo to your Host Server.
http://www.myserver.com/repository/online-repo/x86_64/
Add online-repo to your iso-profile
Create a file
[online-repo] SigLevel = Never Server = http://www.myserver.com/repository/online-repo/$repo/$arch
Custom online repositories will be added to the resulting pacman.conf. This means AUR packages cannot be installed unless you are using webserver to provide [online-repo]
as shown this article).
Add package names to ISO profile
Now you add kickshaw
to your package list for your ISO profile. This means your Packages-Desktop file should look something like this:
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
Cleaning build environment
For removing your build environment from your hard drive, execute:
NOTE
Now, you can continue to adjust your manjaro-tools.conf or build your ISO.
Creating an online repo requires you to keep the repo up-to-date when changes are made upstream.